مهاجرت شدید از مجنتو ۱ به مجنتو ۲


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

اون تغییرایی که من دیدم اینا بون ...

۱ − استفاده از انگولار جی اس (که گاها خیلی هم رو اعصابه)

۲− پیاده کردن کامپوزر(هنوز سراغ این بخش نرفتم)

۳− دیتابس تقریبا همون دیتابیس سابقه (ساختار جدولها فرقی نکرده)

۴−استفاده که نیم اسپیس ها (که توی مجنتو ۱ با اندرلاین(ـ) اونها رو پیاده کرده بودن و به اندازه لازم رو اعصاب بود)

۵− اضافه شدن کانتکس contex (کانتکس رو فضای کاری فرض کنین ولی فک کنم هنوز شعور php  به درک کانتکس نرسیده و بازم دولوپرها دارن چند قدم جلوتر از زبان برنامه نویسی حرکت می کنن )

۶-نیاز شدید به پی اچ پی ۷.۰۲ (که خیلی رو اعصابه ... منکه هر دو مجنتو رو باید دولوپ کنم باید دائم بین ۵٫۶ و ۷٫۰۲ سویچ کنم)

۷−اضافه شدن یه شل واسه کامپایل و اپگرید ماژول ها

نکته : یک روز کامل رو درگیر این مسئله بودم ... وقتی توی کانستراکتر(__constracter()) اگه درست نوشته باشم...یه کلاسی رو لود می کنید بعدش حتما باید کامپایل کنید با این دستور  php bin/magento setup:di"compile ... منکه کل روز رو درگیر این بودم که بفهمم چرا سیستم یهو از کار می افته و دیگه جواب نمیده

 

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

راستی اگه مثل من از پی اچ پی ستورم استفاده می کنید یه اپدیتی بزنید بد نیست ...الان میشه چندتا پروژه رو کنار هم کار کرد ... قبلا واسه  سویچ بین پروژه ها باید یه بار دیگه پروژه رو رن می کردیم

۱۳۴۸/۱۰/۱۱ || in category : مجنتو

فعال کردن دیباگ برای ادمین در مجنتو


INSERT INTO `core_config_data` (`scope`, `scope_id`, `path`, `value`)
       VALUES ('websites', '0', 'dev/debug/template_hints', '1');

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

برای غیر فعال کردن هم مقدار رو برابر 0 بزارید

 

۱۳۴۸/۱۰/۱۱ || in category : مجنتو

استفاده از بلوک استاتیک در فایل phtml


یه بخشی که خیلی توی طراحی قالب های مجنتو کاربرد داره فراخوانی یک بلاک ایستا (یا استاتیک) در قالبه و معمولا هم بیشتر هوم پیج رو بلاک های ایستا تشکیل میدن ....

با این کد میشه یه بلاک ایستا رو داخل فایل های phtml فراخونی کرد

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml(); 
?> 

 

۱۳۴۸/۱۰/۱۱ || in category : مجنتو

ادرس های در مجنتو


بخش مهمی از هر فریم ورک ادرس هاست که سایت رو بهم ربط میده و باعث فراخوانی کنترلر ها و اکشن ها میشه

در بخش cms و استاتیک بلاک ها به شکل زیر ادرس دهی میشه

ادرس اصلی
    {{base url=''}}

ادرس شاپ
    {{store url='test.html'}}

ادرس مطلق شاپ
    {{store url=""}}

ادرس مدیاها
    only get media URL

    {{media url=''}}

اگه بخوای ادرس مدیا با یه فایل خاص رو بدست بیاریم
    {{media url='imagefolder/imagename.jpg'}}

ادرس پوسته

    {skin url='images/imagename.jpg'}}

ادرس مطلق پوسته
    {skin url=''}}

 

بخش دوم ادرس دهی , ادرس دهی داخل فایل ها phtml  میباشد که به این صورت است

$baseurl = Mage::getBaseUrl();

دریافت ادرس اصلی بدون ایندکس

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 

// output: http://example.com/

ادرس جاری

$currentUrl = Mage::helper('core/url')->getCurrentUrl();

یا

$currentUrl = Mage::getUrl('*/*/*', array('_current' => true));

یا

if (!in_array(Mage::app()->getFrontController()->getAction()->getFullActionName(), array('cms_index_noRoute', 'cms_index_defaultNoRoute'))) 
{
    $currentUrl = Mage::helper('core/url')->getCurrentUrl();
}

ادرس پوسته

$skinUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);

ادرس غیر امن برای پوسته

$skinUrl = $this->getSkinUrl('images/imagename.jpg');

ادرس امن برای پوسته

$this->getSkinUrl('images/imagename.gif', array('_secure'=>true));

ادرس مدیا

$mediaUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);

یا

$mediaUrl = Mage::getBaseUrl('media');

ادرس فایل های حاوا اسکریپت

$jsUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);

یا

$jsUrl = Mage::getBaseUrl('js');

ادرس شاپ

$storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);

ادرس صفحه اصلی

$homeUrl= Mage::helper('core/url')->getHomeUrl();

دریافت ادرس دایرکتوری ها :

Mage::getBaseDir('design') // Get design directory path
Mage::getBaseDir('code')   // Gives code directory file path
Mage::getBaseDir('lib')    // Gives lib directory file path
Mage::getBaseDir('skin')   // Gives skin directory file path
Mage::getBaseDir('var')    // Gives var directory file path
Mage::getBaseDir('cache')  // Gives cache directory file path
Mage::getBaseDir('log')    // Gives log directory file path

ایجاد ادرس بر اساس ماژول

Mage::getUrl('module/controller/action');

 

۱۳۴۸/۱۰/۱۱ || in category : مجنتو

ایجاد فایل لاگ در مجنتو


Mage::log('My log entry');
Mage::log('My log message: '.$myVariable);
Mage::log($myArray);
Mage::log($myObject);
Mage::logException($e);

 

لاگها برای نمایش خروجی استفاده میشن و با استفاده از شی mage  میشه به تابع لاگ دسترسی پیدا کرد . لاگ ها به صورت پیش فرض در مسیر var/log/system.log  ذخیره میشن ولی اگه بخوایین یه اسم خاص واسشون بزارین از کد زیر استفاده می شه

Mage::log('My log entry', null, 'mylogfile.log');

 

۱۳۴۸/۱۰/۱۱ || in category : مجنتو

ست کردن زمان برای کران جاب در مجنتو


برای این کار باید توی فایل config.xml  کد رو به این صورت قرار داد

<crontab>
    <jobs>
        <send_customer_emails>
            <schedule>
                <cron_expr>0 0 */7 * *</cron_expr>
            </schedule>
            <run>
                <model>emailmodel/observer::sendEmails</model>
            </run>
        </send_customer_emails>
    </jobs>
</crontab>
<schedule>
     <cron_expr>0 0 * * 6</cron_expr>
</schedule>

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

۱۳۴۸/۱۰/۱۱ || in category : مجنتو