Magento на русском

Новости, обмен опытом, база знаний для разработчиков.

Создание нового модуля с нуля.

by @ 11:04 on 05.02.2009. Tags: ,
Filed under Новый модуль

Начать всегда сложно, но если использовать тулзу для содания шаблона модуля, то очень просто.

Найти её можно здесь

Установили, потренировались, и вперед…

Лучше не указывайте 3-й параметр, тогда все ваши файлы будут генериться в корневой дирректории в папке new.

Когда вы сгенерили модуль так как вам надо просто скопируйте все файлы в app, туда где установлена Magento.

Проверьте, если всё сделаль правильно, то в админке появится пункт меню с названием вашего модуля.

Теперь у вас есть табличка в базе, секция в админке, всё сортируется, фильтруется, добавляется и редактируется…

Но как заставить модуль работать с табличками, ему не принадлежащими?

простой пример:

Давайте покажем ордеры из таблички sales_order

В файле Grid.php, отвечающем за вывод, сделаем так…

protected function _prepareCollection()
{
$collection = Mage::getModel(’{mymodule}/{mymodyle}’)->getCollection()->getOrderCollection();
$this->setCollection($collection);
return parent::_prepareCollection();
}

А в файле Collection.php так…

public function getOrderCollection()
{
$collection = Mage::getResourceModel(’sales/order_collection’)
->addAttributeToSelect(’*')
->joinAttribute(’billing_firstname’, ‘order_address/firstname’, ‘billing_address_id’, null, ‘left’)
->joinAttribute(’billing_lastname’, ‘order_address/lastname’, ‘billing_address_id’, null, ‘left’)
->joinAttribute(’shipping_firstname’, ‘order_address/firstname’, ’shipping_address_id’, null, ‘left’)
->joinAttribute(’shipping_lastname’, ‘order_address/lastname’, ’shipping_address_id’, null, ‘left’)
->addExpressionAttributeToSelect(’billing_name’,
‘CONCAT({{billing_firstname}}, » «, {{billing_lastname}})’,
array(’billing_firstname’, ‘billing_lastname’))
->addExpressionAttributeToSelect(’shipping_name’,
‘CONCAT({{shipping_firstname}}, » «, {{shipping_lastname}})’,
array(’shipping_firstname’, ’shipping_lastname’));
return $collection;
}

Еще в grid.php подредактируйте поля таблички для отображения и т.п.

Похожие Magento-статьи:

  1. Наворачиваем свой модуль. Вывод коллекции данных в грид.
  2. Подключение своего модуля к Magento
  3. Проблемы при написании модуля
  4. Shiping method своими руками – часть 2. Наследование.
  5. Простой пример кода начинающим разработчикам
  6. Программное создание ордера (заказа)
  7. Создание Shipping Method Module – часть 1, заглушка
  8. Баг не баг, но вроде и не фича – добавление нуля товаров
  9. Вышел в свет еще один мой бесплатный модуль Echeck

The URI to TrackBack this entry is: http://magento.verych.ru/2009/02/%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8f-%d1%81-%d0%bd%d1%83%d0%bb%d1%8f/trackback/

Комментариев - 8 для “Создание нового модуля с нуля.”

  1. VEDARIY:

    Думаю для особо одарённых вроде меня можно было бы указать ещё путь к Collection.php(не с первого раза нашёл ;) )
    \Model\Mysql4\\Collection.php

  2. VEDARIY:

    чорт – убралось название модуля между \\

  3. VEDARIY:

    А вообще Спасибо за материал! Просто и быстро.

  4. TJan:

    Приветствую всех!
    Нужна помощь, требуется специалист, который сможет создать модуль, позволяющий отдельным продавцам выкладывать и управлять своими товарами в одном едином каталоге. Пишите на мыло или в аську 2пять3пять46347

  5. Лучьше запости это на форуме, здесь фиг кто это увидит

  6. certain:

    Можете выложить инструмент где-то поближе? А то по ссылке ругается по поводу 404 :)

  7. certain:

    Или оно уже не актуально?

  8. AmdY:

    попробуйте вебморду для создание модулей http://www.magentomadeeasy.com/magento-module-creator

Оставить комментарий

© 2009-2012 Magento по-русски 99% авторских статей