Помощь Вопрос по alt_name и ЧПУ

Тема в разделе "DLE", создана пользователем Silver_Web, 23 июн 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Silver_Web

    Silver_Web Постоялец

    Регистр.:
    2 дек 2008
    Сообщения:
    50
    Симпатии:
    50
    Проблема следующая:
    В базах для ДЛЕ в новостях обычно прописаны alt_name вида "Osobo opasen! / CHuzhoe lico (2009) SATRip"
    Залив БД у новостей получаются УРЛы вида "9-Osobo%20opasen!%20/%20CHuzhoe%20lico%20(2009)%20SATRip%20.html"
    Если в админке зайти в редактирование этой новости и ничего не меняя нажать сохранить, то УРЛ меняется на "9-osobo-opasen-chuzhoe-lico-2009-satrip.html" и alt_name соответственно.
    Вопрос: каким образом можно сделать массовое изменение alt_name и УРЛа на более приемливый вид?
    Спасибо!
     
  2. raven4eg

    raven4eg Бесяцая птича

    Регистр.:
    14 дек 2007
    Сообщения:
    151
    Симпатии:
    19
  3. Silver_Web

    Silver_Web Постоялец

    Регистр.:
    2 дек 2008
    Сообщения:
    50
    Симпатии:
    50
    Я более подробно расписал проблему...
    Движек реагирует очень просто. При ЧПУ тип 2, новость без alt_name имеет вид id-.html. При тех же несложных манипуляциях (нажать редактировать-сохранить) с новостью все становится ок. alt берется из тайтла.
     
  4. Atec

    Atec

    Регистр.:
    28 апр 2007
    Сообщения:
    296
    Симпатии:
    31
    1. Тупо глянуть какой запрос возникает при "редактировать-сохранить"
    2. Детсадвопрос, юзай автозамену по дампу и будет тебе счастье т.е. в нормальном редакторе заменить %20 на "пробел" и все...
     
  5. Silver_Web

    Silver_Web Постоялец

    Регистр.:
    2 дек 2008
    Сообщения:
    50
    Симпатии:
    50
    Невнимательно вы прочли первый пост. В дампе не %20, а именно пробел. %20-это пробел в понимании dle, при формировании ЧПУ УРЛа.
    В идеале в дампе нужны "-" в alt_name. Но не буду же я все пробелы в дампе менять на черточки...:)
     
  6. Zhserik

    Zhserik Создатель

    Регистр.:
    30 апр 2009
    Сообщения:
    15
    Симпатии:
    3
    вот скрипт на пхп:

    <?php


    set_time_limit( 0 );
    @ini_set ('memory_limit', "512M");
    define ( "DATALIFEENGINE", true );
    define ( "ROOT_DIR", dirname ( __FILE__ ));
    define ( "ENGINE_DIR", ROOT_DIR . "/engine/" );

    require_once ROOT_DIR . '/engine/classes/mysql.php';
    require_once ROOT_DIR . '/engine/data/config.php';
    require_once ROOT_DIR . '/engine/data/dbconfig.php';
    require_once ROOT_DIR . '/engine/inc/functions.inc.php';

    $sql_result = $db->query ( "SELECT * FROM " . PREFIX . "_post ORDER BY date DESC LIMIT 100000" );

    $num = '0';
    while ( $row = $db->get_row ( $sql_result ))
    {
    $alt_name = totranslit( $row['title'], true, false );
    $metatags = create_metatags( $row['short_story'] . $row['full_story'] );

    $db->query ( "UPDATE " . PREFIX . "_post SET alt_name = '{$alt_name}', keywords='{$metatags['keywords']}', descr='{$metatags['description']}' WHERE id = '{$row['id']}'" );
    $num = $num + '1' . "||";
    echo $num;
    }
    die ('done');
    $db->free();

    ?>

    Скрипт обновляет ключевые теги и делает транслит из title в alt_name
     
    dark666 и Silver_Web нравится это.
  7. Silver_Web

    Silver_Web Постоялец

    Регистр.:
    2 дек 2008
    Сообщения:
    50
    Симпатии:
    50
    Супер! Все работает. Спасибо огромное!
     
Статус темы:
Закрыта.