اردیبهشت 1387

آشنایی با Plug-In ها در نرم افزار MMB

پلاگین چيست؟


اكثر برنامه هاي امروزي اين قابليت را فراهم مي كنند تا كاربر بتواند از Plug-Inها استفاده نمايد. براي مدت هاي مديدي اين امكان فراهم نبود تا يك كاربر بتواند تعدادي توابع اضافه بر سازمان برنامه در اختيار داشته باشد و مي بايست تا نسخه بعدي برنامه صبر مي كرد. اما پس از چندي اشخاصي اين قاعده را شكستند و اين آرزوي كاربران را برآورده ساختند. پس از آن با تدوين استانداردها برنامه نويسان و توسعه دهندگان اجازه يافتند تا براساس ضوابطي توابع دلخواه خود را در صورت امكان به بدنه برنامه اصلي اضاف نمايند. به همين دليل اين امكانات و توابع اضافه نام plug-in را به خود گرفت. امروزه ميتوانيم ردپاي plug-In را در اكثر برنامه ها از قبيل برنامه هاي طراحي و ويرايشي و … ببينيم. اما حال ببينيم plug-In ها دقيقاً چه هستند و چگونه كار ميكند؟

ایستگاه فضایی مطمئناً همه ي شما ايستگاههاي فضايي را ديدهايد كه حول زمين در حال چرخش هستيد. حالا تصور كنيد كه MMB ساختار مركزي اين ايستگاه فضايي است. (شكل اول)

البته شايد شكل روبرو شبيه يك ايستگاه فضايي كامل نباشد چرا كه سلولهاي خورشيدي ندارد، اما به هر حال با تصوري كه از شكل بالا پيدا كرديد فرض كنيد كه ميتوانيد در اين ايستگاه فضايي به ادامه حيات و فعاليت بپردازيد. اما پس از مدتي احساس خواهيد كرد كه به امكاناتي اضافه احتياج داريد امكاناتي از قبيل اسباب راحتي و… اما نگران نباشيد اين احساس نياز از قبل پيشبيني شده و تنها كافيست كه وسايل را تهيه و با اتصال آنها به ايستگاه فضايمان را گسترش دهيم. حالا با استفاده از قابليت توسعه توانستيد فضايتان وقدرتان را بهبود بخشيد اما اگر بخواهيم به واقعيت نزديكتر شويم و قدرتمان را در MMB افزايش دهيم دقيقاً بايد چه كنيم؟
لازم نيست نگران باشيد تنها كافيست برنامه MMB و plug-In هاي مورد نظر را در اختيار داشته باشيد.اما حتماً از خود ميپرسيد plug-In هاي MMB چگونه هستند؟ بله plug-In هاي MMB تنها فايلي ساده با پسوند DLL هستند كه امكان دارد در حالت عادي پنهان شده (Hidden) باشند. ( ميتوانيد از قسمت Folder option ويندوز آنها را درصورت مخفي بودن نمايان سازيد. همچنين ميتوانيد در حين اجراي يك برنامه حاوي plug-In، plug-In آن را از شاخه temp ويندوزبيابيد). براي مثال فايلهاي posxy.dll, tweak.dll, misc.dll يكسري از plug-In هاي موجود هستند. اما اين plug-In ها را از كجا بايد تهيه كنيم؟ پاسخ ساده است شما ميتوانيد با استفاده از سايتهاي زير اقدام به تهيه آنها نماييد:

http://www.mmbforums.com

http://forum.majidonline.com/forumdisplay.php?&f=83

بسيار خب پس از اينكه plug-In هاي مورد نياز را جمع آوري كرديد وقت استفاده از آنهاست. ابتدا قبل از هركاري بايستي يك پنجره در صفحه پروژه براي plug-inبكشيم تا در ادامه اين پنجره به عنوان نگهدارنده فايل plug-In ما باشد. از منوي Object با انتخاب قسمت plug-In پنجره مورد نظر را ميكشيم .
برخي از plug-In ها هستند كه به صورت بصري عمل ميكنند.به عنوان مثال plug-In هايي كه جلوههايي نظير بارش برف و باران و حركت ستارگان را ايجاد ميكنند. بنابراين اين plug-Inها نياز به پنجرهاي مناسب و قابل ديد دارند، اما دركنار همين plug-In هاي بصري تعداد ديگري plug-In هم هستند كه بصري نيستند و نياز به پنجرهاي بزرگ و قابل ديد ندارند بلكه فقط وجود پنجرهاي كوچك در هر جايي براي آنها كافيست. پس از اينكه پنجره را ايجاد كرديد بر روي آن 2 بار كليك نماييد تا پنجرهاي همانند شكل ظاهر شود. (عكس دوم)

همانند ساير پنجره هاي خصوصيت براي اشياء ديگر گزينه هايLock position و Hide عمل مشابهي را انجام ميدهند و label ( برچسب) هم نام شيء Plug-In را مشخص مينمايد كه بايد اين نام را به خاطر بسپاريد. دروسط اين پنجره كادر ورودي هست كه كنار آن دكمهاي قرار گرفته كه توسط اين دكمه كادري تبادلي جهت مسيردهي فايل plug-In ظاهر ميشود. خب پس چرا منتظريد؟! دكمه را فشار دهيد… اگر هيچ plug-In اي را جهت مسير دهي نداريد به زيرشاخه plug-In از پوشه نصب برنامه MMB برويد و در آنجا يك Plug-In بصري به نام Tenblobs.dll راكه همراه برنامه MMB ارائه شده است را خواهيد يافت. بلافاصله پس ازاينكه Plug-In را برگزيديد ، پيغامي مبني براينكه آيا ميخواهيد Plug-In را الحاق نماييد؟ ظاهر ميشود. به آن پاسخ مثبت بدهيد.ديگر احتياجي نيست كه نگران اين فايل پس از اتمام پروژهاتان باشيد زيرا MMB تمام فايلهاي الحاق شده را به همراه فايل نهايي بستهبندي ميكند. پس از الحاق يك Plug-In پنجره خصوصيت به صورت شكل درميآيد.

باتوجه به شكل مسير منتهي به فايل Plug-In داراي ماكروي <Embedded> است كه پيشتر درباره اين ماكــــرو بحث كرديم. درزيـــر اين كادرمسـير، قسمتي است كه حـاوي اطلاعاتي از قبيل نام مؤلف Plug-In ،پست الكتريكي ، سايت و … مؤلف ميباشد.
اكنون دكمه ي ok را فشار دهيد تا عمل نصب Plug-In تمام شود. در اينجاست كه پس ازيكبار اجراي برنامه احساس ميكنيد كه چيزي كم است،بله درست فهميديد بر اساس ساير Plug-In هاي برنامههاي ديگر شما به اين تصور رسيدهايد. اما اگر Plug-In شما بصري باشد در كادر خصوصيت Plug-In قسمتي در بالا سمت راست كه درشكل نشان داده شده فعال ميشود كه ميتوانيد به آنجا برويد و تنظيمات موجود را تغييردهيد.

اما خصوصيات و كنترل Plug-In هاي غير بصري را چگونه ميتوان در دست گرفت؟ در اينجاست كه فرامين به كمك ما ميآيند. فراميني كه در دل اسكريپتهاي MMB جا خوش كرده اند.اما اجازه دهيد كه ببينيم در پشت پرده چه خبرست؟ همانطور كه گفتيم فايلهاي Plug-In برنامه MMB ،DLL هستند كه DLL مخفف عبارت Dynamic link library ( كتابخانه اتصال پويا ) است به اين معنا كه DLLها مجموعهاي از توابع و فرامين هستند.پس با اين تفاسير ارتباطي پويابين MMB و Plug-In ها برقرار است.اين ارتباط ميتواند به 3 صورت زير باشد:

1- تنظيم متغير در MMB و دريافت متغير عددي توسط Plug-In
2- تنظيم متغير در MMB ودريافت متغير رشتهاي توسط Plug-In
3- اجراي فرماني خاص كه ممكن است اين فرمان خروجي به همراه داشته باشد.


براي استفاده از Plug-In ها بايستي با مفاهيم متغيرها و نحوه استفاده از آنها آشنا باشيد.چنانچه اين گونه نيست از ادامه خواندن اين قسمت تا زمانيكه مفاهيم متغيرها را فراگيريد پرهيز نماييد. خب گذشته از اينها صورت پيشرفتهتر 3 حالت قبل به صورت زيردر مي آيد:

1- تنظيم پارامترها براساس متغيرها ( هميشه لازم نيست)
2- اجراي فرامين Plug-In براساس پارامترها
3- دريافت متغيرهاي خروجي پس از اجراي فرامين ( هميشه اينطور نيست)
3 حالت گفته شده زيربناي درك عملكرد Plug-In ها ميباشند. همانطور كه قبلاً گفته شد Plug-In هاي MMB بر 2 نوع هستند:

1- نوع غيربصري و قابل كنترل توسط فرامين 2- نوع بصري

غالب Plug-In هاي MMB (نزديك به 98%) ازنوع اول هستند كه محدوده فعاليت آنها در قسمت پنجره تعبيه شده است. باقي فعاليتها توسط فرامين داخل Plug-In صورت ميگيرد كه يا منجر به تغيير حالت Plug-In يا ارسال خروجي به متغيرها مي شود. اين نكته حائز اهميت است كه Plug-In هاي ازنوع اول تقريباً مستقل از MMB عمل ميكند و بر ساير اشياء حاضر در پروژه هيچ تاثير مستقيمي اعمال نميكنند. عدم تعامل با ساير اشياء ضعفي براي MMB شناخته ميشود كه شايد در نسخههاي بعدي برطرف گردد.نكتهي ديگري كه در خصوص نوع اول بايد گفت اينست كه نميتوان از يك Plug-In در 2 پنجره استفاده كرد در مفــهومي عامتر نــمي توان آنها را به اشـــتراك گذاشت. راهحل اين نقيصه استفاده از 2 Plug-In مشابه اما با نامهاي مختلف است.
همانطوركه شكل بالا نشان ميدهد دو Plug-In مشابه با نامهاي مختلف داريم كه اين نامها در جاي خود مهم است، چرا كه در ادامه توسط همين نامها و به مدد از فرامين از Plug-In ها استفاده ميكنيم. اما نوع دوم بصري هستند كه قبلاً راجع به آنها صحبت كرديم.شكل زير يك نمونه از PlugInهاي بصري است.

بگذاريد پس از شرح قسمتهاي مهم قبل به جمعبندي مطالبي كه تا كنون آموختيم بپردازيم:
– Plug-In ها همه جا هستند.
– قسمتهايي اضاف بر سازمان هستند.
– هدف Plug-In ها افزايش قابليت برنامههاست.
خب ديگر تئوري بس است.به جاست كه تمرين را شروع كنيم. گفتيم كه تنظيم خصوصيات Plug-In هاي نوع 1 توسط اسكريپت نويسي انجام ميشود. در زبان اسكريپتنويسي MMB، 3 فرمان مرتبط با Plug-In ها وجود دارد كه شما از آنها جهت ايجاد ارتباط بين MMB و Plug-In استفاده ميكنيد. اين فرامين به ترتيب در لیست زير بحث شده اند.

  • PlugInSet

اين فرمان جهت تنظيم پارامتر براي فرامين Plug-In ميباشد. اين فرمان پارامترها را كه همان متغيرهاي عددي و رشتهاي هستند را به فايل Plug-In ارسال ميكند و Plug-In آنها را ذخيره و بررسي ميكند .هر بار استفاده از اين دستور با يك متغير كه محتوايش تغيير كرده سبب جايگزيني محتوي جديد در فايل Plug-In مي شود.

  • PlugInRun

اين فرمان توابع و فرامين تعبيه شده در فايل Plug-In را براساس پارامترهاي تنظيم شده اجرا ميكند. چنانچه بخواهيد نام فرامين موجود در Plug-In را بدانيد به راهنماي همراه Plug-In مراجعه كنيد. البته هميشه Plug-In ها احتياج به پارامتر ورودي ندارند و يا در حالاتي هيچ مقدار خروجي توليد نميكنند و تنها سبب تغيير حالت Plug-In و انجام ساير فعاليتها ميشود.

  • PlugInGet

اين فرمان وظيفه دريافت مقدار خروجي كه با استفاده از فرمان PlugInRun توليد شده است را برعهده دارد.پس طبيعتاً اين فرمان پس از دستور PlugInRun استفاده ميشود.

مثال
اكنون 3 فرمان گفته شده را در كنار هم ميآوريم تا بتوانيم از Plug-In استفاده كنيم.

var$ = “text”
PlugInSet(“Plug-In” , “ var$”)
PlugInRun(“Plug-In” , “uppercase”)
PlugInGet(“Plug-In” , “var$”)
Message(“Output is:”,”var$”)

در بلوك كد بالا ابتدا محتوي متغير var$ توسط فرمان PlugInSet به Plug-In ارسال ميشود.سپس دستور PlugInRun بر اساس متغير دريافتي دستور مربوطه (uppercase) را اجرا ميكند ويك خروجي توليد مينمايد. در ادامه دستور PlugInGet مقدار خروجي را دريافت كرده و به MMB انتقال ميدهد.كه درآخر ميتوان از اين مقدار با استفاده از ساير فرامين سود جست. حالت گفته شده گونهاي بود كه Plug-In خروجي توليد كرد اما حالتي پديد ميآيد كه هيچ خروجي توليد نميشود،يعني اينكه احتياجي به استفاده از فرمان PlugInGet نيست.اين حالت براي مثال ممكن است براي مواقعي كه ميخواهيم اندازه يك فونت را تغيير دهيم پديد آيد. چيزهايي كه نياز است ،يكي اندازه نهايي فونت و فرماني جهت اجراي آن است و هيچ نيازي به خروجي نميباشد.اين گونه از ارتباط همانند مثال زير ميباشد.

مثال:

fontsize= 16
PlugInSet(“Plug-In” , “ fontsize”)
PlugInRun(“Plug-In” ,”Set fonts size”)

توجه كنيد كه فعلاً تمام اين Plug-In ها فرضي و مجازي هستند.

ممكن است گونههاي مختلفي در استفاده از فرامين MMB براي ارتباط با Plug-In ها پديد آيد و اين بستگي به نوع فرمان Plug-In دارد كه ميتوان از طريق راهنماي Plug-In آن را مشخص ساخت.
بگذاريد چون صحبت درباره راهنماي Plug-In شد،قدري راجع به آن صحبت كنيم. همانند ساير راهنماها، راهنماي Plug-In ها هم بسته به نياز حاوي تعدادي مثال هستند كه اين مثالها هدف اصلي هر دستور را نشان ميدهد و هميشه نميتوان با كپي و چسابدن آنها از راهنما به ويرايشگر اسكريپت انتظار عملكرد صحيح را از آنها داشت.گاهي اوقات لازم است كه با توجه به خطوط قبلي كد برنامه و براساس نيازمان كد اين مثالها را تغيير دهيم و نهايتاً از آنها استفاده كنيم. نكتهي ديگري را كه بايد يادآور شد اين است كه در غالب راهنماها بر چسب Plug-In ، PlugIn در نظر گرفته ميشود كه چنانچه بخواهيم نام ديگري داشته باشيم بايد در فرامين مرتبط با Plug-In اين برچسبها را تغيير دهيم.
اما در رابطه با حالتهاي به كارگيري 3 دستور قبل صحبت ميكرديم.حالتهاي ديگري هم كه ممكن است پديد آيد به صورت زير است:
الف) استفاده از يك دستور بدون هيچ ورودي و خروجي
ب) استفاده از يك دستور بدون مقدار ورودي
حالت الف ممكن است مواقعي پيش بيايد كه فرمان ما تنها عملي را بايستي انجام دهد براي مثال ويندوز را Shutdown كند.
حالت ب ممكن است مواقعي پيش بيايد كه فرمان Plug-In مستقلاً عمل كرده و مقدار خروجي توليد كند. مثلا هنگامي كه بخواهيم ساعت و تاريخ را دريافت كنيم.اگر پا را فراتر ازاين حالات بگذاريم حالتهاي ديگري به وجود ميآيد كه خود از تركيب چند حالت قبل پديد مي آيد،همانند مثال زير:
بلوك 1

کد:
var$ = “My computer is P4”
PlugInSet(“Plug-In” , “var$”)
PlugInRun(“Plug-In“ , “upper case”)
PlugInGet(“Plug-In” , “text$”)

بلوك 2

کد:
PlugInSet(“Plug-In” , “text$”)
PlugInRun (“Plug-In” , “Show message box”)

در مثال قبل ابتدا رشته در بلوك 1 به حالت بزرگ تبديل شده و به بلوك 2 ارسال ميشود تا در كادر پيغام نشان داده شود.
رابطهاي Plug-In و متغير تنها به يك انتساب ساده ازقبيل var$=myname منتهي نميشود.بلكه گاهي اوقات پيش ميآيد كه اين رشتهها توسط كاراكتري از هم جدا ميشوند مثلاً براي تعيين مقدار رنگ:
color$ = “220,150,105”
اين گونهها بر اساس تعاريفي كه از پيش در Plug-In به وسيلهي مؤلف آن آمده است پردازش و تجزيه ميشود.حالتهاي ديگري از اين قبيل انتسابها هم وجود دارند.

مثال:

Regkey $ = ‘softwareprogramsectionkeyname’
Flag$ = ‘con|yes no cancel|caption’
كنترل رويداد (Event Handing)

وقايع (Event): اتفاقات و توسعههايي هستند كه در Plug-In رخ ميدهند و به برنامه شما اطلاع داده مي شوند.
كنترل كننده رويداد: شيءهاي اسكريپت MMB هستند كه همانند نوعي شبكه وقايع را دريافت ميكند.
همانطور كه قبلاً خوانديد بعضي از فرامين مقادير خروجي توليد مي كنند اما برخي از Plug-In ها بلافاصله پس از دستور PlugInRun مقدار خروجي توليد نمي كنند. وظايفي از قبيل پردازش دادهها ، وقفههاي طولاني، رويدادهاي دورهاي و … سبب بروز چنين حالتي مي شوند. خب در اين صورت سؤال اينجاست كه Plug-In برنامه MMB چگونه در اين حالت با MMB به تعامل ميپردازد؟ جواب اينجاست كه خود Plug-In فشردن كليد يا كليدهايي را جهت ارسال اطلاعات به MMB شبيهسازي مي كند.

آشنایی با Plug-In ها در نرم افزار MMB بیشتر بخوانید »

مهمان ناخوانده برای Blogfa

Blogfa vs WordPressاین روزا با داغتر شدن وب جدید یعنی وب 2 که همراه خودش یه نسل جدید از امکانات و ویژگی ها رو به ارمغان آورده روز به روز شاهد تولد یه سرویس جدید و محیرالعقول هستیم و شاهد این هستیم که سایت ها به برنامه کلاسیک دسکتاپی روز به روز در حال نزدیک شدن هستن. هنوز چیزی نشده پای صحبت وب 3 هم به میون اومده! این عوامل علاوه بر اینکه دامنه توسعه رو وسیعتر کرده ، جو رقابت رو هم تشدید کرده و این عوامل در نهایت به نفع کاربران نهایی هست. اما باز هم مثل همه مقدمه های این شکلی، این ور آب وضع یه جور دیگس که بیا و ببین. همونطوری که همه میدونیم بر اساس آمار الکسا سرویس بلاگفا پربینیده ترین سایت فارسی زبان هست که روزانه میزبان هزاران کاربر هست. این سرویس با این حجم از کاربران در موقعیتی حساس و تعیین کننده به سر می بره که توجه خیلی ها از جمله بنده رو به خودش جلب میکنه. با این توصیف بنده قصد دارم تا از زاویه فنی کمی به این سرویس نگاهی بندازم و برخی از نارسایی ها و نقص های اون رو مرور کنم تا شاید فرجی بشه! اگر عمری بود حتما در مورد کارکرد های اجتماعی، نقاط قوت و اوکوسیستم بلاگفا هم چیزایی خواهم نوشت. خب دیگه منتظر چی هستیم، بیاین شروع کنیم.

اطلاعات آماری بسیار ضعیف

یکی از معایب بلاگفا فقدان یک سیستم آمارگیری برای رهگیری و بررسی نوشته ها هست. بهره برداری از اطلاعات آماری و بررسی نوشته های پیشین یک اصل مسلم جهت پیشبرد روند وبلاگ نویسی هست و نویسنده را بیش از پیش در انتخاب مسیر و تصمیم گیری کمک میکنه. در حالیکه تعبیه چنین ویژگی برای بازیگر بزرگ وب فارسی یعنی بلاگفا چندان سخت و هزینه بر نیست.

ویرایشگر نامطلوب

این روزها دیدن یک ویراستار متنی پیشرفته در پنل مدیریت سایت ها و وبلاگ ها به یک چیز کاملا طبیعی تبدیل شده. نمونه همین ویراستار رو هم ما در سرویس بلاگفا می بینیم. اما این ویراستار به نسبت ویراستارهای استاندارد دارای نقاط ضعفی است که شاید برای کاربرانش ( یا حتی خود بلاگفا ) هویدا نشده! مدت هاست که دیگر مرورگر اینترنت اکسپلورر مایکروسافت یکه تاز بی رغیب بازار نیست و رقبایی قدرتمند رو در کنار خودش احساس می کنه. رقبایی مثل فایرفاکس، اپرا و اخیرا مرورگر سافاری. اگر کمی موشکافانه و دقیق به بررسی عملکرد ویراستار مورد بحث در مرورگرهایی غیر از اینترنت اکسپلورر بپردازیم می بینیم که بعضی از قسمت ها مثل پنجره های ویژگی ابزار ها ( مثل عکس ) به خوبی عمل نمی کنند و کمی عجیب رفتار می کنن!

( تصویر روبرو : نمونه ای از ظاهر شدن ناقص پنجره خصوصیت عکس ویرایشگر بلاگفا در فایرفاکس)

ویژگی نامطلوب بعدی استفاده از دو ویرایشگر مجزا برای درج ادامه مطلب در متون طولانی هست. راه حل بلاگفا برای این کار خیلی آماتوری و تا حدودی سهل انگارانه هست. اگر کاربر بخواد متنی بلندی را در دو قسمت ارائه کنه باید لینکی رو که زیر ویرایشگر اولیه هست کلیک کنه تا ویرایشگر دومی جهت درج ادامه مطلب ظاهر بشه که در اولی متن خلاصه یا نیمه اول رو بنویسه و در دومی کل متن رو قرار بده. در حالیکه در سرویس های استاندارد همچون وردپرس تنها با درج یک خط افقی ویژه که به سادگی در بین متن قرار میگره این کار صورت میگیره.

در همه ویرایشگرها ویژگی مشاهده سرس کد html نوشته قرار داده شده تا انعطاف پذیری رو برای نویسنده بیشتر کنه. ویرایشگر بلاگفا هم از این قاعده مستثنی نیست و همچین ویژگی رو داره. اما باز هم به طور ناقص! اگر در حالت سرس کد قرار بگیریم عملا دکمه های نوار ابزار این ادیتور از کار می افتن و همه چیز باید دستی انجام بشه که چندان رضایت بخش نیست و سرعت عمل رو پایین میاره.

اگه دیر بجنبی همه چیز از دست رفته!

اگر توجه کرده باشین بعضی موقع ها که شما مشتاقانه و مصرانه در حال نوشتن یه مطلب بالا و بلند هستین و اون رو تموم می کنین، لبخند رضایتی می زنین و دکمه”ثبت و بازسازی” رو فشار میدی یه دفعه با صفحه ورود به بلاگفا مواجه می شین و هاج و واج می مونین. سریع یه بک میزنین تا برگردین، اما می بینین که همه چیز بر باد رفته! و خشمتون رو نثار این و اون می کنین. این اتفاقی هست که برای خیلی از کاربرای بلاگفا افتاده و حسابی حال اون ها رو گرفته. دلیل این نقص هم زمان محدود session ( نشست) هست که بعد از اندک زمانی منقصی میشه و کاربر مجبور میشه برای ادامه فعالیت دوباره هویتش رو به بلاگفا ثابت کنه. اگر بخام به زبون ساده تر بگم اینطور میشه که شما وقتی با وارد کردن نام کاربری و کلمه عبور وارد پنل مدیریت بلاگفا میشین بلافاصله یک متغیر در حافظه ایجاد میشه که ازش با نام کلی session یاد میشه. به طور پیش فرض این متغیر session یک زمان انقضایی داره که توسط برنامه نویس و یا سرور تنظیم میشه و وقتی این متغیر منقضی بشه انگار که شما از پنل خارج شدین و حضور شما نادیده گرفته میشه. این در حالیه که به سادگی میشه با هوشمند تر کردن سیستم رفتار کاربر رو مورد ارزیابی قرار داد و نوشته های کاربر رو موقتا بو به صورت خودکار به صورت پیش نویس ذخیره کرد تا در چشم بهم زدنی زحمات کابر به باد نره.

نداشتن دستگیره تغییر (Sizing Grip) اندازه پنجره ویرایشگر هم در برخی از اوقات عذاب آور میشه و هی مدام باید به بالا و پایین اسکرول کرد. حالا هی بیا مانیتور بزرگ و عریض بخر، چه فایده!

البته داستان به اینجا ختم نمیشه و هنوز چند مورد دیگه مثل دسته بندی ها و ارسال مطلب به دسته ها باز کمی آزار دهنده و محدود به نظر میاد. در زیر ویرایشگر بلاگفا یک لیست حاوی شاخه های موجود قرار داده شده تا کاربر انتخاب کنه که مطلبش قراره توی کدوم شاخه نمایش داده بشه. اما اگر مطلب شما مثلا درباره اینترنت و اجتماع باشه و شما هر دو شاخه اینترنت و اجتماع رو مجزا داشته باشین، باید قید یکی از دسته ها رو بزنین و فقط یه دسته رو برای مطلبتون انتخاب کنین که در برای کاربرای حرفه ای خوشایند نیست. مطمئنا تغییر این مکانیزم باید در برنامه کار بلاگفا قرار بگیره تا کاربری بلاگفا رو بهتر و مفید تر کنه.

این روزا هم که برچسب (Tag) زنی به مطالب وبلاگ خیلی رایج شده و انصافا هم به درد بخور هست. یکی از جاهایی که این برچسب ها به درد می خورن توی جستجو ها و طبقه بندی مطالب هستن که متاسفانه بلاگفا این ویژگی محبوب رو تا حالا اضاف نکرده.

فریم در فریم

نقیصه ای که مربوط به session بود و من توضیحش دادم باز جاهای دیگه گریبان کاربر رو میگیره. یکی از این جاها هست که شما از ستون کناری بلاگفا روی یه لینک کلیک می کنید و این مصادف میشه با منقضی شدن session که در این شرایط بلاگفا شما رو هدایت می کنه به صفحه ورود به وبلاگ. مورد مورد بحث درست در همین جا اتفاق میفته و در قسمت سمت چپی پنل مدیریت که ویرایشگر و سایر جزئیات ظاهر میشن، یه کپی مشابه ( مثل تصویر آینه در آینه ازکل پنجره مدیریت ظاهر میشه. این به این خاطر هست که دو قسمت ستون سمت راست و چپ فریم هستن و در این شرایط کل فریم ها در فریم سمت چپ نشون داده میشن. برای اینکه راحت تر قضیه رو درک کنین به تصویر زیر توجه کنید.

فریم های تو در تو در بلاگفا

(برای مشاهده تصویر بزرگتر کلیک کنید)

بلاگفا زیاد سخت نمیگیره!

خیلی جالبه، این همه به برنامه نویس ها تذکر داده میشه که بابا موقع استفاده از فرم ها باید اولین کارتون این باشه که بررسی کنید کاربر مقادیر مورد نیاز رو به درستی وارد کرده باشه و بعد بهش مثلا اجازه درج مطلب در بانک اطلاعاتی رو بدین. با این همه باز هم بلاگفا خان یادش رفته یه جاهایی این اصل ساده رو رعایت کنه. یکی از این جاها صفحه درج لینک های روزانه هست که از این ویژگی بی بهره هست و اگر شما در

حالی که فرم لینک و توضیحاتش خالی باشه دکمه درج پیوند رو فشار بدین، با کمال تعجب می بینین که یه//:http خالی توی لیست ثبت میشه. بلاگفا خان برای کسی در جایگاه شما واقعا زشته، بجنب جانم تا ضایع نشده.

نظرات PopUp ای!

سیستم نظردهی در پنجره های PopUp مدت هاس که منسوخ شده ولی بلاگفا خان ما نمیخواد توجه کنه. بابا جان شاید یکی تنظیمات امنیتی داشته باشه و PopUp ها براش بلوکه شده باشن. یا نه بخواد سریع نظرات رو زیر هم ببینه و بره… نظرت چیه بلاگفا جان؟

تبلیغات بلاگفا و ماجراهایش

Blogfa Ad

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

تصویر روبرو: نمونه ای از تبلیغات سود جویانه ی بلاگفا

اون قدیم ندیما یادمه یه عده ای اومدن طرز غیر فعال کردن بنرهای بلاگفا رو فاش کردن ( که البته کار سختی هم نیست) و بلاگفا خان ما که جونتر بود یکمی احساس خطر کرد و اوضاع رو راست و ریس کرد. حالا خوبه همه جار بزنیم که چطوری میشه تبلیغات رو برداشت؟ هان؟ یه معامله می کنیم: تو تبلیغ درست بذار و به داد امکانات برس، ما هم سرمون به کارمون میمونه و یهویی باعث نمیشیم که وردپرس بیاد بیخ گوشت.

بلاگفا سادس

اصولا سادگی چیز بدی نیست. با این همه بلاگفا ساده هست و کار باهاش برای اکثر کاربرا راحت هست. البته وقتی یه مدت بگذره و کاربرا احساس کننن که به یه سری ابزارها نیاز دارن با محدودیت هایی همچون چیزهایی که در بالا گفتم مواجه میشن.

ادامه دارد…

مهمان ناخوانده برای Blogfa بیشتر بخوانید »