PDA

View Full Version : ошибка после установки темы


S0uRce
12.05.2009, 12:34
Помогите, кто может. Пытаюсь освоить PHP-nuke. Скачал установил русскую сборку на Denwer. Так же удалось разместить и запустить на бесплатном хостинге.
Проблема вот в чем. Ставлю тему (отличную от RusNuke2003) внизу вместо подвала выдает:
Fatal error: Call to undefined function get_author() in Z:\home\nuke01.ru\www\themes\3D-Fantasy\theme.php on line 151
Если другую тему ставлю ошибка в другой строке, но код там тот же:

149: }
150: $posted = ""._POSTEDBY." ";
151: $posted .= get_author($aid);
152: $posted .= " "._ON." $time $timezone ($counter "._READS.")";
153: $tmpl_file = "themes/3D-Fantasy/story_home.html";
154: $thefile = implode("", file($tmpl_file));
155: $thefile = addslashes($thefile);
156: $thefile = "\$r_file=\"".$thefile."\";";
157: eval($thefile);
158: print $r_file;
159: }

Что такое $posted .= get_author($aid);
и как это победить?

Soniks
13.05.2009, 13:19
S0uRce версия phpnuke какая?
Что такое $posted .= get_author($aid);
и как это победить?
функция получает имя автора новости. можно закомментировать эту строку.

S0uRce
14.05.2009, 22:19
S0uRce версия phpnuke какая?

функция получает имя автора новости. можно закомментировать эту строку.

Версия нюки 8.1
Спасибо за подсказку, работает. А где все таки надо прописать имя автора, чтобы оно корректно отображалось? Нашел в какой sql базе эта тестовая новость содержится, автора какого-нибудь по умолчанию не смог добавить.

Soniks
15.05.2009, 13:36
у вас по идее в файле mainfile.php должна быть функция:
function get_author($aid) {
global $prefix, $db;
static $users;
if (isset($users[$aid]) AND is_array($users[$aid])) {
$row = $users[$aid];
} else {
$sql = "SELECT url, email FROM ".$prefix."_authors WHERE aid='$aid'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$users[$aid] = $row;
$db->sql_freeresult($result);
}
$aidurl = filter($row['url'], "nohtml");
$aidmail = filter($row['email'], "nohtml");
if (isset($aidurl) && $aidurl != "http://") {
$aid = "<a href=\"".$aidurl."\">$aid</a>";
} elseif (isset($aidmail)) {
$aid = "<a href=\"mailto:".$aidmail."\">$aid</a>";
} else {
$aid = $aid;
}
return $aid;
}
которая как раз за это и отвечает, у вас по видимому ее нет, или она по другому названа.

S0uRce
15.05.2009, 16:54
Хм... Действительно в файле mainfile.php нет этой функции.
Что касается автора, то было только вот это:

function formatAidHeader($aid) {
global $anonymous;
$AidHeader = get_author($aid);
if ($aid!=$anonymous) {
$AidHeader="<a href=\"modules.php?name=Your_Account&amp;op=userinfo&amp;username=".$aid."\">".$aid."</a>";
}
else {
$AidHeader=$aid;
}
echo $AidHeader;
}

Огромное спасибо, теперь все нормально.