Задать вопрос
  • Как в magento (в adminhtml) на странице модуля добавить блок?

    @Dante_FX
    Нужен или нет - вы сейчас решите сами)
    Примечания:
    1) Magento 1.7.2.0.
    2) Способ, как говориться, "для себя" - в коммерческий модуль я бы его допиливал.
    3) Вы знакомы с маджентой. Если что-то не понятно - уточняйте.

    Поехали:
    1) Если не было до этого в модуле лаяута для админки - подключите его в config.xml
    2) Добавляем в лаяут:
    <adminhtml_sales_order_view>        
            <reference name="order_tab_info">
                <block type="dante_test/adminhtml_test" name="dante_test_test" template="dante/test/test.phtml" />            
            </reference>       
        </adminhtml_sales_order_view>


    Так вы добавляете в лаяут блоку, отвечающему за вывод содержимого табы "Information", свой дочерний блок.
    Наш дочерний блок находится app/code/{local/community}/Dante/Test/Block/Adminhtml/Test.php
    class Dante_Test_Block_Adminhtml_Test extends Mage_Adminhtml_Block_Template {}

    с шаблоном \app\design\adminhtml\default\default\template\dante\test\test.phtml

    Этот блок теперь необходимо вывести.

    Способ 1)
    Для этого либо делаем реврайт класса Mage_Adminhtml_Block_Sales_Order_View_Tab_Info в конфиге.
    Теперь у нас есть класс:

    class Dante_Test_Block_Adminhtml_Sales_Order_View_Tab_Info  extends Mage_Adminhtml_Block_Sales_Order_View_Tab_Info {
        public function getTestHtml()
        {
            return $this->getChildHtml('dante_test_test');
        }
        
        protected function _toHtml()
        {
            return parent::_toHtml() . $this->getTestHtml();
        }
    }


    где

    $this->getChildHtml('test')

    Выводит содержимое шаблона модуля
    dante/test/test.phtml

    Таким образом блок Ваш добавится в самый низ. Чтобы засунуть его в середину - или используйте js, или
    переназначайте блоку Dante_Test_Block_Adminhtml_Sales_Order_View_Tab_Info свой phtml шаблон, куда скопируйте оригинальный маджентовский (\app\design\adminhtml\default\default\template\sales\order\view\tab\info.phtml) и внесите в него необходимые правки.

    Способ 2 заключается в том, что Вы не делаете реврайт класса Mage_Adminhtml_Block_Sales_Order_View_Tab_Info, а копируете его из core в local директорию (с сохранением путей) и изменяете как хотите. Оригинальный файл из core директории остается не измененным и не будет теперь использоваться.

    P.S. Если Вас по каким-то причинам не устраивает реврайт (это может быть из-за конфликта с реврайтами сторонних модулей) или перенос в директорию local (что может вызвать проблему после обновления мадженты - хотя, похоже, что это теперь маловероятный сценарий), Вы можете выполнить задачу через использование обзервера.
    Ответ написан
    Комментировать
  • Компиляция sass?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Уберите подпись под именем front-end'er. Она не соответствует правде, вы ведь задали вопрос который любой фронтенд разработчик знает.

    Посмотрите что используется gulp, grunt, webpack, codekit etc...
    В корне проект должен быть файл.
    Найдете нужный файл конфига, поймете что использовать.
    Посмотреть, есть ли папка .idea, возможно компиляция была настроена при помощи IDE

    Так же можно посмотреть конфиг magento, возможно используется билдер в нем.
    Ответ написан
    5 комментариев
  • PHP. В чём магия?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что при удалении атрибута происходит перенумерация остальных. Пусть есть три атрибута, их номера будут 0, 1 и 2.
    Шаг 1. 
      $i = 0. 
      Удаляем атрибут 0.
      Атрибуты 1 и 2 получают номера 0 и 1.
    Шаг 2.
      $i = 1.
      Удаляем атрибут 1.
      Остался атрибут 0.

    Ну а PHP здесь совсем не виноват.
    foreach ($this->allowableTags as $tag) {
      foreach ($doc->getElementsByTagName($tag) as $element) {
        $attributes = $element->attributes;
        while ($attributes->length > 0) {
          $attr = $attributes->item(0);
          $this->clearElement($element, $attr);
        }
      }
    }
    Ответ написан
    Комментировать
  • Magento. Как задать общий заголовок для сайта?

    @sunrails
    Тут три варианта:
    1. Сделай сам.
      Заголовок можно получить у блока:
      app/code/core/Mage/Page/Block/Html/Head.php (метод getTitle())
      На странице товара, при построении лейаута, блок
      app/code/core/Mage/Catalog/Block/Product/View.php
      проставляет значение заголовка, полученное из модели товара, блоку head (метод _prepareLayout()).
    2. Поискать готовое решение: https://www.magentocommerce.com/magento-connect/ca...

    3. Найти похожий модуль и допилить.
    Ответ написан
    Комментировать