Название: Интернет-магазин Magento Отправлено: Ray от 11 Июнь 2009, 07:25:51 Magento — интернет-магазин с открытым исходным кодом, распространяющееся в соответствии с Open Software License (OSL 3.0).Эта штука сделана с использованием Zend Framework, но только еще нехило навернута.
Wiki (http://ru.wikipedia.org/wiki/Magento) В двух словах: Тяжелая, достаточно сложная и туповатая система(для разработчиков) с оООООчень хреновой документацией и не без глюков. Скажем так, эээ... статей по ней достаточно много(на офф. сайте), но в них достаточно сложно разобраться,и, к тому же, во многих статьях просто непонятно, что, как и откуда берется. В общем надо долго и вдумчиво курить статьи и код самой Мадженты, чтобы понять многие вещи. Ну.. и без медитаций конечно никак :) Почему я с ней работаю? Да потому что работа такая )) И приходится работать и разбираться с разными проектами и технологиями, ну и конечно же писать "под них". Написал я что-то вроде небольшого обзора по перегрузке контроллера. Может кому-то пригодится/поможет. Перегрузка контроллера пригодится любому программеру, которому надо добавить какую-либо свою фичу в Magento, либо просто расширить функционал системы без вмешательства в ее исходники. Покажу на простом примере способ, которым я добился поставленной задачи. Я перегружал Mage_Checkout_OnepageController, но, я думаю, не составит труда перегрузить какой-либо другой контроллер аналогичным способом. В классе OnepageController.php есть метод saveBillingAction(), который надо немного изменить. Алгоритм действий следующий: 1)Делаем свой контроллер 2)Правим конфиг нашего модуля, который лежит в /app/code/local/NameSpace/OurModule/etc/config.xml 3)Правим layout. Итак, приступим. Из обозначений, NameSpace - пространство имен/название вашей компании, ну и OurModule - имя вашего модуля. В общем, смотрим на перегружаемый контроллер. А вот,собственно,и он app/code/core/Mage/Checkout/controllers/OnepageController.php Идем в каталог своего модуля,т.е. в /app/code/local/NameSpace/OurModule/ Видим в нем каталог controllers, заходим в него и создаем каталог с таким именем, какое имеет контроллер перегружаемого нами модуля, т.е.создаем каталог Checkout. Заходим в него и создаем наш собственный контроллер, имя которого идентично имени перегружаемого контроллера,т.е. создаем файл OnepageController.php. Теперь напишем класс нашего контроллера, который будет производным от наследуемого нами Mage_Checkout_OnepageController. В общем, здесь все просто. Цитировать <?php // Подключаем класс родителя. require_once 'Mage/Checkout/controllers/OnepageController.php'; // Наследуем его своим классом class NameSpace_OurModule_Checkout_OnepageController extends Mage_Checkout_OnepageController { // Обеспечиваем вызов конструктора базового класса public function _construct() { parent::_construct(); } // Перегружаем наш метод saveBillingAction() public function saveBillingAction() { // Сначала вызываем этот метод из базового класса parent::saveBillingAction(); // А теперь здесь добавляем нужный нам функционал Mage::log('Hello from overloaded Controller!'); } } ?> Теперь подкорректируем конфиг нашего модуля. Идем в /app/code/local/NameSpace/OurModule/etc/config.xml Между нодами <global>..</global> добавляем ноды <rewrite>..</rewrite>. А уже между ними помещаем то, что нам надо.Выглядит это вот так: Цитировать <global> ... <rewrite> <!-- Здесь,в общем,после узла <rewrite> идет узел со следующим названием: <пространство имен_имя модуля_имя перегружаемого модуля_имя контроллера(без слова Controller)_имя метода экшена(без слова Action)> --> <namespace_ourmodule_checkout_onepage_savebilling> <from><![CDATA[#^/checkout/onepage/saveBilling/$#]]></from> <to>/ourmodule/checkout_onepage/saveBilling/</to> </namespace_ourmodule_checkout_onepage_savebilling> </rewrite> ... </global> Отредактировав, заглянем еще в layout. Идем в /app/design/frontend/default/default/layout/ourmodule.xml, причем, default/default - это темы оформления, возможно у вас они могут быть другими. Ниже привожу листинг этого ourmodule.xml: Цитировать <?xml version="1.0"?> <layout version="0.1.0"> <checkout_onepage_index> <reference name="checkout.onepage"> <action method="unsetChild"> <name>billing</name> </action> <block type="ourmodule/ourmodule" name="billing" template="ourmodule/ourmodule.phtml" /> </reference> </checkout_onepage_index> </layout> В этом конфиге указано, что и каким шаблоном будет подменятьтя. Здесь, ourmodule.phtml лежит в /app/design/frontend/default/default/template/ourmodule/ourmodule.phtml Активируется модуль,если кто забыл, в /app/etc/modules/NameSpace_All.xml. Вот,собственно, и все, контроллер перегружен. Как-то вот так. Контроллер перегружался на версии Magento 1.3.1 Дополнительно можете почитать статью Wiki, How to overload a controller, которую можно найти на оф. сайте magentocommerce (http://www.magentocommerce.com) Название: Лайв-видео и стриминг-решения Отправлено: vicfrommogilev от 14 Октябрь 2010, 20:32:00 Любые лайв-видео и стриминг-решения: видео-чаты, в том числе 1-на-1, вебкам-чаты, с поминутной оплатой, видео-конференции, чаты и модули лайв-видео общения для социальных сетей, вебинары, php-streaming, VLC, red5, wowza, adobe FMIS. Умеренные цены, решения под ключ, свой хостинг, дата-центры в США, Германии и Великобритании, гарантийное и послегарантийное обслуживание.
Большой выбор готовых лайв-видео модулей и более подробная информация на сайте www.web-studio.name (http://www.web-studio.name) Можно писать напрямую мне в асю 346-297-550 или скайп vicfrommogilev. |