1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

URL русских названий

Discussion in 'Прочая Поддержка - Help Requests' started by Azazel80, Feb 5, 2012.

  1. Azazel80 Thread starter Novice member


    Offline
    Message Count:
    7
    Likes Received:
    0
    My version of SE:
    4.2.0
    При создании тем на форуме, видео, записей в блоге и прочее с русскими названиями, в адресной строке вместо названия темы просто стоит прочерк. Например, http://site.com/blogs/2/2/-
    Как исправить эту проблему? Чтобы вместо прочерка в урле было название темы транслитом.
    Заранее благодарен за помощь.
    Версия SE 4.2.0
  2. Azazel80 Thread starter Novice member


    Offline
    Message Count:
    7
    Likes Received:
    0
    My version of SE:
    4.2.0
    Неужели никто не сталкивался с подобной проблемой? Многие используют русскую локализацию. Разве так сложно поделиться лекарством для урлов? :(
  3. serega_r User


    Offline
    Message Count:
    92
    Likes Received:
    12
    My version of SE:
    4.2.6
    сталкиваюсь... решить не знаю как, но большой проблемы не вижу, кроме как корректного отображения урла.
    Индексация проходит успешно с полным отображением кириллического тайтла.
  4. expread Novice member


    Offline
    Message Count:
    10
    Likes Received:
    0
    My version of SE:
    4.2.0
    My version of phpFox:
    2.1.0
    My version of Oxwall:
    1.2.1
    даже проблема :( ... начал использовать транслит... но если человек говорит что индексация проходит нормально.. нужно попробивать...
  5. Azazel80 Thread starter Novice member


    Offline
    Message Count:
    7
    Likes Received:
    0
    My version of SE:
    4.2.0
    Один парень писал в теме как создать урлы для видео. Скинул свой сайт для примера, и действительно у него там нормальные урлы русских названий. Вот что он предлагает:
    В общем в файле:
    application/modules/Video/settings/manifest.php

    Находим:
    PHP:

    'video_view' => array(
    'route' => 'videos/:user_id/:video_id/:slug/*',
    'defaults' => array(
    'module' => 'video',
    'controller' => 'index',
    'action' => 'view',
    'slug' => '',
    ),

    И меняем на:
    PHP:

    'video_view' => array(
    'route' => 'hip-hop-videos/:username/:slug/:video_id/*',
    'defaults' => array(
    'module' => 'video',
    'controller' => 'index',
    'action' => 'view',
    'slug' => '',
    ),

    Тут я писал 'hip-hop-videos...' можете заменить на что угодно. просто у меня Хип-Хоп портал(Можете посмотреть в действии) по этому так круче.

    Потом в файле:
    application/modules/Video/Model/Video.php

    Есть функция getHref() её удаляем и вместо вставляем вот этот код:

    PHP:

    public function slugify($text)
    {
    $text = strtr($text, array(
    "Є"=>"YE","І"=>"I", "Ї"=>"YI", "Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye","ѓ"=>"g",
    "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
    "Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
    "З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
    "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
    "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
    "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
    "Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
    "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
    "е"=>"e","ё"=>"yo","ж"=>"zh",
    "з"=>"z","и"=>"i", "ї"=>"yi", "й"=>"j","к"=>"k","л"=>"l",
    "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
    "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
    "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
    "ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"
    ));

    // replace all non letters or digits by -
    $text = preg_replace('/\W+/', '-', $text);

    // trim and lowercase
    $text = strtolower(trim($text, '-'));

    if (empty($text))
    {
    return 'n-a';
    }


    return $text;
    }

    public function getHref($params = array())
    {
    $slug = $this->slugify($this->getTitle());

    $params = array_merge(array(
    'route' => 'video_view',
    'reset' => true,
    'username' => $this->slugify(Engine_Api::_()->getItem('user', $this->owner_id)->getTitle()),
    'video_id' => $this->video_id,
    'slug' => $slug,
    ), $params);

    $route = $params['route'];
    $reset = $params['reset'];
    unset($params['route']);
    unset($params['reset']);
    return Zend_Controller_Front::getInstance()->getRouter()
    ->assemble($params, $route, $reset);
    }

    Вот такой вариант это с юзер неймом полным.

    А еще можно сделать вообще без юзера:
    в этой строке 'hip-hop-videos/:username/:slug/:video_id/*',
    делаем :
    'hip-hop-videos/:slug/:video_id/*'

    а в следующем файле удаляем полностью строку:
    'username' => $this->slugify(Engine_Api::_()->getItem('user', $this->owner_id)->getTitle()),

    И еще один хак сделан :)
    --- добавлено: Mar 4, 2012 9:29 AM ---
    Я не разбираюсь в php, поэтому мне сложно понять что он предлагает. Может кто-нибудь из более сведущих сделает необходимые манипуляции и скинет уже отредактированные файлы?
  6. serega_r User


    Offline
    Message Count:
    92
    Likes Received:
    12
    My version of SE:
    4.2.6
    Посмотрел пример, впечатляет. Надо пробовать - разбираться.
    Azazel80, спасибо.
  7. Azazel80 Thread starter Novice member


    Offline
    Message Count:
    7
    Likes Received:
    0
    My version of SE:
    4.2.0
    Возможно, вместе у нас получится решить эту проблему. Если разберетесь: напишете о результате?

Share This Page

All rights reserved SocEngine.ru ©