У меня есть сайт opencart, и я пытаюсь настроить параметры обмена Facebook для своих продуктов.
Поскольку все загружается как отдельный модуль, я не могу установить метатеги facebook следующим образом (header.tpl
):
<meta property="og:description" content="<?php echo $description; ?>" />
Поскольку $description
не существует, пока загружается модуль header
. Он создается в контроллере модуля product
. Поэтому я попытался динамически изменить значение содержимого (product.tpl
):
$("meta[property='og:description']").attr('content','<?php echo $description; ?>');
И это сработало, я вижу, что значение изменилось (в исходном коде страницы), затем я отладил моя страница, но я не смог получить значение. Думаю, я знаю причину, я должен установить значение перед загрузкой страницы, но я не уверен, как я могу это сделать. У вас есть идеи?
controller::render()
и думаю, что вы могли бы преуспеть в передаче$this->data
изrender()
в вызовgetChild()
- таким образом, с небольшими усилиями все данные из основного содержимого могут быть разделены между дочерними элементами i> (верхний и нижний колонтитулы, столбцы, ...). Затем вы сможете просто использовать эти переменные из основного контента, например. в вашем заголовке, чтобы проверить, присутствуют ли они, и если да, то визуализируйте метатеги FB... Это должно потребовать меньше усилий при программировании, но может привести к ненужному и нежелательному увеличению потребления памяти (возможно, лишь немного). - person shadyyx   schedule 05.08.2014