Simple hierarchical select замена - Any -

Главные вкладки

Аватар пользователя Наденька Наденька 16 февраля 2016 в 23:04

Привет друзья, ковыряюсь с модулем Simple hierarchical select, создала двух-уровневый exposed filter в первом "области" во втором "города". Но вот незадача, через better expoused filters не получается заменит значение для всех - Any - он же - Любой -

В dev версии автор модуля добавил хуки для этой цели:

<?php
hook_shs_js_settings_alter
() 

//

hook_shs_FIELDNAME_js_settings_alter()
?>

Поясните пожалуйста глупой женщине как их правильно использовать? Городила кастомный модуль по подобию описанному в shs.api.php с подменой имени поля но у меня ничего не завелось:


<?php
function hook_shs_field_provence_js_settings_alter(&$settings_js$field_provence$vocabulary_identifier) {
   foreach (
$settings_js['shs'] as $field => &$container) {
     foreach (
$container as $identifier => &$settings) {
       
// Define labels for each level.
       
$settings['labels'] = array(
         
FALSE// No label for first level.
         
t('Country'),
         
t('City'),
       );
       
// Small speed-up for anmiations (defaults to 400ms).
       
$settings['display']['animationSpeed'] = 100;
     }
   }
 }
 
?>

Буду безгранично благодарна всем кто поможет вникнуть в суть использования хуков. И да, можно ли еще вместо модуля выполнить его как то в template.php?

Комментарии

Аватар пользователя lord_deimonik lord_deimonik 18 февраля 2016 в 11:25

Что тебе скажу) Друпал.орг в помощь по хуках, а кратко - что бы включить хук надо в своем модуле сделать:
Добавляем hook_node_load
function MODULENAME_node_load($node){
//Добавляем выход пхп, если хук будет срабатывать страница где он сработает будет пуста.
exit();
}
Суть замены слова hook на название своего модуля.

Аватар пользователя lord_deimonik lord_deimonik 18 февраля 2016 в 11:26

Наденька wrote:

Привет друзья, ковыряюсь с модулем Simple hierarchical select, создала двух-уровневый exposed filter в первом "области" во втором "города". Но вот незадача, через better expoused filters не получается заменит значение для всех - Any - он же - Любой -
В dev версии автор модуля добавил хуки для этой цели:

<span style="color: #000000"><span style="color: #0000BB">&lt;?php<br>hook_shs_js_settings_alter</span><span style="color: #007700">()&nbsp;<p></p>
<p><span style="color: #FF8000">//</span></p>
</span></span>

<span style="color: #0000BB">hook_shs_FIELDNAME_js_settings_alter</span><span style="color: #007700">()<br></span><span style="color: #0000BB">?&gt;</span>

Поясните пожалуйста глупой женщине как их правильно использовать? Городила кастомный модуль по подобию описанному в shs.api.php с подменой имени поля но у меня ничего не завелось:

<span style="color: #000000"><br><span style="color: #0000BB">&lt;?php<br></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">hook_shs_field_provence_js_settings_alter</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">$settings_js</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$field_provence</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$vocabulary_identifier</span><span style="color: #007700">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$settings_js</span><span style="color: #007700">[</span><span style="color: #DD0000">'shs'</span><span style="color: #007700">]&nbsp;as&nbsp;</span><span style="color: #0000BB">$field&nbsp;</span><span style="color: #007700">=&gt;&nbsp;&amp;</span><span style="color: #0000BB">$container</span><span style="color: #007700">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$container&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$identifier&nbsp;</span><span style="color: #007700">=&gt;&nbsp;&amp;</span><span style="color: #0000BB">$settings</span><span style="color: #007700">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Define&nbsp;labels&nbsp;for&nbsp;each&nbsp;level.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$settings</span><span style="color: #007700">[</span><span style="color: #DD0000">'labels'</span><span style="color: #007700">]&nbsp;=&nbsp;array(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">,&nbsp;</span><span style="color: #FF8000">//&nbsp;No&nbsp;label&nbsp;for&nbsp;first&nbsp;level.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Country'</span><span style="color: #007700">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'City'</span><span style="color: #007700">),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Small&nbsp;speed-up&nbsp;for&nbsp;anmiations&nbsp;(defaults&nbsp;to&nbsp;400ms).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$settings</span><span style="color: #007700">[</span><span style="color: #DD0000">'display'</span><span style="color: #007700">][</span><span style="color: #DD0000">'animationSpeed'</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">100</span><span style="color: #007700">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br></span><span style="color: #0000BB">?&gt;<br></span></span>

Буду безгранично благодарна всем кто поможет вникнуть в суть использования хуков. И да, можно ли еще вместо модуля выполнить его как то в template.php?


Некоторые хуки можно делать и в темплейт файле, точней - пробуй.