Как совместить в template.php два препроцесса страницы

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

Аватар пользователя volandnet volandnet 8 апреля 2012 в 23:01

Как совместить в template.php два препроцесса, вместе никак не работают:

function MYTHEME_preprocess_page(&$vars) {
  global $user;
  if (!$user->uid && arg(0) != 'user') {
    drupal_add_library('system', 'ui.dialog');
    drupal_add_library('system', 'effects.explode');
    drupal_add_library('system', 'effects.slide');
    $vars['login_button'] = l(t('Login'), 'user', array('attributes' => array('class' => array('user-login'))));
  }
if (isset($vars['node'])) {
$vars['theme_hook_suggestions'][] = 'page__type__'. $vars['node']->type;
$vars['theme_hook_suggestions'][] = "page__node__" . $vars['node']->nid;
}
  if (!empty($variables['page']['#views_contextual_links_info']['views_ui']['view_display_id'])) {
    $variables['theme_hook_suggestions'][] = 'page__views__' . $variables['page']['#views_contextual_links_info']['views_ui']['view_display_id'];
  }
    // Page шаблон на основе предложений от URL псевдоним
  $alias=drupal_get_path_alias($_GET['q']);
  $args=explode('/', $alias);
  if ($args[0]=='premium') {
    $vars['theme_hook_suggestions'][] = 'page__premium';
  }

  // any other page preprocessing here
}

как не пробовал либо то, либо другое не работает.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 8 апреля 2012 в 23:07

Наверно надо использовать одну функцию а содержимое второй вставить в первую, так как 2 их быть не может в template.php, если же нужно разделить их по времени после того как отработаю все _preprocess можно воспользоваться функцией _process которая выполняется позже.

Аватар пользователя boneg boneg 8 апреля 2012 в 23:07

Решается с помощью Ctrl+C и Ctrl+V

<?php
function ИМЯТЕМЫ_preprocess_page(&$vars) {
  global 
$user;
  if (!
$user->uid) {
    
drupal_add_library('system''ui.dialog');
    
$vars['login_button'] = l(t('Login'), 'user', array('attributes' => array('class' => array('user-login'))));
  }
if (isset(
$vars['node'])) {
$vars['theme_hook_suggestions'][] = 'page__type__'$vars['node']->type;
$vars['theme_hook_suggestions'][] = "page__node__" $vars['node']->nid;
}
}
?>
Аватар пользователя volandnet volandnet 23 июля 2014 в 18:01

Так пробовал, должно идти, но не идет:
function ИМЯТЕМЫ_preprocess_page(&$vars) {
global $user;
if (!$user->uid) {
drupal_add_library('system', 'ui.dialog');
$vars['login_button'] = l(t('Login'), 'user', array('attributes' => array('class' => array('user-login'))));
}
if (isset($vars['node'])) {
$vars['theme_hook_suggestions'][] = 'page__type__'. $vars['node']->type;
$vars['theme_hook_suggestions'][] = "page__node__" . $vars['node']->nid;
}
}
Parse error: syntax error, unexpected
есть другие предложения?

Аватар пользователя boneg boneg 8 апреля 2012 в 23:47

"volandnet" wrote:
Parse error: syntax error, unexpected '<' in E:\wamp\www\neo\sites\all\themes\neo\template.php on line 95
есть другие предложения?

Да. На вопрос что такое syntax error легко ответит гугл.

Аватар пользователя volandnet volandnet 23 июля 2014 в 17:57
function ИМЯТЕМЫ_preprocess_page(&$vars) {
  global $user;
  // Подключаем библиотеку только для анонимов
  if (!$user->uid) {
    drupal_add_library('system', 'ui.dialog');
    // Добавляем ссылку, при нажатии на которую будет показываться логин
    $vars['login_button'] = l(t('Login'), 'user', array('attributes' => array('class' => array('user-login'))));
  }
}
Аватар пользователя volandnet volandnet 23 июля 2014 в 17:58

Что-то я сегодня туплю.
Действительно все работает. Еще раз огромное спасибо, проверю все и поставлю решено!