[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Invalid argument supplied for foreach()...eval()'d
Страницы: 1, 2
gryffon
Ковыряю сейчас самописную CMS, у нее ужасная панель администрирования, пока искал, как добавить созданную страницу в левое меню с помощью этой панели умудрился словить ошибку, на каждой странице где заголовок подтягивается с БД ошибка:
Warning: Invalid argument supplied for foreach() in /home/xx-xxx.ru/docs/lib/kernel.lib.php(160) : eval()'d code on line 64

Вот код этого самого ядра (жирным выделил 64 и 160 строки). Почему он на каждой странице генерит эту ошибку? В базе вроде ко все страницам title прописан.

if(empty($elems[0])) {
$folder = '/';
$document = 'index';
} else {
$folder = (count($elems)<2) ? $elems[0] : $elems[1];
$document = (empty($elems[2])) ? 'index' : $elems[2];
}
return array(path_fix($folder), $document);
}

function path_split($path) {
return array_filter(explode('/', $path));
}

function path_fix($path) {
return '/'.implode('/', path_split($path));
}

function path_get($fpath, $dname) {
global $dl;
$sql = 'SELECT dl_document.*, dl_folder.*, dl_document.id as doc_id, dl_tpl.value as tpl_code, dl_tpl.name as tpl_name FROM dl_folder
INNER JOIN dl_document ON dl_folder.id=dl_document.folder_id AND dl_document.name="'.db_escape($dname).'" INNER JOIN dl_tpl ON
dl_folder.tpl=dl_tpl.id WHERE dl_folder.path="'.db_escape($fpath).'"';
if(!$res=db_get($sql)) return false;
$o['folder']['path'] = $res['path']; $o['folder']['id'] = $res['id'];
$o['folder']['parent_id'] = $res['parent_id']; $o['folder']['level'] = $res['level'];
$o['folder']['type'] = $res['type']; $o['folder']['tpl'] = $res['tpl'];
$o['folder']['tpl_code'] = $res['tpl_code']; $o['folder']['title'] = $res['title'];
$o['document']['name'] = $res['name']; $o['folder']['tpl_name'] = $res['tpl_name'];
$o['document']['id'] = $res['doc_id']; $o['document']['hidden'] = $res['hidden'];
$o['document']['dt'] = $res['dt']; $o['document']['folder_id'] = $res['folder_id'];
# ^ looks stupid. he-he...


if ($o['document']['hidden'] == '1' && !user_valid())
return false;
else
return $o;

# return $o;
}

function path_cur_url() {
global $dl;
$folder_path = ($dl['cur']['folder']['path']=='/') ? '' : $dl['cur']['folder']['path'];
return $dl['conf']['url']['root'].$folder_path.'/'.$dl['cur']['document']['name'].'.'.$dl['conf']['url']['ex t'];
}

function path_root() {
global $dl;
return $dl['conf']['url']['root'];
}

/*
* Library lib
*/

function lib_load($name) {
global $dl;
if(file_exists($lib_file=$dl['conf']['path']['lib'].$name.'.lib.php')) {
require_once($lib_file);
$dl['lib'][$name] = array();
} else trigger_error('Library "'.$name.'" not found', E_USER_ERROR);
}

function lib_load_all($pref='') {
global $dl;
$libs = glob($dl['conf']['path']['lib'].$pref.'*.lib.php');
foreach($libs as $file) {
$name = basename($file, '.lib.php');
if(!strpos(str_replace($pref,'',$name), '_') && $name!=$pref.'kernel') lib_load($name);
}
}

/*
* Hook setter lib
*/

function hook_set($callb_pref, $args='') {
global $dl;
$libs = array_keys($dl['lib']);
$hooks = array();
foreach($libs as $name) {
if(function_exists($f='hook_'.$callb_pref.'_'.$name))
$hooks[] = call_user_func($f, $args);
}
return $hooks;
}

/*
* Template lib
*/

function tpl_parse($tpl_code, $tpl_name, $do_pp=1) {
global $dl;
ob_start();
eval(' ?>'.$tpl_code.'<?php ');
$parsed = ob_get_clean();

if($do_pp) $parsed = tpl_postparse($parsed);
//$dl['res']['tpl'][$tpl_name] = $parsed;
return $parsed;
}

function tpl_postparse($ob) {
global $dl;
$libs = array_keys($dl['
lib']);
foreach($libs as $name)
if(function_exists($f='
hook_tpl_postparse_'.$name)) $ob = call_user_func($f, $ob);
return $ob;
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.