شروع به کار سایت رسمی سیستم مدیریت محتوای آیلین

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

شما میتونید سایت اصلی این پروژه رو در آدرس http://www.aylincms.com ببینید.

طبق مستندات موجود در سایت اصلی:

توضیح:

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

در ادامه سعی دارد کمبود های قالب مذکور را با اضافه کردن کتابخانه های مفید ثانویه و روال های مرسوم رفع کرده تا برنامه نویس در شروع کار پروژه خود از حداقل های لازم و مرسوم در کمترین زمان ممکن برخوردار شود.

لازم به تاکید است که هدف آن به هیچ عنوان رقابت با CMS های مرسوم نبوده،  بلکه استاندارد سازی و سرعت در روند توسعه وب سایت های تحت توسعه گروهای کوچک از اهداف آن میباشد.

مرامنامه و مجوز:

آیلین از فلسفه نرم افزارهای آزاد / متن باز تبعیت میکند و به طور خاص تحت مجوز  GPLv2   میباشد.

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

همچنین بخش خدمات و محصولات جانبی کاملا بر مبنای مدل تجاری بنا شده است تا بار اصلی امرار معاش برنامه نویسان اصلی پروژه را بر دوش کشد.

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

نصب:

برای نصب AylinCMS پس از دانلود آن از آدرس https://github.com/pesarkhobeee/Aylin/archive/master.zip آن را در پوشه وب سرور خود اکستراک کرده و در صورت نیاز مالک پوشه آن را کاربر وب سرور قرار دهید، برای مثال در توزیع slackware سیستم عامل Linux از دستور زیر:

chown -R apache:apache aylin/

و یا در توزیع ubuntu از دستور زیر استفاده کنید:

chown -R www-data:www-data aylin/

سپس کافیست دیتابیس موردنظر خود را ساخته و برای ادامه روند نصب و انتخاب گزینه ها به نصاب تحت وب  AylinCMS  از طریق مرورگر ایترتنی خود مراجعه کنید.

توسعه:

برای تصحیح و تکمیل پروژه میتوانید از آدرس https://github.com/pesarkhobeee/Aylin استفاده کنید، همچنین برای بحث و طرح سوال پیرامون موضوعات مربوطه میتوانید به  لیست پستی   [email protected]  مراجعه کنید.

در آینده مستندات مربوط به توسعه بخش ها و زیر سیستم ها در AylinCMS اضافه خواهند شد اما فعلا به یک شمای کلی از آن بسنده میکنیم:

 

 

برای قسمت تجاریش فعلا به  آموزش و پشتیبانی و کمک مردمی  و افزونه ها فکر کردم که در بخش افزونه های تجاری فعلا موارد زیرو آماده کردم:

 

 

و بلاخره نتایج کار کردن در وقتهای آزاد این یک سال اخیر دارن کم کم نمایان میشن و البته قالب بودن تفکر محصول محوری، حتما کمبود ها و مشکلاتی هم خواهد بود که امید دارم به کمک دوستانم حلشون کنم :)

 

پی نوشت:

آیلین نامیست ترکی، به معنای مهتاب.

انتشار نسخه ۱ آیلین

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

Aylin cms diagram

و یک شات از محیط مدیریتی :

همون طور که قبلا هم گفتم برای دریافت پروژه و یا مشارکت از https://github.com/pesarkhobeee/Aylin و برای پیوستن به اعضای این سیستم از [email protected] استفاده کنید.
موفق باشن :)

آیلین، بیس طراحی وب سایت

فکر میکنم بین ۴ تا ۵ ساله که دارم طراحی وب یاد میگیرم و یاد میدمو وب سایت طراحی میکنم، این حرفم شاید بهانه گیری بیش نباشه ولی کار وب معمولا تو شهرای کوچیک ، کوچیکه و باعث پیش رفت فنی آدم نمیشه.

این بهانه رو آوردم که بگم من خیلی دیر به فکر جلوگیری از دوباره کاری و تکرار مکررات تو کارام افتادم و آیلین نتیجه این تفکر جدید منه.

اگه بخوام آیلینو تعریف کنم با توجه به موارد بالا باید بگم هدفش اینه که یه بیس برای جلوگیری از دو باره کاری باشه.

خوب الان بحث این میاد که اینهمه CMS برای همین منظور ایجاد شدن تو چی میگی؟

ادامه خواندن آیلین، بیس طراحی وب سایت

کار آسان با پایگاه های داده مختلف به کمک کلاس Auto_PDO

امروز میخوام کلاسیو که همین اواخر نوشتم معرفی و منتشر کنم.

این کلاس بر مبنای PDO که سر نام عبارت PHP Data Objects هست بنا شده، این پست برای توصیف PDO  نیست اما برای آشنایی در همین حد بگم که جزو  Abstraction Layers های php برای کار با دیتابیس ها محسوب میشه، به این معنا که نقش یک لایه جدا و مجرد رو بین شما و تمام دیتابیس ها بازی می کنه.

سادش این میشه که شما به زبان PDO صحبت می کنید و بهش میگین برو اینارو به Mysql بگو و یا برو اینارو به اراکل بگو!  دیگه PDO میدونه و اون دیتابیس که چه طوری با هم صحبت کنن. برای شما فقط این میمونه که بگین طرف حساب PDO کدوم دیتابیسه!

اینم لیست انواع دیتابیس هایی که در PDO پشتیبانی میشن.

خوب برگردیم سر داستان خودمون، جریان اینه که من از انجام دادن کارهای تکراری بیزارم و این باعث میشه هر از چند گاهی تو هر زمینه که تکرار ببینم سعی کنم یه راه اتوماتیک برای اون کار ایجاد کنم.

یکی از این زمینه ها چهار عمل اصلی دیتابیس هاست یا همون CRUD که سر نام عبارات Create, read, update and delete هست و حقیقتا در کارهایی که آدم از ORM یا framework استفاده نمی کنه یکی از حوصله سر بر ترینه بخش هاست.

سوالی که پیش میاد اینه که خوب چرا از این چیزایی که گفتی استفاده نمی کنی؟ و جواب من همیشه این شکلی بوده که برای بیل زدن یه باغچه، آدم بیل مکانیکی نمیاره! ;)

در نهایت سرتونو درد نیارم یک کلاس PHP نوشتم به اسم Auto_PDO که همراهش یه مثال ساده هم قرار دادم و مسلما قبل از اجرای مثال باید فایل auto_pdo.sql رو داخل دیتابیستون ببریدو فایل db.php رو تنظیم کنید :)

میتونید فایلو رو از اینجا دریافت کنید

و یا در تکمیل و تصحیح اون در این ادرس با من مشارکت کنید

در نهایت امیدوارم این کلاس به دردتون بخوره :)

دیلماج، مترجم فارسی تحت خط فرمان!!!

خوب عید سال ۹۱ هم تموم شد و من تو عید علاوه بر کتاب خوندن یه پروژه شخصی کوچیکم نوشتم که میخوام باهاتون به اشتراک بزارم.

این پروژه یه دیکشنریه!

میدونم الان دارین میگین:  “اه باز یکی که فک میکنه برنامه نویسه یـــــــــــــــه دیکشنری نوشت،مرده شورشونو ببرم!  اینا چرا نمیرن یه موضوع جدید پیدا کنن؟”  =))

خوب حق با شماست اما این دیکشنری یه تفاوتاییم داره!

مثلا اینکه توی خط فرمان اجرا میشه و توی همه ترمینال ها بدون تنظیم خاصی برای نمایش فارسی ، معانی رو نشون میده.

شاید بپرسید چه طوری؟ خوب ایدش یهویی امد تو ذهنم که فکر کنم بر میگرده به استعدادم تو ماس مالی کردن مشکلات و دور زدن اونها =))

فک کنم شات زیرو ببینید متوجه ایده میشین:

خوب فکر کنم ایدشو متوجه شدن دیگه!  این کلمات فارسی رو به صورت نقشه ای از کاراکترهای اسکی نشون میده .

اسم این بچه جدیمم گذاشتم “دیلماج” که یه کلمه ترکیه به معنای مترجم که در موردش اینجا بیشتر میتونید بخونید.

پیش نیازهای اجرای این برنامه php5-cli  و php5-gd که بعد از نصب اونها میتونید اسکریپت INSTALL.sh   رو اجرا کنید و اونو نصب کنید .

نحوه کارشم سادس ، بعد نصب مینویسید :

dilmaj <word>

dilmaj <word> a

اولیه ، اولین معنی کلمه رو نشون میده و دومیه تقریبا همه معانی اون کلمه رو .

و همین!

دیلماجو میتونید از اینجا دریافت کنید

امیدوارم خوشتون بیاد و ازش لذت ببرین. مسلما برنامه هنوز ناقصه و خوشحال خواهم شد در تکمیلش کمکم کنید.

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

ایجاد خودکار sql درج اطلاعات با استفاده از اطلاعات ارسالی

میدونم دیگه کمتر آدم حرفه ای هست که مستقیم SQL  میزنه و بیشتر از PDO و ezc , propel , doctrine استفاده میکنن اما توی جریانی، من مجبور شدم چند تا فرم ورود اطلاعات به یکی از کارهای ۳-۴ سال پیشم اضافه کنم که با SQL معمولی بود .

اما وقتی شما با یه فریم ورک کار کردی باشین دیگه گشادیتون میاد مثل سابق همه کارارو خودتون بکنید ! بنا بر این یه فانکشن نوشتم که خودش SQL Insert رو از روی موارد ارسالی از POST یا GET ایجاد کنه.

البته با این فرض که نام ستونهای جدول دیتابیستون با نام فیدلهای فرمتون یکیه!

این فانکشنو میتونید از pastebin بگیرید.

نقل و نبات شماره پانزده (tips & tricks) ساختار


تو یکی از سایتهایی که با wp زده بودم ، مشتریم از من خواست یک بنر خاص تو صفحه اول سایت باشه و تو ما بقی صفحات بنر دیگه ای باشه ! خلاصه این شد که ما با ساختار بسیار فوق العاده پوسته در وردپرسبلاخره کار کردیم.

خوب به اندازه کافی عکس پایینی گویا هست فکر کنم :) :

نقل و نبات شماره چهارده (tips & tricks) نصب Zend Optimyzer بر روی VPS

یکی از سایتهای زیر مجموعه من کد هاشو با ZendGuard اینکد کرده بود و برای اجرا شدن کدهاش باید روی سرور Zend Optimizer نصب میشد ! تهران میگفت روی vps نصب شده اما کدها اجرا نمیشدن !

برای تست نصب بودن از این کد استفاده کردم .

دیدم نصب نیستو تهران چرتو پرت میگفته ! بنا بر این دنبال راه حل نصبش گشتم ، اینو پیدا کردم :

Login as root using SSH and run this command and it will install the zend optimizer.

/scripts/installzendopt

Then restart the apache

service httpd restart

To check whether zend optimizer is running..use this command

php -v

It would show ioncube or zend optimizer version

 

اتفاقا راه حل درستیه ولی بازم کار نکرد ! وقتی بیشتر سرچ زدم دیدم zend optimizer‌ برای php  ۵٫۳ نیومده و برای ۵٫۲ به پایینه ! بنا بر این php رو دانگرید کردم و بدون مشکل نصب شد !

پ . ن : گرچه تا حالا اصلا نخواستم کدهامو اینکد کنم یا ببندم ولی جالبه در مورد ioncube و ZendGuard یه تحقیقی بزنم شاید یه روز  خواستم استفاده کنم.

عبارات منظم regular expression

به syntax های خاصی که الگوی متن موردنظر رو مشخص میکنه عبارات منظم یا regex یا regexp گفته میشود.

در سیستم های لینوکس معمولا از ان برای پیدا کردن الگوی خاص متن و مخصوصا در پیدا کردن و جای گزاری ها استفاده میشود.

نکته : گرچه filename globbing و regular expression بسیار شبیه هم به نظر میرسند امابنیادن بسیار متفاوتند.

ادامه خواندن عبارات منظم regular expression

روبوتها در اینترنت یا چگونه موجودیت های خودکار در دنیای سایبر ایجاد کنیم؟

یادمه اوایل ورودم به اینترنت شنیده بودم یه سری روبوت هستن که برای موتورهای جستجوگر کار میکننو اطلاعاتو جمع میکنن! بعد ها  یه چیزایی راجع به  روبوت پاسخگوی یاهو تو مسنجر شنیدم و در پرده آخر تو کانال های irc به کسانی بر خوردم که روبوت بودن!خدا میدونه چه جاهای دیگه ای هم هستن که من ندیدم!

خلاصه یه روز فکر کردم اینا بر اساس چه مبنایی ساخته میشن و چگونه کار میکنن؟

این شد که آستینارو زدم بالا و یه پروژه کوچیک برا خودم تعریف کردم:

میخواستم دو راه دیگه برای دسترسی به آخرین مطالب سیاره زنجات لاگ درست کنم : اولیش این بود که هر پست جدیدی که اضافه میشه ، اون پست در شبکه آیدنتیکا اعلام بشه و دومیش اینکه یه اکانت تو مسنجر باشه که هر وقت خواستم باهاش بچتمو اطلاعات لازمو بگیرم!

ادامه خواندن روبوتها در اینترنت یا چگونه موجودیت های خودکار در دنیای سایبر ایجاد کنیم؟