
ناصر منصوری
آموزش اپن کارت : چگونه با یکبار نصب اپنکارت، چندین فروشگاه داشته باشیم؟
تقریباً تمام سیستمهای فروشگاه سازهای شناخته شده مانند مگنیتو و پرستاشاپ دارای قابلیت ایجاد چندین فروشگاه با فقط با یکبار نصب، هستند، اپن کارت نیز از این قاعده مستثنی نبوده و نه تنها چنین قابلیتی به صورت پیشفرض در اپن کارت وجود دارد بلکه به نظر من استفاده از این قابلیت در اپن کارت نسبت به سایر سیستمها آسانتر و سادهتر است. در این آموزش قصد داریم تا نحوه راه اندازی چند فروشگاه بر روی یک سیستم اپن کارتی را بررسی کنیم.
حذف فیلدهای فرم ثبت نام کاربر در اپن کارت ۲
هرچند در اپن کارت ۲ امکان اضافه کردن فیلدهای سفارشی به فرم های ثبت نام کاربر جدید، به صورت پیش فرض وجود دارد اما گاهی ممکن است نیاز داشته باشیم تا برخی ار فیلدها، نمایش داده نشود.
هرچند فکر می کنم بهترین روش برای انجام این کار استفاده از ماژول های vqmod/ocmod هست اما راه حل سریع تر ویرایش فایل های سورس اپن کارت است. فرض کنیم من می خواهم در فرم ثبت نام کاربر، فیلد اجباری مربوط به شماره تلفن را حذف کنم.
فیلدهای سفارشی در اپن کارت ۲
با انتشار نسخه ۲ اپن کارت، ویژگیهای جذابی به این فروشگاه ساز اضافه شده است. یکی از این ویژگیهای جدید، فیلدهای سفارشی (یا به عبارت دیگر فیلدهای اختصاصی) هستند که در این پست به صورت خلاصه بررسی میکنیم.
فرض کنیم در نسخه های ۱ میخواستیم فیلدهای سفارشی و اجباری به فرم ثبت نام، اضافه کنیم. در نسخه ۲ این امکان به صورت پیشفرض فراهم شده است.
در نسخه ۲ اپن کارت به راحتی میتوانید فیلدهای سفارشی دلخواهی را به فرم ثبت نام اضافه کنید تا در فرم ثبت نام، پرداخت یا حتی پرداخت به صورت مهمان، قابل مشاهده باشند.
نصب ماژول ها در اپن کارت ۲ توسط قسمت مدیریت افزونه ها
با انتشار نسخه جدید اپن کارت ( نسخه ۲) ویژگی جدیدی برای افزایش سرعت و تسهیل نصب افزونه های جدید، با عنوان «مدیریت افزونه ها Extension installer» به اپن کارت اضافه شده است. استفاده از این ویژگی بسیار آسان است اما مواردی هم وجود دارد که مدیر وب سایت باید از آنها مطلع باشد.
حذف index.php از آدرس های کدایگنایتر
ادرس های تولید شده در فریموورک کدایگنایتر به صورت پیشفرض دارای نام index.php هستند. درصورتی که تمایل داشته باشید تا ادرس های تولید شده به صورت clean و بدون index.php باشند می توانید به صورت زیر عمل کنید :
یک : فایل .htaccess را در پوشه روت در کنار فایل اصلی index.php ایجاد کرده و محتوای زیر را در آن کپی کنید:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
دو : در فایل config/config.php خط
$config['index_page'] = 'index.php';
را به
$config['index_page'] = '';
تغییر دهید.
در صورتی که بر روی لوکال کار می کنید ممکن است ماژول rewrite آپاچی غیر فعال باشد که برای فعال کردن آن ابتدا دستور زیر را اجرا کرده :
sudo a2enmod rewrite
و سپس در فایل /etc/apache2/apache2.conf ، در بخش /var/www/ خط
AllowOverride None
را به
AllowOverride All
تغییر داده و ذخیره کنید. برای اعمل تغییرات بر روی سرور، سرور را ریستارت کنید:
sudo service apache2 restart
استفاده از تاریخ شمسی در کدایگنایتر
کدایگنایتر در عین سادگی، به آسانی قابل تعمیم برای انجام کارهای مختلف هست. موردی که باید هر فریموورک باید پشتیبانی کند امکان اضافه کردن کتابخانه های ثانویه است. libraryها، helperها، third-partyها در کنار استفاده از HMVC و ماژول ها راه هایی هستند که می توانید از فایل های ثالث یا فایل های خودتان در پروژه کدایگنایتر استفاده کنید.
احتمالا اولین کتابخانه ای که نیاز به استفاده در نرم افزار تحت وب خود خواهید داشت، تبدیل تاریخ شمسی و میلادی به یکدیگر هست، خوشبختانه کتابخانه های مختلفی برای این کار برای زبان پی اچ پی و به صورت اپن سورس وجود دارد. یکی از این کتابخانه های مفید JDF هست (jdf.scr.ir). برای استفاده از این کتابخانه در کدایگنایتر این مطلب مفید از آقای سیفی زاده موجود هست که با زحمت ایشون از این مخزن گیت هم قابل دریافت هست.
همینطور آقای مجیدزاده هم این کتابخانه را در این مخزن برای استفاده در کدایگنایتر ایجاد کرده اند که متاسفانه هنوز امکان بررسی کامل برام فراهم نشده (لطفا در صورتی که از این کتابخانه ها استفاده کردید نظرتون رو برام ارسال کنید)
خوشبختانه راه نسبتا ساده ای هم وجود داره، کافیه فایل JDF.php رو از سایت jdf.scr.ir دریافت و با نام jdf_helper.php در پوشه helpers ذخیره کنید. بعد از این هر جا نیاز به استفاده از توابع این کتابخانه باشد می توانید با دستور $this->load->helper('..'); کتابخانه را لود کنید. البته احتمالا در جاهای مختلفی از نرم افزارتان نیاز به لود آن خواهید داشت که در این صورت بهتر است در فایل config/autoload.php با اضافه کردن این فایل، آن را در اغاز اجرای برنامه لود کنید تا در تمام قسمت ها قابل دسترس و استفاده باشد.
نصب conky بر روی اوبونتو
کونکی (conky) یک نرم افزار سبک و ساده و در عین حال کامل برای مشاهده وضعیت پردازنده و رم و ترافیک داده بر روی شبکه سیستم های کامپیوتری لینوکسی است و مانند اکثر نرم افزارهای لینوکس با اتصال به اینترنت به راحتی قابل نصب است.
برای شروع در محیط ترمینال لینوکس این دستورات را وارد کنید :
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install conky-manager
بعد از اتمام مراحل نصب، نرم افزار پیکربندی کونکی از طریق conky-manager قابل اجرا خواهد بود.
برای حذف این نرم افزار از روی سیستم می توانید دستور زیر را در ترمینال اجرا کنید:
sudo apt-get remove conky-manager
منبع : http://www.itworld.com
راه اندازی LAMP سرور بر روی لینوکس
خیلی ها عقیده دارند بهترین محیط برای توسعه نرم افزارهای تحت وب با زبان های برنامه نویسی PHP یا Python، لینوکس یا مکینتاش است. شاید اینکه سرور نهایی اکثر این گونه برنامه ها در نهایت از سیستم عامل های لینوکس استفاده می کنند یا اینکه اکثر کتابخانه های لازم برای این گونه برنامه ها به صورت پیشفرض بر روی این سیستم عامل ها نصب شده اند، دلیل این ادعا باشد.
برای سیستم عامل ویندوز، پکیج هایی برای نصب خودکار آچاچی، مای اس کیو ال و پی اچ پی وجود دارند که کافیست بعد ز دانلود آنها را نصب یا در پوشه مورد نظر خود از حالت فشرده خارج کنید تا محیط لازم برای اجرای برنامه های PHP آماده کار باشد. اکثر این نوع پکیج ها در سیستم عامل های لینوکس هم قابل اجرا هستند، یکی از این پکیج ها xampp است که نصب و اجرای PHP/Apache/Mysql را بسیار بسیار ساده کرده است.
اما در بعضی موارد نیاز به نصب مستقیم LAMP به جای استفاده از این پکیج ها است. در محیط لینوکس بر خلاف ویندوز، نصب جداگانه Apache/PHP/Mysql تقریبا کار ساده ای است. برای نصب LAMP در لینوکس مینت ۱۷.۱ xfce می توانید دست.رات زیر را در ترمینال وارد کنید :
۱- نصب آپاچی
sudo apt-get install apache2
۲- نصب پی اچ پی و تنظیم آپاچی برای فایل های پی اچ پی
sudo apt-get install php5 libapache2-mod-php5
۳- ریستارت آپاچی
sudo /etc/init.d/apache2 restart
۴- نصب mysql
sudo apt-get install mysql-server
۵- کلمه عبور (اختیاری) : هرچند در اجرای مراحل نصب مای اس کیو ال، در مورد کلمه عبور برای کاربر روت، پرسیده می شود اما بعد از نصب نیز می توانید از دستورات زیر برای تغییر کلمه عبور استفاده کنید :
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
۶- نصب phpmyadmin
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
۷- تنظیم php برای استفاده از mysql
gksudo gedit /etc/php5/apache2/php.ini
و ویرایش یا اضافه کردن خط زیر به فایل تنظیمات ( ممکن است نیاز پیدا کنید تا این خط را ویرایش نکنید!)
extension=mysql.so
۸- راه اندازی مجدد
sudo /etc/init.d/apache2 restart
۹ - در صورت نمایش خطای 404 در localhost/phpmyadmin، ابتدا فایل زیر را باز کنید :
sudo gedit /etc/apache2/apache2.conf
و این خط را به انتهای فایل اضافه کنید :
Include /etc/phpmyadmin/apache.conf
۱۰ - در صورتی که برای کاربر روت دیتابیس هیچ کلمه عبوری تعریف نکرده باشید باید در فایل /etc/phpmyadmin/config.inc.php مقدار $cfg['Servers'][$i]['AllowNoPasswordRoot'] را برابر با true قرار دهید :
sudo gedit /etc/phpmyadmin/config.inc.php
ویرایش خط
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;
برای شروع یا ریستارت سرویس ها می توانید از این دستور هم استفاده کنید
sudo service mysql restart
بهترین فریموورک برای پی اچ پی
خوشبختانه php دارای فریموورک ها و سیستم های مدیریت رایگان و متن باز بسیاری هست که هر کدام امکانات و خصوصیات مختلفی دارند، البته شاید این تعدد زیاد گاهی باعث سردرگمی و انتخاب نادرست ابزار بشه، ابزار، cmsها، frameworkها و کلی کتابخانه رایگان دیگه که گاهی انتخاب نادرست ممکنه نتایج ناخوشایندی به دنبال داشته باشه...
یکی از اشتباههای من هم انتخاب نادرست یک ابزار بود. هر چند جوملا سیستم بسیار بسیار قوی برای ایجاد انواع مختلف وب سایت ها است و امکانات بسیار خوبی هم برای توسعه انواع افزونه ها ارایه می ده اما به هیچ وجه ابزار مناسبی برای توسعه نرم افزارهای تحت وب ( و نه وب سایت) نیست.
به طور کل برای ایجاد نرم افزار تحت وب با اندازه متوسط و بزرگ هیچ وقت به سراغ سیستم های مدیریت محتوا نروید. هرچند هر کدام از آنها ممکن است دارای فریموورک منحصر به فرد و سیستم مدیریت محتوای قوی باشند اما همه انها برای اینکه بهترین CMS باشند ساخته شده اند. البته بعضی از cmsهای کوچکتر هم وجود دارند که شاید امکانات خیلی کمتری داشته باشند اما در عین cms بود امکان توسعه مناسبی ارایه میدهند مثل pyrocms اما پیشنهاد اصلی : برای توسعه یک نرم افزار حقیقی! تحت وب از یک framework استفاده کنید.
خوشبختانه مثل cmsها، فریموورکهای بسیار زیادی برای php به صورت رایگان و اپن سورس وجود داره:
لاراول ، سیمفونی ، زندفریموورک، ییی۲ ، کداگنایتر و تعداد بسیار دیگری که هر کدام خصوصیات و نقاط ضعف و قوت خود را دارند. در فرصت محدودی که فراهم شد تعدادی از این سیستم ها رو بررسی کردم و باید بگم بهترین فریموورک برای شما همانی هست که بهتر و آسانتر می تونید چیزی رو که در نظر دارید پیاده سازی کنید.
هرچند برای من لاراول و یی۲ جذاب و خوشایند بودند اما کداگنایتر در عین سادگی و قابل فهم بودن، امکانات مناسبی رو برای توسعه سریع فراهم می کنه و اونقدر امن و پایدار و آسان هست که بتواند به عنوان بستر اصلی برای یک تیم چند نفره (به جای جوملا) انتخاب بشه. در صورتی که می خواهید فریموورکی برای توسعه نرم افزار وب انتخاب کنید پیشنهاد می کنم حتما کدایگناتر رو بررسی کنید به خصوص نسخه سه که بهبودهای زیادی رو نسبت به نسخه قبلی داره. البته یی۲ و لاراول هم گزینه های بعدی(یا قبلی!!) می تونند باشند.
به رسوا شدنش می ارزد ...
به خدا عشق، به رسوا شدنش میارزد / و به مجنون و به لیلا شدنش میارزد
دفتر قلب مرا وا کن و نامی بنویس / سند عشق ،به امضا شدنش میارزد
گرچه من تجربهای از نرسیدنهایم / کوشش رود به دریا شدنش میارزد
کیستم ؟... باز همان آتش سردی که هنوز / حتم دارد که به احیا شدنش میارزد
با دو دست تو فرو ریختنِ دم به دمم / به همان لحظهی بر پا شدنش میارزد
دل من در سبدی ، عشق ،به نیل تو سپرد / نگهش دار، به موسی شدنش میارزد
سالها گرچه که در پیله بماند غزلم / صبر این کرم به زیبا شدنش میارزد.
خط پیشانی من،قصه ی دردیست کهن / بنویسش به چلیپا شدنش می ارزد
مریما!! غم مخور از سرزنش دشمن و دوست / طفل جان تو به عیسی شدنش می ارزد.
«علی اصغر داوری»