[РЕШЕНО]Ошибка Warning: array_pop() [function.array-pop]

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

Аватар пользователя iShvedkov iShvedkov 12 февраля 2012 в 20:22

Ошибка, иногда всплывает:
Warning: array_pop() [function.array-pop]: The argument should be an array в функции theme551_preprocess_html() (строка 72 в файле public_html/sites/all/themes/theme551/template.php).

Вот эта строчка №72

array_pop($body_classes); // Remove 'section-node'

Как можно избавиться от нее?

ВложениеРазмер
Файл template.rar2.37 КБ
Иконка простого текстового файла template.txt6.34 КБ

Комментарии

Аватар пользователя iShvedkov iShvedkov 12 февраля 2012 в 20:39

"Shok211" wrote:
array_pop((array) $body_classes);

Заменил в строчке №72
 array_pop($body_classes);
на
 array_pop((array) $body_classes);

Теперь всплывает ошибка:
«Fatal error: Only variables can be passed by reference in /public_html/sites/all/themes/theme551/template.php on line 72»

Аватар пользователя iShvedkov iShvedkov 12 февраля 2012 в 21:02

Shok211, спасибо за помощь
Теперь, иногда, всплывает другая ошибка

«Warning: array_pop() [function.array-pop]: The argument should be an array в функции theme551_preprocess_html() (строка 80 в файле public_html/sites/all/themes/theme551/template.php).»

И, чаще, вот эта:
«Notice: Undefined variable: body_classes в функции theme551_preprocess_html() (строка 72 в файле /public_html/sites/all/themes/theme551/template.php).»

Почему эти ошибки, то есть, то нету?

Аватар пользователя iShvedkov iShvedkov 12 февраля 2012 в 22:24

За что вообще отвечают эти строчки? Может удалить эту функцию или у меня вообще ничего не будет работать?

Аватар пользователя iShvedkov iShvedkov 16 февраля 2012 в 18:13

На сайтах рекомендуют написать в index.php или в .htaccess
php_value error_reporting "E_ALL & ~E_NOTICE" или error_reporting(E_ALL ^ E_NOTICE);

Но ни то, ни другое не помогает

Аватар пользователя Bios Bios 26 июня 2012 в 14:19

Bios wrote:
K0r5hun wrote:
Можно попробовать ещё так:

$body_classes = (array) $body_classes;
array_pop($body_classes);


Спасибо вроде помогло

Сообщение перестало вываливаться на какое то время... потом опять появилось...

Подскажите как еще можно решить проблему???

Аватар пользователя Bios Bios 26 июня 2012 в 14:31

Жирным выделена проблемная строка
ps сорри тег code в редакторе на д.ру перестал работать

function theme551_preprocess_html(&$vars) {
if (module_exists('rdf')) {
$vars['doctype'] = '' . "\n";
$vars['rdf']->version = 'version="HTML+RDFa 1.1"';
$vars['rdf']->namespaces = $vars['rdf_namespaces'];
$vars['rdf']->profile = ' profile="' . $vars['grddl_profile'] . '"';
} else {
$vars['doctype'] = '' . "\n";
$vars['rdf']->version = '';
$vars['rdf']->namespaces = '';
$vars['rdf']->profile = '';
}
$vars['classes_array'][] = 'body';

/* Since menu is rendered in preprocess_page we need to detect it here to add body classes */
$has_main_menu = theme_get_setting('toggle_main_menu');
$has_secondary_menu = theme_get_setting('toggle_secondary_menu');

// Adding classes whether #navigation is here or not
if ($has_main_menu or $has_secondary_menu) {
$vars['classes_array'][] = 'with-navigation';
}

if ($has_secondary_menu) {
$vars['classes_array'][] = 'with-subnav';
}

/* Add extra classes to body for advanced theming */

if ($vars['is_admin']) {
$vars['classes_array'][] = 'admin';
}

if (!$vars['is_front']) {
// Add unique classes for each page and website section
$path = drupal_get_path_alias($_GET['q']);
list($section, ) = explode('/', $path, 2);
$vars['classes_array'][] = theme551_id_safe('page-'. $path);
$vars['classes_array'][] = theme551_id_safe('section-'. $section);
//$vars['template_files'][] = "page-section-" . $section;

if (arg(0) == 'node') {
if (arg(1) == 'add') {
if ($section == 'node') {
array_pop($body_classes); // Remove 'section-node'
}
$body_classes[] = 'section-node-add'; // Add 'section-node-add'
}
elseif (is_numeric(arg(1)) && (arg(2) == 'edit' || arg(2) == 'delete')) {
if ($section == 'node') {

$body_classes = (array) $body_classes;
array_pop($body_classes);

//array_pop($body_classes); // Remove 'section-node'
}
$body_classes[] = 'section-node-'. arg(2); // Add 'section-node-edit' or 'section-node-delete'
}
}
}

# krumo($vars);
}