изменение страницы нижнего колонтитула на drupal 7 - PullRequest
0 голосов
/ 10 октября 2011

В Drupal 6 у моего модуля была следующая функция, которая вставляла JavaScript в нижний колонтитул страницы, но в Drupal 7 все изменилось.Как я могу сделать следующий код в drupal 7?

function myfunc_footer()
 {
    if(variable_get('myvar',1) && !drupal_match_path(drupal_get_path_alias($_GET['q']),  
          'admin/*'))
    {
         if ($somevar = variable_get('somevar',''))
             {
        return '<script src="'.$somevar.'" type="text/javascript"></script>';
         }
         else
             {
        drupal_set_message(t('something is wrong.'));
         }
    }
}

Заранее спасибо

1 Ответ

1 голос
/ 10 октября 2011

Ничто в вашем коде не изменилось с Drupal 6 на 7 ... все функции действительны, и если это сработало для Drupal 6, нет никаких причин, по которым оно не сработало бы для Drupal 7.

НадеюсьВы не понимаете, почему вы используете drupal_match_path для псевдонима пути, однако вы должны использовать его для router path, а не для URL-адреса:

if(variable_get('myvar',1) && !drupal_match_path($_GET['q'], 'admin/*')) {

Попробуйте это иПосмотрите, решит ли это вашу проблему, если не могли бы вы немного рассказать о том, какую ошибку вы получаете?

РЕДАКТИРОВАТЬ

Спасибо за обновление, ваш второй комментарий ниже почти верен, вы простонеобходимо указать для массива рендеринга ключ:

function myfunc_page_alter(&$page) { 
  $page['page_bottom']['my_extra_element'] = array(
    '#markup' => '<div><h3> testingthisout</h3> </div>', 
    '#weight' => 25
  ); 
} 

Вам не нужно указывать '#type' => 'markup', так как markup является значением по умолчанию.

Затем убедитесь, что ваш модуль (тот,называется myfunc) однозначно установлен, и очистите кеш.У вас не должно быть проблем оттуда

...