Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2011-12-31 03:09:14

easmik
VIP забанил этого пользователя.
Зарегистрирован: 2011-02-01
Сообщений: 1,030
Рейтинг :   37 

Заголовок на разных языках для мультиязычных сайтов

Сначала нам надо внести изменения из SVN http://trac.assembla.com/ngcms/changeset/900

Теперь открываем functions.inc.php

находим там:

$tvars = array ( 'vars' => array( 'pagination' => '', 'title' => $row['title']));

перед ней вставляем:

if (preg_match_all('/\[iflang\:(.+?)\](.+?)\[\/iflang\]/is', $row['title'], $parr)) {
   foreach ($parr[0] as $k => $v) {
    $row['title'] = str_replace($v,($config['default_lang'] == $parr[1][$k])? $parr[2][$k]:'', $row['title']);
   }
  }

теперь конструкция

[iflang:russian] Описание [/iflang]
[iflang:english] Description [/iflang]  будет работать и для заголовков.


P.S.Если Вы планируете со временем расширение языков, то можно сделать так.

[iflang:russian] Заголовок / [/iflang] Header

Выглядеть это будет так:
В русской версии - Заголовок / Header
В английской  версии - Header
Это нужно для того, чтоб при добавлении других языков, старые (уже опубликованные) новости отображали хоть какой то заголовок (если переделать все не представляется возможным)

Изменено easmik (2011-12-31 03:09:29)

Не в сети

#2 2011-12-31 10:01:56

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: Заголовок на разных языках для мультиязычных сайтов

easmik, плюсую (хотя у тебя и рейтинга нету),  думаю ещё можно попросить ROZARD'а добавить эту возможность в simple title pro )

Всех с наступающим)

Изменено Knopik (2011-12-31 10:02:42)

Не в сети

#3 2011-12-31 11:45:01

easmik
VIP забанил этого пользователя.
Зарегистрирован: 2011-02-01
Сообщений: 1,030
Рейтинг :   37 

Re: Заголовок на разных языках для мультиязычных сайтов

Knopik, спасибо smile

Не в сети

#4 2012-01-09 17:50:24

easmik
VIP забанил этого пользователя.
Зарегистрирован: 2011-02-01
Сообщений: 1,030
Рейтинг :   37 

Re: Заголовок на разных языках для мультиязычных сайтов

Вычищаем конструкцию iflang из заголовка
Находим

$template['vars']['titles'] = join(" : ", array_values($SYSTEM_FLAGS['info']['title']));

Заменяем на

$titles = join(" : ", array_values($SYSTEM_FLAGS['info']['title']));

if (preg_match_all('/\[iflang\:(.+?)\](.+?)\[\/iflang\]/is', $titles, $parr)) {
 foreach ($parr[0] as $k => $v) {
  $titles = str_replace($v,($config['default_lang'] == $parr[1][$k])? $parr[2][$k]:'', $titles);
 }
}

$template['vars']['titles'] = $titles;

говорим спасибо ROZARD и вуаля работает smile

Не в сети

#5 2012-01-09 18:20:00

easmik
VIP забанил этого пользователя.
Зарегистрирован: 2011-02-01
Сообщений: 1,030
Рейтинг :   37 

Re: Заголовок на разных языках для мультиязычных сайтов

Вычищаем конструкцию iflang из RSS

Находим

$output .= "   <title><![CDATA[".((extra_get_param('rss_export','news_title') == 1)&&GetCategories($row['catid'],true)?GetCategories($row['catid'], true).' :: ':'').secure_html($row['title'])."]]></title>\n";

Перед ней вставляем:

 if (preg_match_all('/\[iflang\:(.+?)\](.+?)\[\/iflang\]/is', $row['title'], $parr)) {
print "<pre>".var_export($parr, true)."</pre>";  
 foreach ($parr[0] as $k => $v) {
    $row['title'] = str_replace($v,($config['default_lang'] == $parr[1][$k])? $parr[2][$k]:'', $row['title']);
   }
  }

Изменено easmik (2012-01-09 18:32:57)

Не в сети

Подвал раздела

Работает на FluxBB