Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
Самые продвинутые админы знают, что в Админке / Опции есть пункт "Доп. пункты меню", где можно добавить свои ссылки в главное меню. Всё прекрасно, но при смене языка эти пункты не меняются.
Я предлагаю такое решение (действительно для версии 1.4.5):
Предположим мы добавили пункт с текстом "Pages".
1. Файлы локализации:
В lang/English/common.php добавляем строку 'Nav Pages' => 'Pages',
В lang/Russian/common.php добавляем строку 'Nav Pages' => 'Страницы',
Обратите внимание, я добавил префикс 'Nav ' чтобы избежать случайных совпадений с существующими переводами.
2. Используем локализацию, если есть:
В header.php находим подстроку o_additional_navlinks - это место откуда берутся доп. пункты. Весь блок if где эта подстрока заменяем на такой:
// Are there any additional navlinks we should insert into the array before imploding it?
if ($pun_user['g_read_board'] == '1' && $pun_config['o_additional_navlinks'] != '')
{
if (preg_match_all('#([0-9]+)\s*=\s*(<.*>)(.*?)(</.*>)\n#s', $pun_config['o_additional_navlinks']."\n", $extra_links))
{
// Insert any additional links into the $links array (at the correct index)
$num_links = count($extra_links[1]);
for ($i = 0; $i < $num_links; ++$i) {
$text = $extra_links[3][$i];
if (isset($lang_common['Nav ' . $text])) {
$text = $lang_common['Nav ' . $text];
}
array_splice($links, $extra_links[1][$i], 0, array('<li id="navextra'.($i + 1).'">'.$extra_links[2][$i].$text.$extra_links[4][$i].'</li>'));
}
}
}
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Offline
Страницы 1