Основы Opencart. Можно ли написать собственный контроллер для использования в представлении или мне нужно использовать модули?

Я работаю над темой для Opencart и обнаружил, что мне нужен доступ к переменным, отличным от предоставляемых контроллерами по умолчанию.

Например, в представлении «Категория» я хотел бы получить доступ к полному изображению продукта, а не к миниатюре, которую контроллер предоставляет по умолчанию.

Исходя из Wordpress, я привык просто вызывать функцию для получения другого размера изображения, но я предполагаю, что в MVC эта функция должна быть в контроллере.

Однако я не вижу возможности написать собственный контроллер, а редактирование оригинала означает огромные проблемы при обновлении.

Как очень простой фундаментальный вопрос, является ли единственным решением написать модуль? Является ли это правильной практикой при разработке темы для opencart? Почему-то я не нашел очень четкого четкого объяснения того, как я должен работать с темами opencart (а-ля кодекс WordPress).


person waffl    schedule 01.04.2012    source источник
comment
Еще одно хорошее место, чтобы посмотреть OPENCART ROOT > SYSTEM LIBRARY > , а затем выбрать пример файла, customer.php, вы можете увидеть все эхо и объявления, а также то, как вызывать многие переменные в среде Opencart и вокруг нее.   -  person TheBlackBenzKid    schedule 22.05.2012


Ответы (1)


Это вообще не нужно делать в контроллере, представление может получить доступ к такому же количеству информации, как и контроллер. Вам просто нужно использовать это в цикле продукта

$prod = $this->model_catalog_product->getProduct($product['product_id']);
$full_image = empty($prod['image']) ? 'no_image.jpg' : $prod['image'];

Однако обратите внимание, что вы должны изменить размер изображения оттуда, используя метод изменения размера модели инструмента / изображения, до размеров, которые вы хотите для согласованности.

person Jay Gilford    schedule 01.04.2012
comment
Ах, отлично! Большое спасибо! В итоге я работал над пользовательским модулем, который делает то, что мне нужно, и в процессе я понял немного больше, и это решение, которое вы мне предоставили, работает отлично. Просто из любопытства использование этого кода в «представлении» технически является нарушением соглашения MVC, не так ли? - person waffl; 01.04.2012
comment
Это так, но есть и худшие вещи, которые вы могли бы сделать, и конечная цель — заставить его работать так, как вы этого хотите. Вместо этого вы могли бы использовать vQmod для добавления исходного изображения в массив продуктов, что не сломало бы MVC, а затем использовать его вместо этого. - person Jay Gilford; 01.04.2012
comment
Хорошо, просто проверяю — я все еще новичок в MVC, поэтому пытаюсь убедиться, что мои предположения верны. Также я изучаю vQmod, но это определенно самостоятельная задача! Большое спасибо. - person waffl; 01.04.2012
comment
vqmod на самом деле очень прост. По сути, это система поиска и замены с несколькими дополнительными функциями для большей точности. - person Jay Gilford; 01.04.2012