Вы не зашли.
Страницы 1
Ребята, помогите изменить генерацию alt_name к новости. На данный момент двиг при создании новости генерирует урл вида - http://yoursite.com/section/name_of_news.html, то есть в качестве разделителя применяется нижнее подчеркивание, мне же надо сделать урлы вида - http://yoursite.com/section/name-of-news.html, чтобы в качестве разделителя был дефис. Подскажите, как, что и где изменять.
Изменено oktano (2008-12-03 10:45:26)
Обзор модулей IPB v2.3.
Русская локализация форума FluxBB.
Не в сети
Меняем генерацию alt_name при добавлении новости (engine/addnews.php) :
строку 51:
$alt_name = preg_replace(array('/\./', '/(_{2,20})/', '/^(_+)/', '/(_+)$/'), array('_', '_'), $alt_name);
меняеем на:
$alt_name = preg_replace(array('/\./', '/(_{2,20})/', '/^(_+)/', '/(_+)$/'), array('-', '-'), $alt_name);
По уже созданным новостям alt_name надо менять ручками.
Не в сети
Виталик, ты немного ошибся. Я вот на 2z форуме посмотрел, правильное решение огласил kt2k:
Находим:
// Make alt_name equal to '_' if it appear to be blank after conversion
if ($alt_name == '') $alt_name = '_';
$i = '';
while ( is_array($mysql->record("select id from ".prefix."_news where alt_name = ".db_squote($alt_name.$i)." limit 1")) ) {
$i++;
}
$SQL['alt_name'] = $alt_name.$i;
Заменяем на:
// Make alt_name equal to '_' if it appear to be blank after conversion
if ($alt_name == '') $alt_name = '_';
$alt_name = str_replace('_','-',$alt_name);
$i = '';
while ( is_array($mysql->record("select id from ".prefix."_news where alt_name = ".db_squote($alt_name.$i)." limit 1")) ) {
$i++;
}
$SQL['alt_name'] = $alt_name.$i;
Обзор модулей IPB v2.3.
Русская локализация форума FluxBB.
Не в сети
oktano, частично согласен
Мой вариант действительно не работал, т.к. он решал только часть задачи основная замена пробелов на подчерки происходит в другом месте.
Твой вариант будет адекватно работать.
Не в сети
А как сделать подобное, только для категорий, чтобы при добавлении категории вида: Категория один alt получалось kategoria-odin?
"Под шумок" можно и для статики подсказать, если не затруднит.
Не в сети
После 257стр:
// Generate uniq alt_name if no alt_name specified
$alt_name = strtolower( $parse->translit(trim($title), 1) );
Вставь:
// Make a conversion:
// * '.' to '_'
// * '__' to '_' (several to one)
// * Delete leading/finishing '_'
$alt_name = preg_replace(array('/\./', '/(_{2,20})/', '/^(_+)/', '/(_+)$/'), array('_', '_'), $alt_name);
// Make alt_name equal to '_' if it appear to be blank after conversion
if ($alt_name == '') $alt_name = '_';
$alt_name = str_replace('_','-',$alt_name);
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Пока никак...:(
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Страницы 1