Текущее время: 18 окт 2017, 11:11


Выбор языка в DLE

Выбор языка в DLE

Сообщение 4izora » 27 фев 2011, 22:37

Вот у меня имеется 2 языковых пакета! файлы уже лежат в необходимом месте!
Подскажите как вывести на главную страницу чтоб посетитель мог сам выбирать язык сайта!
Последний раз редактировалось HAMMER 27 фев 2011, 22:55, всего редактировалось 1 раз.
Причина: Давайте понятные названия темам

4izora

Автор темы
Аватара пользователя
Застенчивый
 
Сообщения: [ 51 ]
Зарегистрирован: 20 фев 2011, 16:16
Откуда: Украина
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Языки

Сообщение HAMMER » 27 фев 2011, 22:50

после всех замечаний topic192.html#p954 исправленная версия

в index.php после
Код: Выделить всё
if ($config['allow_skin_change'] == "yes") $tpl->set ( '{changeskin}', ChangeSkin ( ROOT_DIR . '/templates', $config['skin'] ) );

вставить
Код: Выделить всё
$tpl->set ( '{changelangs}', ChangeLangs ( ROOT_DIR . '/language', $config['langs'] ) );


в engine/modules/functions.php
вставить
Код: Выделить всё
function ChangeLangs($dir, $langs) {
   
   $language_list = array ();
   
   $handle = opendir( $dir );
   
   while ( false !== ($file = readdir( $handle )) ) {
      if( @is_dir( "./language/$file" ) and ($file != "." AND $file != "..") ) {      
         $language_list[] = $file;
      }
   }
   
   closedir( $handle );
   sort($language_list);
   
   $langs_list = "<form method=\"post\" action=\"\"><select onchange=\"submit()\" name=\"langs_name\">";
   
   foreach ( $language_list as $single_language ) {
      if( $single_language == $langs ) $selected = " selected=\"selected\"";
      else $selected = "";
      $langs_list .= "<option value=\"$single_language\"" . $selected . ">$single_language</option>";
   }
   
   $langs_list .= '</select><input type="hidden" name="action_langs_change" value="yes" /></form>';
   
   return $langs_list;
}


до (возможно здесь приведена не вся строка)
Код: Выделить всё
function custom_print($custom_category, $custom_template, $aviable, $custom_from, $custom_limi


в /engine/data/config.php
после
Код: Выделить всё
'skin' => "video",

Вставить
Код: Выделить всё
'langs' => "Russian",


Вывод в main.tpl
Код: Выделить всё
{changelangs}


Автор: HAMMER http://bestcoding.info
Copyright © BestCoding.info 2011. All Rights Reserved.

Копирование материала без указания ссылки на первоисточник запрещено
Последний раз редактировалось HAMMER 27 фев 2011, 23:38, всего редактировалось 1 раз.
АКЦИЯ: Каждому флудеру/оффтопщику - день бана в подарок! Приведи с собой друга и отгреби за двоих!

VIP группа на форуме BestCoding.info

FAQ по SEO (постепенно пополняется)
Мой любимый форум phpBB

Аватара пользователя
Администратор
 
Сообщения: [ 930 ]
Зарегистрирован: 20 янв 2011, 13:54
Откуда: Зеленоград
Благодарил (а): 9 раз.
Поблагодарили: 85 раз.

Языки

Сообщение 4izora » 27 фев 2011, 22:57

неа, на главной оно выводится просто тегом!

4izora

Автор темы
Аватара пользователя
Застенчивый
 
Сообщения: [ 51 ]
Зарегистрирован: 20 фев 2011, 16:16
Откуда: Украина
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Выбор языка в DLE

Сообщение HAMMER » 27 фев 2011, 23:12

аа.. еще надо в function.php прописать функцию
Код: Выделить всё
function ChangeLangs($dir, $langs) {
   
   $language_list = array ();
   
   $handle = opendir( $dir );
   
   while ( false !== ($file = readdir( $handle )) ) {
      if( @is_dir( "./language/$file" ) {
         $language_list[] = $file;
      }
   }
   
   closedir( $handle );
   sort($language_list);
   
   $langs_list = "<form method=\"post\" action=\"\"><select onchange=\"submit()\" name=\"langs_name\">";
   
   foreach ( $language_list as $single_language ) {
      if( $single_language == langs ) $selected = " selected=\"selected\"";
      else $selected = "";
      $langs_list .= "<option value=\"$single_language\"" . $selected . ">$single_language</option>";
   }
   
   $langs_list .= '</select><input type="hidden" name="action_langs_change" value="yes" /></form>';
   
   return $langs_list;
}
АКЦИЯ: Каждому флудеру/оффтопщику - день бана в подарок! Приведи с собой друга и отгреби за двоих!

VIP группа на форуме BestCoding.info

FAQ по SEO (постепенно пополняется)
Мой любимый форум phpBB

Аватара пользователя
Администратор
 
Сообщения: [ 930 ]
Зарегистрирован: 20 янв 2011, 13:54
Откуда: Зеленоград
Благодарил (а): 9 раз.
Поблагодарили: 85 раз.

Выбор языка в DLE

Сообщение 4izora » 27 фев 2011, 23:23

Код: Выделить всё
if( @is_dir( "./language/$file" ) {
         $language_list[] = $file;
      }

тут ошибка
Parse error: syntax error, unexpected '{' in /home/site/public_html/site.ru/engine/modules/functions.php on line 419

4izora

Автор темы
Аватара пользователя
Застенчивый
 
Сообщения: [ 51 ]
Зарегистрирован: 20 фев 2011, 16:16
Откуда: Украина
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Выбор языка в DLE

Сообщение HAMMER » 27 фев 2011, 23:26

замени всю функцию
Код: Выделить всё
function ChangeLangs($dir, $langs) {
   
   $language_list = array ();
   
   $handle = opendir( $dir );
   
   while ( false !== ($file = readdir( $handle )) ) {
      if( @is_dir( "./language/$file" ) ) {
         $language_list[] = $file;
      }
   }
   
   closedir( $handle );
   sort($language_list);
   
   $langs_list = "<form method="post" action=""><select onchange="submit()" name="langs_name">";
   
   foreach ( $language_list as $single_language ) {
      if( $single_language == $langs ) $selected = " selected="selected"";
      else $selected = "";
      $langs_list .= "<option value="$single_language"" . $selected . ">$single_language</option>";
   }
   
   $langs_list .= '</select><input type="hidden" name="action_langs_change" value="yes" /></form>';
   
   return $langs_list;
}


Добавлено спустя 1 минуту 52 секунды:
Код: Выделить всё
if ($config['allow_langs_change'] == "yes") $tpl->set ( '{changelangs}', ChangeLangs ( ROOT_DIR . '/language', $config['langs'] ) );

замени на
Код: Выделить всё
$tpl->set ( '{changelangs}', ChangeLangs ( ROOT_DIR . '/language', $config['langs'] ) );


Добавлено спустя 1 минуту 4 секунды:
в конфиг добавь
Код: Выделить всё
'langs' => "Russian",


можно разрешить или запретить пользователям менять язык

Добавлено спустя 2 минуты 59 секунд:
и еще косметика
Код: Выделить всё
if( @is_dir( "./language/$file" ) ) {

замени на
Код: Выделить всё
if( @is_dir( "./language/$file" ) and ($file != "." AND $file != "..") ) {
Последний раз редактировалось HAMMER 27 фев 2011, 23:28, всего редактировалось 1 раз.
АКЦИЯ: Каждому флудеру/оффтопщику - день бана в подарок! Приведи с собой друга и отгреби за двоих!

VIP группа на форуме BestCoding.info

FAQ по SEO (постепенно пополняется)
Мой любимый форум phpBB

Аватара пользователя
Администратор
 
Сообщения: [ 930 ]
Зарегистрирован: 20 янв 2011, 13:54
Откуда: Зеленоград
Благодарил (а): 9 раз.
Поблагодарили: 85 раз.


Вернуться в DataLife Engine (DLE)

Кто сейчас на конференции

Зарегистрированные пользователи: нет зарегистрированных пользователей

cron