Вообщем нашел вроде работающее решение, но у меня оно не работает ((
После добавления строк -
<?phpfunction MYTHEME_preprocess_page(&$variables, $hook) {
global $user;
/* Login box */
if($user->uid) { // Внешний вид для вошедших пользователей
// Приветствие пользователя
$login_box = t('Добрый день, !username!', array('!username' => theme('username', array('account' => $user))));
// Вставляем ссылки на профиль и выход
$login_box .= l(t('Profilis'), 'user', array('attributes' => array(
'id' => 'user-profile',
'class' => array('user-link'),
)));
$login_box .= l(t('Atsijungti'), 'user/logout', array('attributes' => array(
'id' => 'user-exit',
'class' => array('user-link'),
)));
$variables['page']['login_box']['#markup'] = '<div class="logged">'.$login_box.'</div>';
} else { // Выводим блок для пользователей которые не вошли в систему
$variables['page']['login_box'] = drupal_get_form('user_login_block');
}?>
выдает Parse error: syntax error, unexpected $end in /public_html/sites/all/themes/.../template.php on line 261 Не могу понять как это решить, вроде все правильно вставил!
Комментарии
В сообщении ошибки разве не ясно ?
Добавьте }
Скачайте себе какой-нибудь продвинутый редактор .
Не помогло, извиняюсь, забыл написать при добавлении в конце «}» выдает другую ошибку - fatal error: cannot redeclare ...
redeclare что ?
У вас уже до этого имеется функция MYTHEME_preprocess_page ?
Fatal error: Cannot redeclare garland_preprocess_page() Ну да, это я уже понял, а как решить эту проблему?
Содержимое изнутри функции что вы написали перенесите внутрь функции , которая уже существует .
Содержимое - это то , что находится после фигурной скобки за именем функции .
Смысл в том чтобы не было одинаковых имен функций .
Только что попробовал сделать, еще же нужно перенести переменные в начале функции, правильно, в итоге получилось так -
<?phpfunction garland_preprocess_page(&$vars, &$variables, $hook) {
// Move secondary tabs into a separate variable.
$vars['tabs2'] = array(
'#theme' => 'menu_local_tasks',
'#secondary' => $vars['tabs']['#secondary'],
);
unset($vars['tabs']['#secondary']);
if (isset($vars['main_menu'])) {
$vars['primary_nav'] = theme('links__system_main_menu', array(
'links' => $vars['main_menu'],
'attributes' => array(
'class' => array('links', 'inline', 'main-menu'),
),
'heading' => array(
'text' => t('Main menu'),
'level' => 'h2',
'class' => array('element-invisible'),
)
));
}
else {
$vars['primary_nav'] = FALSE;
}
if (isset($vars['secondary_menu'])) {
$vars['secondary_nav'] = theme('links__system_secondary_menu', array(
'links' => $vars['secondary_menu'],
'attributes' => array(
'class' => array('links', 'inline', 'secondary-menu'),
),
'heading' => array(
'text' => t('Secondary menu'),
'level' => 'h2',
'class' => array('element-invisible'),
)
));
}
else {
$vars['secondary_nav'] = FALSE;
}
// Prepare header.
$site_fields = array();
if (!empty($vars['site_name'])) {
$site_fields[] = $vars['site_name'];
}
if (!empty($vars['site_slogan'])) {
$site_fields[] = $vars['site_slogan'];
}
$vars['site_title'] = implode(' ', $site_fields);
if (!empty($site_fields)) {
$site_fields[0] = '<span>' . $site_fields[0] . '</span>';
}
$vars['site_html'] = implode(' ', $site_fields);
// Set a variable for the site name title and logo alt attributes text.
$slogan_text = $vars['site_slogan'];
$site_name_text = $vars['site_name'];
$vars['site_name_and_slogan'] = $site_name_text . ' ' . $slogan_text;
global $user;
/* Login box */
if($user->uid) { // Внешний вид для вошедших пользователей
// Приветствие пользователя
$login_box = t('Добрый день, !username!', array('!username' => theme('username', array('account' => $user))));
// Вставляем ссылки на профиль и выход
$login_box .= l(t('Profilis'), 'user', array('attributes' => array(
'id' => 'user-profile',
'class' => array('user-link'),
)));
$login_box .= l(t('Atsijungti'), 'user/logout', array('attributes' => array(
'id' => 'user-exit',
'class' => array('user-link'),
)));
$variables['page']['login_box']['#markup'] = '<div class="logged">'.$login_box.'</div>';
} else { // Выводим блок для пользователей которые не вошли в систему
$variables['page']['login_box'] = drupal_get_form('user_login_block');
}
}?>
Ругаться стал на строку -
<?php$variables['page']['login_box']['#markup'] = '<div class="logged">'.$login_box.'</div>';?>
Все равно ругается - Fatal error: Cannot use string offset as an array inЯ так понимаю вы это по инструкции начали делать .
Дайте ссылку .
http://gamover.net/blog/delaem-formu-vhoda-v-shapke-sayta7x.html
А вообще уже по всякому пробовал, не получается объединить эти функции, пробовал убрать уже запущенную функцию, оставить только нужный мне вариант, все работает, НО ругается в админке на отсутствие в template.php упоминаний о примари меню и секондари меню, а также о названии, слогане сайта.
Прикрепите к сообщению текущие файлы page.tpl.php и template.php
Если готовые по описанию, то прикрепил, а если нетронутые то это обычные файлы темы Garland.
Все, вроде заработало, просто когда я пытался объединить функции, делал это так - function garland_preprocess_page(&$vars, &$variables, $hook), т.е. пытался объединить еще и вводимые переменные, потом сделал так - garland_preprocess_page(&$vars, $hook) и соответственно в теле функции поменял все $variables на $vars, и все заработало.
HydroBlast, огромное спасибо за разбор полета. Пошел учить PHP и API Drupal ))
Очень рад )
В заголовок [решено]