Версия для печати
|
| PrestaShop CMS :: Русская поддержка интернет-магазина PrestaShop > Дизайн, шаблоны > Вопрос по HOOK'ам ({$HOOK_TOP}) |
| Разместил: Virtuose Время: 15-11-2009 18:40 |
| Вопрос такой: в файле header.tpl есть один из хуков: {$HOOK_TOP} в который входят поиск, информация о пользователе, валюта и т.п. Что надо сделать, чтобы, допустим, поиск я мог вставить в любую созданную мною таблицу?
Где и что менять? P.S. Много работал с другими двигами, с этим сегодня впервый раз столкнулся |
| Разместил: Алекс Время: 16-11-2009 12:10 |
Цитата:( Virtuose @ 15-11-2009 19:40 Смотреть сообщение ) Вопрос такой: в файле header.tpl есть один из хуков: {$HOOK_TOP} в который входят поиск, информация о пользователе, валюта и т.п. Что надо сделать, чтобы, допустим, поиск я мог вставить в любую созданную мною таблицу?
Где и что менять? P.S. Много работал с другими двигами, с этим сегодня впервый раз столкнулся Что за таблица? в Престашоп менять позицию можно только по хукам их много но основные это:
Изменить позицию нужного модуля можно в Панель Управления >> Модули >> Позиции > Расположить модуль |
| Разместил: Virtuose Время: 16-11-2009 18:11 |
Цитата:( Алекс @ 16-11-2009 16:10 Смотреть сообщение ) Цитата:( Virtuose @ 15-11-2009 19:40 Смотреть сообщение ) Вопрос такой: в файле header.tpl есть один из хуков: {$HOOK_TOP} в который входят поиск, информация о пользователе, валюта и т.п. Что надо сделать, чтобы, допустим, поиск я мог вставить в любую созданную мною таблицу?
Что за таблица? в Престашоп менять позицию можно только по хукам их много но основные это:
Где и что менять? P.S. Много работал с другими двигами, с этим сегодня впервый раз столкнулся
Изменить позицию нужного модуля можно в Панель Управления >> Модули >> Позиции > Расположить модуль То, что между хуками менять расположение модулей можно, я уже понял. В процессе вёрстки дизайна возник резонный вопрос: необходимо создать свои хуки, чтобы можно было, допустим, воткнуть поиск в ЛЮБОЕ место сайта. Порылся в БД, создал собственный хук, инклудю его в необходимое место, припарковываю к нему необходимый модуль, а ни черта не получается. Покурил... нашёл в header.php строки подключения хуков: 'HOOK_HEADER' => Module::hookExec('header'), 'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn'), и т.д. ..естественно подобным же образом подключил свой, созданный ранее.. Обновил страницу.... нихрена не увидел желаемого результата. Скажите пожалуйста, кде что не так? |
| Разместил: Virtuose Время: 16-11-2009 19:10 |
| Всё, разобрался сам.
Надо было, как писал уважаемый Алекс в других постах, привязать модуль к отображению в своём хуке. Тему можно закрывать. |
| Разместил: Soronorus Время: 23-03-2010 17:13 |
| подскажи если не сложно, решил создать свой хук добавил его в таблицу ps_hook добавил описание в global.css добавил вызов header.php заправил через админку в этот хук корзину и 0 на массу. нечего не изменилось что ещё сделать нужно??? |
| Разместил: Virtuose Время: 24-03-2010 05:23 |
| Тот модуль, который ты переносишь, нужно обязательно удалить из старого хука - это раз.
И второе - в самом модуле в файле .php есть пару строк кода, которые привязывают его к определённым хукам, поэтому нужно ручками дописать свой хук. Сейчас на работе, под рукой нет двига, чтобы на пальцах показать. Позже отпишусь. |
| Разместил: Soronorus Время: 24-03-2010 16:57 |
| c переносом козины я разобрался чтобы она была в топе нужно всего навсего в в blockcart.php который в module добавить строчки function hookTop($params) { return $this->hookRightColumn($params); } и корзину мона запихивать в топ. правда пока не понял как сделать чтобы она была справа |
| Разместил: vgray Время: 01-04-2010 16:29 |
| Столкнулся с такой же проблемой. Сначала хотел делать свой хук, у престы система модулей написана так что в модуле должно быть прописано на какие хуки он может цепляться. Те пришлось бы не только код престы изменять, но и код модулей. Пошел другим путем. 1) добавляю в файл smarty.config.inc.php код function smartyDirectModuleCall($params, &$smarty) { $output = ''; $moduleInstance = Module::getInstanceByName($params['name']); if (!$moduleInstance) return $output; if ( is_callable(array($moduleInstance, 'hook'.$params['hook']))) $output .= call_user_func(array($moduleInstance, 'hook'.$params['hook'])); return $output; } $smarty->register_function('dmc', 'smartyDirectModuleCall'); 2) в нужном месте шаблона пишу {dmc name='blockuserinfo' hook='Top'} |
| Разместил: sanya160 Время: 29-05-2010 13:58 |
| Подскажите где находятся файлы самого Хука, что бы можно было править сам Хук, меня интересует непосредственно {HOOK TOP}, хочу поменять иконки, ссылки, и так далее.
Но на будущее можно и узнать где все остальные Хуки |
| Разместил: YellowDuck Время: 03-06-2010 03:13 |
| Подскажите, плиз., как скрыть модули из правого и левого хука? Например, когда покупатель оформляет заказ. |
| Разместил: Алекс Время: 03-06-2010 13:03 |
Цитата:( YellowDuck @ 03-06-2010 04:13 Смотреть сообщение ) Подскажите, плиз., как скрыть модули из правого и левого хука? Например, когда покупатель оформляет заказ.
1. Панель Управления >> Модули >> Позиции 2. Выбираем модуль > Редактировать 3. В Исключения добавляем order.php и тп. (смотрим по переходам) Можно через шаблоны, пример: Код: {if $page_name !== 'order'}здесь шаблон скрываемого блока{/if} |
| Разместил: YellowDuck Время: 03-06-2010 13:46 |
| Алекс, спасибо большое, как все просто оказывается, недоглядел в админке |
| Разместил: Dimension Время: 12-09-2010 17:34 |
Цитата:( vgray @ 01-04-2010 17:29 Смотреть сообщение ) Столкнулся с такой же проблемой. Сначала хотел делать свой хук, у престы система модулей написана так что в модуле должно быть прописано на какие хуки он может цепляться. Те пришлось бы не только код престы изменять, но и код модулей. Пошел другим путем.
1) добавляю в файл smarty.config.inc.php код function smartyDirectModuleCall($params, &$smarty) { $output = ''; $moduleInstance = Module::getInstanceByName($params['name']); if (!$moduleInstance) return $output; if ( is_callable(array($moduleInstance, 'hook'.$params['hook']))) $output .= call_user_func(array($moduleInstance, 'hook'.$params['hook'])); return $output; } $smarty->register_function('dmc', 'smartyDirectModuleCall'); 2) в нужном месте шаблона пишу {dmc name='blockuserinfo' hook='Top'} Не работает. Версия 0.9 (1.3.1) Пытался ради примера рекламный блок поставить в футер - не выходит. <div id="header_new">{dmc name='blockadvertising' hook='Footer'}</div> В настройках позиционирования модуля расположил тамже, шаблон header.tpl Подскажите что нужно в самом модуле прописывать? Пользовался этой инструкцией http://www.mirsaytov.net/cms/prestashop/sozdanie-novogo-xuka-hook-ili-poziciya-v-shablonax-prestashop.html Сообщение отредактировано Dimension 12-09-2010 18:35 ... |
| Разместил: Dimension Время: 12-09-2010 18:53 |
| Такого модуля случаем нет ни у кого?
http://www.catalogo-onlinersi.com.ar/templates-12/112-theme-and-template-editor.html |
| Разместил: Dimension Время: 12-09-2010 22:18 |
| Вот по этой инструкции ещё делал
http://ardianys.com/64_how-to-add-new-hook-prestashop-engine-modification-tutorial-series.html/comment-page-1#comment-480 С поправкой, огворенной там в коментариях Результат - белый экран вместо сайта (После добавления {$HOOK_CENTER} в header.tpl) В сам модуль вписал, всё по инструкции. Убил день, подскажите сколько ещё мучиться (( |
| Разместил: careres Время: 08-11-2010 15:31 |
| Кто поможет разместить Блокskype в heder |
| Разместил: derun Время: 04-03-2011 08:27 |
| Подскажите, как привязать модуль blockcurrencies к отображению в своём хуке?
например хук {$HOOK_FOOTRE} - это вставил в footer.tpl 'HOOK_FOOTRE' => Module::hookExec('footre'), - это вставил в footer.php |
| Разместил: solt Время: 04-03-2011 19:30 |
| В самом модуле находишь эти строчки и заменяешь на свой хук Код: if (!$this->registerHook('top')) / function hookTop($params) получаеться так Код: if (!$this->registerHook('footre')) / function hookfootre($params) Сообщение отредактировано solt 04-03-2011 20:36 ... |
| Разместил: solt Время: 04-03-2011 20:10 |
Цитата:( careres @ 08-11-2010 16:31 Смотреть сообщение ) Кто поможет разместить Блокskype в heder
Пропишите для модуля стиль в global.css и опубликуйте его. |
| Разместил: meccep Время: 19-03-2011 23:07 |
| подскажите. не получается всунуть модуль JBX_menu в свой HOOK
собственно алгоритм как делаю: 1) header.php добавляю строчку 'HOOK_JBX_MENU' => Module::hookExec('jbx'), 2) делаю инсерт в таблицу ps_hook INSERT INTO ps_hook (`name` ,`title` ,`description` ,`position`) VALUES ('jbx', 'jbx menu ', NULL , '1'); 3) в header.tpl вставляю в нужное место {$HOOK_JBX_MENU} 4) в jbx_menu.php( я так понимаю главный файл модуля) в функцию install добавляю !$this->registerHook('jbx') || 5) туда же добавляю такую функцию function hookJBX($params) { return $this->hookheader($params); } 6) в "Модули >> Позиции" удаляю модуль отовсюду и вставляю в блок jbx menu. все собственно после этого, я так понимаю, все должно нормально заработать. А нет не работает. подскажите что я делаю не так? да кстати: шаблон дефолтный и прикрепляю модуль |
| Разместил: rurox Время: 20-09-2011 18:32 |
| собсно sanya160 спрашивал:
"Подскажите где находятся файлы самого Хука, что бы можно было править сам Хук, меня интересует непосредственно {HOOK TOP}, хочу поменять иконки, ссылки, и так далее. Но на будущее можно и узнать где все остальные Хуки" Тот же вопрос. Цель: Надо убрать НАДПИСИ - контакты, карта сайта, обратная связь, Но оставить картинки Валюту разместить под корзину в хедере. для этого надо просто отредактировать хук - как это сделать? |
| Разместил: Anton Время: 20-09-2011 19:39 |
| Да это просто html обычный, при чем тут хук? |
| Разместил: rurox Время: 20-09-2011 20:30 |
| простой...
например есть div_header_right - так вон он находится в хуке. и мне нужно его откорректировать... |
| Разместил: Anton Время: 20-09-2011 20:42 |
| Не, вы ошибаетесь, это хук находится в div_header_right.
<div id="header_right"> {$HOOK_TOP} </div> |
| Разместил: rurox Время: 20-09-2011 20:46 |
| блин, ну что сложного в моих сообщениях?
может будет проще если посмотрите.... Для достижения этой цели. мне нужно в ручную зайти в хук, и откорректировать его. добавить валюту, добавить определенным образом текст. - все же врподе ясно спросил. Сообщение отредактировано rurox 20-09-2011 21:47 ... |
| Разместил: Anton Время: 20-09-2011 20:52 |
| Как это зайти в хук? Тут просто верстка нужна, да и все. За вас верстать я не буду. |
| Разместил: rurox Время: 20-09-2011 21:27 |
| КАК Я МОГУ СВЕРСТАТЬ HOOK_TOP если ктоме этой надписи НИЧЕГО НЕТ!!!
я привык к простому пониманию код модуля php в html формах, и в таком варианте можно верстать. как в joomle например. Я понимаю что можно свертать код который имеет вид <div> <div> <?php MODULE 1 - "ваш аккуант ?> </div> <div> <?php MODULE 2 - "корзина" ?> </div> <div> <?php MODULE 3 - "дВАЛЮТА" ?> </div> </div> это можно сверстать... а как сверстать ОДНУ ЗАПИСЬ!!!! HOOK_TOP |
| Разместил: Anton Время: 20-09-2011 21:33 |
Так никак! Вам нужно верстать те блоки, которые добавляются в этот хук, смотрите в modules/вашмодуль/вашмодуль.tpl |
| Разместил: Zoom Время: 25-10-2011 17:52 |
| Подскажите, пожалуйста, где нужно редактировать код, чтобы сделать модуль постоянных ссылок (карта сайта, контакты, в закладки) и модуль пользователя (Учетная запись, корзина) ГОРИЗОНТАЛЬНО НА ОДНОМ УРОВНЕ.
Пробывал менять позиции в админке они, просто меняются местами, но все равно один под другим. А в modules/вашмодуль/вашмодуль.tpl можно редактировать сам отдельновзятый модуль, но где редактируется их взаимное расположение?
В header.tpl эти оба модуля выводятся одной строкой {$HOOK_TOP} ![]() |
| Разместил: e_v_medvedev Время: 25-10-2011 21:51 |
| Для начала - хук это не файл. Это группировочный признак для модулей. В Престе есть механизм, который позволяет объединить модули в группу и запустить на исполнение всю группу получив в результате строку, содержащую HTML код результата исполнения всех модулей этой группы, который и подставляется в шаблон смарти указанным образом. В принципе подобный механизм с некоторыми вариациями используется практически во всех развитых CMS. |
| Разместил: Zoom Время: 25-10-2011 23:01 |
| e_v_medvedev, спасибо за ответ!
Оказалось все очень просто, эти 2 модуля входят в блок #header_right в global.css, и просто нужно было увеичить его ширину до 100%, и они расположились по горизонтали на одном уровне, под логотипом. |