نویسنده بهرام در مرداد ۳م, ۱۳۸۹
خوب دوستان بالاخره کار اصلی بر روی این نسخه رو هم تموم کردم و آمادهی تست هست تا اشکالات احتمالی اون برطرف بشه.

از مهمترین ویژگیها و تغییرات این نسخه میتوان به موارد زیر اشاره کرد :
- امکان فعالکردن بیش از یک نظرسنجی : با این ویژگی یک سیستم نظرخواهی تمامعیار را خواهید داشت.
- قرار گرفتن نظرسنجیها در وضعیتهای مختلفی که در عکس میبینید.
- تغییرات اساسی در ساختار پایگاه اطلاعاتی و قالبها و کدهای اصلی : بطوری که با نسخههای قبلی به هیچ وجه سازگار نیست.
واقعا تبدیل یک نظرسنجی ساده به یک سیستم نظرخواهی کامل ، کار بسیار سخت و طاقتفرسایی بود که بیش از ۳ روز وقت من رو به خودش به طور کامل گرفت.
اسم این نسخه رو « دیوانهساز یا Dementor » به یاد داستانهای زیبای هریپاتر گذاشتم.
از همهی دوستان عزیز درخواست میکنم که این نسخه رو تست کنند و در صورت امکان اشکالات رو برای بنده بفرستند. ( پیشاپیش سپاسگزارم )
نکته : فعلا این نسخه رو برای آپلود در سرور سایت شما مناسب نیست. برای این منظور بایستی منتظر نسخهی نهایی باشید.
برای دانلود این نسخه اینجا را کلیک کنیذ.
برای تست این نسخه : قسمت کاربری — قسمت مدیریت ( نامکاربری و رمز عبور : demo )
=-=-=-=-=
Powered by Blogilo
نویسنده بهرام در مرداد ۱م, ۱۳۸۹
خوب دوستان وقتی من کمتر پست میزنم یا در حال درس خوندنم و یا در حال توسعهی ITLPoll.
همونطور که قول داده بودم ، سعی کردم تا امکان فعال کردن بیش از چند نظرسنجی به طور همزمان رو برای سیستم فراهم کنم. در ابتدا واقعا غیرممکن به نظر میرسید. چون در ابتدای نوشتن این برنامه اصلا همچین هدفی رو نداشتم. ولی این کار رو کردم و این نسخه در مراحل بسیار ابتدایی هست و کار زیادی برای رسیدن به مرحلهی نهایی داره. ولی سعی میکنم که نسخهی آلفا یا نهایتا بتا رو برای تست براتون بزارم :

» ادامه مطلب
نویسنده بهرام در تیر ۱۰م, ۱۳۸۹
خوب دوستان عزیز همونطور که قول داده بودم ، بیشتر از ۱ روز بر روی ITLPoll کار کردم و باگ Session Hijack که در قسمت مدیریت ITLPoll وجود داشت رو درست کردم. متاسفانه این باگ خیلی خیلی بچهگانهیی بود که نمیدونم چطور همچین اشتباه عجیبی مرتکب شده بودم. این باگ از اونجا ناشی میشد که برای جلسهی مدیریت فقط نامکاربری رو ذخیره میکردم و خوب یک کاربر شرور (!) میتونه یک جلسهی قلابی بفرسته و وارد مدیریت بشه.
البته مهمترین کار این نسخه رفع این مشکل هست ولی یک سری مشکلات در SQLها و کدهای HTML قالبها در جاهای مختلف وجود داشت که درستشون کردم.
همچنین کل سیستم رو از جاهای مختلف که قبلا روی itlpoll.sourceforge.net و itlpoll.trilexnet.com بودند ، به itlpoll.com منتقل کردم و منبع اصلی چک کردن آخرین نسخه هم وبسایت رسمی شد.
نکتهی مهم دیگه اینکه ، یک ستون به جدول prefix_users (که prefix رو خودتون قبلا هنگام نصب انتخاب کردید ) با نام last_session برای جلوگیری از باگ اضافه کردم که ID جلسهی جاری کاربر رو ذخیره میکنه تا از دسترسی غیرمجاز کاربران دیگه جلوگیری کنه. پس برای بروزرسانی یا بایستی به صورت دستی یک ستون با نام last_session از نوع char 40 درست کنید. و یا اینکه بانک اطلاعاتی قبلی رو بیخیال بشید و دوباره نصب کنید.
در نهایت ، این نسخه رو میتونید از اینجا دانلود کنید.
برای تست رابط کاربر نهایی اینجا و برای تست رابط مدیران اینجا را کلیک کنید.
(نامکاربری: demo رمز عبور : demo)
————————————————————
تست دموی آخرین نسخهی فارسی :
به لینکهای آخر این صفحه مراجعه کنید.
ـــــــــــــــــــــــــــــــــــــــــ
پ.ن: بعد از آخرین امتحانم بر روی نسخهی ۳٫۱ کار خواهم کرد. که قول میدم چیز خیلی جالبی در بیاد. از مهمترین ویژگیهاش امکان فعالکردن بیشتر از یک نظرسنجی به طور همزمان هست که میتونید یک نظرخواهی تمامعیار رو داشته باشید. پس فعلا
=-=-=-=-=
Powered by Blogilo
نویسنده بهرام در اسفند ۲۶م, ۱۳۸۸
عرض سلام دوباره
توی آپدیتهای openSUSE 11.2 دیدم که آخرین نسخهی PHP یعنی ۵٫۳ وجود داره و توی این نسخه یه سری توابع به عنوان Deprecated شناخته میشوند و وقتی ITLPoll رو اجرا کردم دیدم که یک دوجین خطا گرفتم که بیشترش مربوط بود به تابع Date که میگفت باید حتما از TimeZone استفاده کنم ( و این طوری شرمآوره !!
) و اینکه در این نسخه از PHP تابع eregi و eregi_replace که برای پارس کردن template ها ازشون زیاد استفاده میکنم به عنوان deprecated شناخته میشن و باید از معادل قویتر اونها ( یعنی preg_match ) استفاده بشه.
متاسفانه وقت کافی برای جایگرین کردن این معادلها نداشتم و فقط مجبور شدم که error_reporting رو برای خطاهای زمان کامپایل و جدی تغییر بدم و دیگه این خطاها رو نگیرم. ولی حتما این موارد رو برای نسخهی ۳٫۱ برطرف خواهم کرد. به هر حال این بروزرسانی مشکل اجرا در آخرین نسخهی PHP یعنی ۵٫۳ رو برطرف میکنه.
هرچند که بنده اصلا IE رو به عنوان یه مرورگر استاندارد نمیشناسم ولی خوب به دلیل اینکه تعداد کاربران زیادی ازش استفاده میکنند مجبوریم که سازگاری با اون رو مد نظر داشته باشیم. قالبهای قسمت مدیریت رو وقتی با IE مرور میکردم ناهماهنگی تقریبا زیادی وجود داشت ( نه از جهت کد بلکه از جهت هوشمند نبودن IE!!). مثلا یه چیز جالب این بود که دو تا table تو در تو وجود داشته باشه ، جدول داخلی حتما میبایست کمتر از ۹۲ درصد عرض داشته باشه وگرنه از جدول اولی میزنه بیرون !!! برای خودمم خیلی جالب بود که اینقدر خنگ تشریف دارن. به هر حال شاید مشکل از نوع قالب سیستم بنده باشه ولی IE همیشه خودش رو این جوری به همگان اثبات کرده. در نهایت اینکه همهی ناهماهنگیها رو با آخرین نسخهی IE برطرف کردم.
ویژگی Redirect برای برگشت به قسمتی که مدیران سیستم بودهاند ( البته بعد از لاگین ). مثلا یه کاربر Admin در قسمت مدیریت قرار داره و مدت بیکاریش بیشتر از ۲۰ دقیقه باشه ، کوکیاش منقضی میشه و صفحهی لاگین براش ظاهر میشه. حالا باید اگه خواست دوباره وارد بشه به همون صفحهی قبلی وارد بشه که در این نسخه اضافهش کردم !
قسمت NoScript قالبها هم قالب جالبی نداشت که اون رو هم تغییر دادم.
و یه سری تغییرات جزیی در کد نصاب و تغییر آدرسهای HomePage موجود به http://www.itlpoll.com
برای دریافت : این نسخه به سایت رسمی اون مراجعه کنید.
برای بروزرسانی : کافیه فقط فایلهای موجود رو Overwrite کنید.
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

در نهایت : پیشاپیش نوروز ۱۳۸۹ هجری شمسی رو به همهی عزیزان هموطنم تبریک میگم. آرزوی بهترینها رو براتون دارم.
نویسنده بهرام در بهمن ۲۱م, ۱۳۸۸
خودم اصلا راضی نبودم که برای یه اسکریپت سادهی نظرسنجی یه سایت و دامین راهاندازی کنیم. اما فشار مدیر تیم TrilexNET وادارم کرد که امروز بشینم و یک سایت رو مونتاژ (!) کنم و برخط کنم. هرچی که گفتم من اصلا طراح گرافیک نیستم و دست به قلمم خوب نیست ، گوش نکرد که نکرد !!

به هر حال این سایت رو بیشتر به خاطر فرومش راهاندازی کردم تا افراد سوالات خودشون رو در مورد مسائل مختلف از نصب گرفته تا استفاده در اون بپرسند.
برای دیدن سایت اینجا را کلیک کنید.
برای رفتن به انجمن پشتیبانی ITLPoll اینجا را کلیک کنید. ( از عزیزان توسعه دهنده وب که میتونن من رو کمک کنند ، تماس بگیرن تا مدیرشون کنم ! )
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
بعضی از دوستان هم که سوال میکنند مثل اینکه لینک ورود به مدیریت کمتر به چشم میخوره که در اینجا دوباره میزارم.
نام کاربری : demo
رمز عبور : demo
نویسنده بهرام در بهمن ۸م, ۱۳۸۸
بعد از حدود ۲ روز کار بر روی نسخهی ITLPoll 3.0.1 حالا این نسخه رو به همراه ویژگیهای بسیار جدید تقدیمتان میکنم. تمام شدن ترم هم مزیتهای خوبی داره که از جملهی آن انتشار این نسخه از ITLPoll هست.
ویژگیها و تغییرات اصلی در این نسخه به صورت زیر هستند :
۱- امکان انتخاب چندین گزینه به طور همزمان برای هر نظرسنجی
۲- کنترل بیشتر بر روی کوکیها و امکان شرکت در نظرسنجیهای جدید
۳- اصلاح مشکل لینکر صفحهی خانگی (include_itlpoll.php)
۴- بهبود سازی قالبها و پالایش بهتر بر روی متغیرهای ورودی و خروجی
توضیحی مختصر :
مورد اول که روشنه. مدیر سیستم میتونه در قسمت مدیریت برای هر نظرسنجی گزینهی « نظرسنجی چندگانه » رو انتخاب کنه تا هر کاربر در هر بار شرکتش در نظرسنجی بتواند به جای تنها یک گزینه ، چند گزینه ( یک ، چند و یا همهی گزینهها ) را انتخاب کند.
مورد دوم شاید یک کمی گنگ باشه. در نسخههای قبلی هنگامی که مدیر یک نظرسنجی را فعال میکرد ، کاربران نظرهای خودشان را ثبت میکردند و دیگر امکان شرکت در نظرسنجی ( حتی در صورت فعال شدن یک نظرسنجی جدید دیگر ) را نداشتند. اما در این نسخه به محض فعالشدن یک نظرسنجی جدید ، کاربرانی که در نظرسنجیهای قبلی شرکت کرده بودند ، کوکیهای مرورگرشان ریست شده و مجددا میتوانند ( فقط برای یکبار ) در نظرسنجی جدید شرکت کنند ( که طبعا میتواند چندگانه یا تکی باشد )
مورد سوم مشکلی بود که دوستان بهم اطلاع دادن ( متاسفانه خودم متوجهش نشده بودم ! ) وقتی که کاربر سیستم را از طریق لینکر صفحهی خانگی (include_itlpoll.php) در صفحهی اول سایتش قرار میداد ، لینکهای نتایج و آرشیو و کلید ثبت نتایج به همین صفحهی جاری خانگی ( به جای پوشهی اصلی ITLPoll ) اشاره میکردند که در این صورت در صفحهی Pop-Up بازشده کل Home Page باز میشد که در این نسخه رفع شد.
(لینک دانلود در ادامه نوشته ) » ادامه مطلب
نویسنده بهرام در مهر ۱۱م, ۱۳۸۸
امروز همین طوری به فکر افتادم که تعداد خطوط نوشته شده در ITLPoll رو بشمارم. تا ببینم در این ۵-۴ ساله چند خط کد نوشتم ؟!! 
بنابراین از دو روش ( یکی دستی و یکی هم برنامهای ) استفاده کردم. در روش دستی تعداد خطوط کد PHP موجود رو که جمع زدم حدود ۷۰۰۰ ( هفت هزار ) کد خط بدست آمد که البته از این ۷۰۰۰ خط حدود ۲۰۰۰ تا ۲۵۰۰ خط مربوط به کلاسهای XML ، تبدیل تاریخ هجری به شمسی و چارت است و میشه گفت که حدود ۴۰۰۰ تا ۴۵۰۰ کد خط PHP رو خودم نوشتم. البته این تعداد فقط مربوط به کدهای PHP هست و معلومه که وقتی رو هم روی قالبها و عکسها و زبانهای مختلف صرف کردم که اونها حساب نمیشن !!
بعد از این کار از یک برنامهی Line Counter استفاده کردم که نتیجهی تعداد خطوط فایلهای PHP حدود ۸۰۰۰ خط کد درآمد که از این تعداد ۸۰۰ خط آن خطوط خالی ( جهت خوانایی برنامه ) بودند که به صورت دستی من اونها رو حساب نکردم پس این برنامه هم تعداد خطوطی رو که شمرده بودم تایید کرد.
در نتیجه این کنجاوی من هم با دونستن اینکه ITLPoll نسخهی ۳٫۰٫۱ شامل بیش از ۷۰۰۰ خط کد است به پایان رسید.
فکر میکنم بعضی وقتها کنجاویهام فقط وقتگیرن !!! ولی برای یک سیستم نظرسنجی رقم کمی نیست !
نویسنده بهرام در مهر ۳م, ۱۳۸۸
با سلام 
این یکی دو روزه بیکار بودم و تعدادی بروز رسانی را در نسخهی ۳٫۰٫۰ سیستم نظرسنجی ITLPoll انجام دادم و هم اکنون آخرین نسخه ۳٫۰٫۱ میباشد. تعدادی تغییرات جزیی در این بروزرسانی داده شده است از جمله :
- درست کردن سیستم بازیابی رمز عبور مدیران و کاربران
- پررنگ (Bold) کردن گزینهای که دارای بیشترین رای است ( در قسمت نتایج )
- تعدادی تغییرات جزیی در ظاهر قالبهای front-end
برای آپدیت کردن نسخهی ۳٫۰٫۰ به نسخهی ۳٫۰٫۱ کافی است که این نسخه را دانلود کرده و فایلهای زیر را جایگزین فایلهای قدیمی کنید. ( تغییری در بانک اطلاعاتی داده نشده است )
- admin/index.php
- includes/functions.php
- templates/metalic-ltr/user.xml
- templates/metalic-rtl/user.xml
دانلود این نسخه از سایت رسمی
نویسنده بهرام در شهریور ۱۲م, ۱۳۸۸
همان طور که قول داده بودم ، هم اکنون یعنی در حدود نیمهی ماه شهریورشاهد انتشار نهایی نسخهی سوم ITLPoll هستید.
از ویژگیهای عمدهی نسخهی سوم ITLPoll به صورت زیر است :
- استفاده از چارتهای پویای ۳-بعدی دایرهای و ستونی و همچنین ۲-بعدی ( قدیمی ) برای نمایش نتایج
- امکان ایجاد کاربران مختلف برای مدیریت سیستم ( اضافه ، ویرایش و یا حذف نظرسنجیها ، ویرایش تنظیمات و … )
- امکان ایجاد گروههای دسترسی برای ایجاد محدودیت برای کاربران سیستم
- تغییرات اساسی در ساختار بانک اطلاعاتی و جدا کردن تنظیمات کاربران از تنظیمات عمومی
همچنین حدود یک ماه از انتشار آزمایشی نسخهی ۳.۰.۰ میگذرد. غیر از اضافهکردن نسخهی بروز شدهی زبانهای آلمانی و اسپانیایی ، تغییرات زیر در نسخهی نهایی داده شد :
- بروز کردن سیستم بازیابی رمز عبور فراموش شده ( وارد یک loop نامحدود میشد )
- تعدادی بهینهسازی در قسمت محاسبات برای چارتهای ۳-بعدی
- اضافهکردن نمایش دهندهی آخرین نسخهی موجود در پانل مدیریت از سایت SourceForge و TrilexNET
- تعدادی تغییرات و بهینهسازی در قسمت set کردن کوکیهای front-end
- تغییرات محتوایی برای نصاب و قالبهای سیستم
از این نسخه با خیال تقریبا راحت میتوانید در سایت خود استفاده کنید. چرا که تقریبا بیشتر تستهای امنیتی و منطقی روی آن انجام گرفته است.
» ادامه مطلب
نویسنده بهرام در شهریور ۹م, ۱۳۸۸

یک خبر دارم اینکه سیستم نظرسنجی ITLPoll به آزمایشگاه Trilex ملحق شد. شرکت Trilex یک شرکت Open Source هست که پروژههای Open Source را در توسعه ، تست و البته فروش همکاری میکند. در طی تماسهایی مدیر این گروه با بنده داشتند ، اظهار تمایل به اضافه کردن ITLPoll به آزمایشگاهشان در جهت توسعهی هرچه بیشتر این سیستم کردند و البته منم با خرسندی کامل (!) پذیرفتم. به زودی وب سایتی (احتمالا با نام UniPoll) برای پشتیبانی رسمی از ITLPoll توسط این گروه افتتاح خواهد شد.
در واقع هدف اصلی این گروه کسب درآمد از پروژههای موفق Open Source هست. امیدوارم که این پروژهی کاملا ایرانی بتواند به این هدف برسد.
البته هنوز آغوش بنده برای کسانی که میخواهند در توسعهی این پروژه همکاری کنند ، باز است.
جدیدترین دیدگاهها