January 21, 2009 at 01:58 am
در پست قبل حدود بیست روز پیش فیدرول را معرفی کردم آن زمان قرار بود فیدرول یک سیستم برای منظم سازی خوراکها براساس زمان آپدیت و جزئیات مختصر دیگری باشد اما مشورت با چند نفر از دوستان و ایدههای جالب دیگر کارکرد پروژه را عوض کرد.

فیدرول قرار است یک آنالیزگر خوراک برای وبلاگهای فارسی باشد. فعلا پروژه تکمیل نشده و در حال توسعه است. برخی از قابلیتها بعلت پهنای باند و فضای محدود هاست رایگان تا تهیه یک هاست مناسب به حالت تعلیق درآمدهاند و در آینده نزدیک قابلیتهای جدید دیگری افزوده خواهد شد. فیدرول را میتوانید فعلا
اینجا ببینید.
-
قابلیتهای فعلی:
+ امکان افزودن خوراک وبلاگ بهنهایت سادگی و آگاهی از وضعیت آن
+ بروزرسانی خوراکها هر 5 دقیقه یکبار
+ منظم سازی بر اساس زمان بروزرسانی، حروف الفبا، تعداد مشترکین فیدبرنر
+ نمایش عنوان 10 مطلب اخیر وبلاگهای ثبت شده
+ جستجوی پیشرفته در ناموبلاگها، زمان بروزرسانی و تعداد مشترکین فیدبرنر
+ خروجی RSS با قابلیت سفارشیسازی
تمام قابلیتهای فوق توسط آژاکس (تماماً کتابخانه JQuery) و زبان قدرتمند PHP و بانک اطلاعاتی MySQl پیادهسازی شده و سعی شده نهایت کاربر پسند بودن در آن لحاظ شود. برخلاف خواستهام ناگزیر شدم CakePHP را در این پروژه کنار بگذارم و کلاسها را از نو بنویسم.
خوراک چندی از وبلاگهای دوستان اضافه شده است میتوانید خوراک وبلاگتان را اضافه کنید اگه در سیستم موجود باشد هم مطلع خواهید شد. اما چگونه خوراک اضافه کنید. بدین منظور فیلد مناسبی در بالای صفحه تعبیه شده که به سهولت میتوانید خوراکها را اضافه کنید لازم است توضیحی در مورد محتوای خوراکها بدهم. قرار است روی خوراکها کار آماری شود و علاوه برآن لیست سازی انجام شود پس لازم است به این نکات توجه کنید: ادامه مطلب …
January 2, 2009 at 07:31 pm
قرار بود دسامبر سال قبل این مطلب رو بنویسم اما بنابر گرفتاری همیشگی و مشکلی که برای هاست پروژه جدید پیش اومد فرصت نشد. مدتها پیش (همان زمانهایی که سرور بلاگرولینگ مرتبا به علت پینگهای زیاد از کار میافتاد) قصد داشتم سیستمی مشابه بلاگرولینگ با استفاده از فید بنویسم اما فرصت زیادی نداشتم.
چند وقت پیش در یک پروژه کوچک با کلاس SimplePie آشنا شدم. انصافا در تجزیه عناصر درونی فید عالی عمل میکرد به خصوص اینکه مکانیزم caching مناسبی داشت. دو هفته قبل تصمیم گرفتم از این کلاس در قالب یه کامپونت برای CakePHP بمنظور ایجاد سیستمی مشابه بلاگرولینگ استفاده کنم.
خوشبختانه تا امروز با وجود کمبود وقتی که داشتم این وب اپلیکیشن کوچک رو تا یه جایی رسوندم نتیجهاش هم بلاگرول همینجاست. بعلت پهنای باند محدودم مجبور شدم فعلا پروژه را روی یک سرور رایگان ران کنم. هنوز پروژه تکمیل نشده و اگه فرصتم اجازه بده روی مولتی یوزر بودنش کار میکنم. (البته خبرهای خوشی از تیم توسعه بلاگرولینگ به گوش میرسه شاید تا اون زمان دوباره همه برگشتیم)
مهمترین دلیلم برای عدم استفاده از یه تجزیهگر فید ساده بمنظور لیست کردن وبلاگها، عدم ویرایش عناصر فیدها بود. حالا با استفاده از یه مکانیزم کش مناسب و ذخیره آخرین فید هر بلاگ در MySQL هم عناصر عنوان و توضیحات فیدها قابل ویرایش هستند و هم از لحاظ بهینهسازی بار سرور برای لیستهای طولانی کمتر میشه.
لیست بلاگرول اینجا هر 15 دقیقه رفرش میشه خروجی فید بلاگرول من هم اینجاست. اینها همه رو گفتم برای این که بگم با گسترش کاربرد فیدها تگ pubDate خیلی مهمه. خیلیها هنوز آیتمهای فیدشون این برچسپ رو نداره یا مقدارش معتبر نیست!
November 26, 2008 at 09:31 pm
از آنجایی که خیلی از دوستان در رابطه با انتخاب یک IDE مناسب برای کار با کیک با مشکل مواجه بودند. این پست نوشته شد، امیدوارم مفید واقع شود. در این پست و پست آتی تنظیمات ادیتور قدرتمند Eclipse برای کار با فریمورک CakePHP به ترتیب زیر آورده شده است:
-
+ بخش اول:
1- معرفی اجمالی Eclipse و ایجاد workspace و project
2- پیوند هسته کیک به پروژه جهت استفاده از قابلیتهای توکار Eclipse
3- پیکربندی برای شناسایی فایلهای thtml یا ctp
4- پیکربندی برای طبخ کیک بطور مستقیم با کنسول CakePHP
+ بخش دوم:
5- دسترسی به پایگاه داده MySQL به کمک پلاگاین QuantumDB
6- افزودن پشتیبانی از Subversion به کمک پلاگاین Subclipse
آنچه بدین منظور نیاز دارید:
+ نسخهای از Eclipse که شامل ابزارهای توسعهی پیاچپی است (3.3.2)
+ نسخهای از XAMPP که بطور پیشفرض در C:xampp نصب شده است
+ نسخهای از CakePHP که بطور پیشفرض در C:xampphtdocscake قرار دارد
+ سیستم عامل ویندوز ایکسپی
چرا از Eclipse استفاده میکنم؟
اول اینکه کد باز است و تعداد زیادی پلاگاین برای آن نوشته شده است که همهی نیازهای یک توسعه دهندهی وب را پوشش میدهد بطوریکه با اطمینان می توان گفت این نرمافزار به تنهایی یک توسعه دهنده را راضی خواهد کرد.
دوم اینکه بزرگ و قدتمند است اما در عین حال ساده برای بکارگیری. Eclipse یک IDE خاص نیست بلکه برای طیف وسیعی از زبانهای برنامهنویسی منتشر شده است. حتی خیلی از ادیتورهایی که جدیدا عرضه میشوند بر پایهی Eclipse بنا شدهاند. از آن جمله میتوان نرمافزار Carbide.ui Theme Edition شرکت نوکیا که برای طراحی تمهای گوشیهای موبایل ساخته شده است را نام برد یا جای دوری نرویم همین Aptana که برای کار با فریمورکهای جاوااسکریپت پیشنهاد میشود و … ادامه مطلب …
October 24, 2008 at 01:10 am
پیش نیازها: ساخت لینکدونی با CakePHP (بخش اول) و (بخش دوم)
در مراحل قبل دادهها را از دیتابیس خواندیم و در قالب لینک نمایش دادیم. در این بخش قصد داریم امکان افزودن لینک جدید، ویرایش و حذف لینک را اضافه کنیم و مختصری هم با Routes در کیک پیاچپی آشنا شویم.
ساخت فرم و افزودن لینک
طبق نمونههای گذشته به فایل links_controller.php کنش add را بصورت زیر اضافه میکنیم تا بتوانیم لینکهای جدیدی در دیتابیس اضافه کنیم:
<?php
class LinksController extends AppController {
var $name = 'Links';
function index() {
$this->set('links', $this->Link->find('all'));
}
function view($id = null) {
$this->Link->id = $id;
$this->set('link', $this->Link->read());
}
function add() {
if (!empty($this->data)) {
if ($this->Link->save($this->data)) {
$this->flash('Your link has been saved.', '/links');
}
}
}
}
?>
تابع add را به این صورت تعریف میکنیم که چنانچه فرم ارسال شده خالی نبود، با استفاده از مدل Link سعی شود داده ذخیره شود اما چنانچه بنا به دلایلی ذخیره نشد، نما نمایش داده شود. این خود فرصتی را در اختیارمان قرار میدهد تا خطاهای ناشی از محتوای فیلدهای ارسالی را نمایش دهیم. ادامه مطلب …
September 21, 2008 at 06:47 pm
همانطور که در پست قبل گقتم CakePHP از معماری MVC استفاده می کند. این معماری یه الگوی طراحی نرمافزاره که برنامهنویسی بر این مبنا، برنامه رو به سه بخش اصلی تقسیم میکنه:
1- Model مدل به داده برنامه اشاره دارد (معمولا جداول پایگاه داده). 2- View شاید هیچ لفظ فارسی جز خود این واژه نتونه جایگزین خوبی باشه اما این واژه را “نما” تعریف میکنم. نما در حقیقت یه رندر تصویری از داده مدل هست که در انتها به مرورگر کاربر ارسال میشه. 3- Controller کنترل کننده (کنترلر) درخواستهایی که توسط کلاینت ایجاد شده را بررسی و به یه مسیر صحیح هدایت می کند.
نمودار زیر چرخه معماری MVC را در CakePHP توضیح می ده:
برای مثال فرض کنید یه کلاینت بنام ریکاردو بر روی یک لینک (بالفرض خرید کیک که لینکی شبیه زیر داره) در صفحه اصلی برنامه کلیک کنه بنابراین درخواست از مرورگر وی به وب سرور منتقل میشه.
http://www.example.com/cakes/buy
در اینجا dispatcher آدرس درخواستی رو بررسی میکنه (cakes/buy/) و این درخواست رو به یک کنترلر صحیح هدایت میکند. کنترلر، منطق مشخص برنامه رو انجام میده، برای مثال چک می کنه آیا ریکاردو تا حالا لاگین کرده یا نه. علاوه براین کنترلر بمنظور دستیابی به دادههای برنامه از مدل ها استفاده می کنه. مدل ها معمولا نمایانگر جداول پایگاه داده هستند اما می تونن معرف ورودیهای LDAP، فیدهای RSS یا فایلهای روی سیستم هم باشند. بعنوان مثال در اینجا کنترلر یه مدل رو به کار میبره تا آخرین خرید ریکاردو رو از دیتابیس بکشه بیرون (به اصطلاح Fetch کنه). ادامه مطلب …