• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Мультиязычный сайт на ДЛЕ. Статика.

При смене шаблона, пользователь попадает на главную страницу и соответственно теряет ту новость на которой только что он находился. Решения:
1. Открываем файл /engine/init.php
2. Ищем
Код:
        if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) {
                $config['skin'] = $_REQUEST['skin_name'];
                set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 );
        }

3. Заменяем на:
Код:
        if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) {
                $config['skin'] = $_REQUEST['skin_name'];
                set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 );
                $return_url=getenv("HTTP_REFERER");
                header( 'Location: '. $return_url, 303 );
        }
Теперь, как только человек нажмет на ссылку ВАШДОМЕН.ru/index.php?action_skin_change=yes&skin_name=XXX, у него изменится язык и он автоматом сразу же вернется на предыдущую страницу.
Тестировалось на DLE 9.3
PS: Автор не я :) ! Сам ещё не проверил!
 
killoff, а если для титла тоже сделать новое поле...? или так не получиться?
и для метатегов тоже отдельные доп поля делать? Теоретически то все возможно, но практически - дорога на фриланс, и за 5-10$ не думаю что кто-то возьмется такое делать... Проще поставить переводчик от гугла и делов то :crazy:
 
и для метатегов тоже отдельные доп поля делать? Теоретически то все возможно, но практически - дорога на фриланс, и за 5-10$ не думаю что кто-то возьмется такое делать... Проще поставить переводчик от гугла и делов то :crazy:
Та лучше чтобы всё индексировалось) Вот сейчас например доделываю сайт на ДЛЕхе где 3 языка необходимо сделать (укр-def, русс, англ). Текста не особо то много нужно переводить но это самое оно когда еще нужно оптимизоровать контент и раскрутить. Сейчас допиливаю, отпишу "папаже"...

Добавлено...

Продолжение к описанию Для просмотра ссылки Войди или Зарегистрируйся
(ps все доп поля что были описаны там - не создаем, создаем как описано ниже)

Смена языка без перекидывания на главную
1. Открываем файл /engine/init.php
2. Ищем Код:
if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) {
$config['skin'] = $_REQUEST['skin_name'];
set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 );
}
3. Заменяем на Код:

if ($_REQUEST['skin_name'] != '' AND @is_dir ( ROOT_DIR . '/templates/' . $_REQUEST['skin_name'] ) ) {
$config['skin'] = $_REQUEST['skin_name'];
set_cookie ( "dle_skin", $_REQUEST['skin_name'], 365 );
$return_url=getenv("HTTP_REFERER");
header( 'Location: '. $return_url, 303 );
}

На DLE 9.5 проверено.
[/spoil]

ПОШАГОВО

ШАГ1. СОЗДАЕМ ДОПОЛНИТЕЛЬНЫЕ ПОЛЯ
[spoil]Создаете дополнительное поле для НАЗВАНИЯ
Название поля: title_en
Описание поля: Название ENG
Категория: Все
Тип поля: Одна строка
Остальное не важно, жмем СОХРАНИТЬ

Создаете дополнительное поле для ОПИСАНИЯ:
Название поля: desc_en
Описание поля: Описание ENG
Категория: Все
Тип поля: Несколько строк
Остальное не важно, жмем СОХРАНИТЬ

Создаете дополнительное поле для ПОЛНОГО ОПИСАНИЯ:
Название поля: full_desc_en
Описание поля: Полное описание ENG
Категория: Все
Тип поля: Несколько строк
Остальное не важно, жмем СОХРАНИТЬ[/spoil]

ШАГ2. ПРОВЕРЯЕМ
[spoil]Далее открываем категорию своего шаблона и там файл addnews.tpl проверяем что бы там точно был тег {xfields}. Если он есть, то по урл ваш.сайт/addnews.html будет показываться уже эти поля.[/spoil]

ШАГ3. НАЗНАЧАЕМ ЯЗЫКИ ШАБЛОНАМ
[spoil]В админ части переходим в раздел Шаблоны и назначаем языковые файлы для обеих шаблонов. Например для Русского шаблона русский язык, для английского - английский.[/spoil]

ШАГ4. ПРАВИМ shortstory.tpl и fullstory.tpl
[spoil]Дальше допустим по умолчанию у нас Русский сайт, значит переходим в английский шаблон

открываем shortstory.tpl:
{title} меняем на [xfgiven_title_en][xfvalue_title_en][/xfgiven_title_en]
{short-story} меняем на [xfgiven_desc_en][xfvalue_desc_en][/xfgiven_desc_en]

открываем fullstory.tpl:
{title} меняем на [xfgiven_title_en][xfvalue_title_en][/xfgiven_title_en]
{full-story} меняем на [xfgiven_full_desc_en][xfvalue_desc_en][/xfgiven_full_desc_en][/spoil]

Всё оно хорошо и переводится но хочется чтобы все страницы, включая перевод, индексировались (имели свой url). Для этого так же добавил поле URL к каждому языку.

Создаете дополнительное поле для URL
[spoil]
Название поля: alt_name_en
Описание поля: URL ENG
Категория: Все
Тип поля: Одна строка
Остальное не важно, жмем СОХРАНИТЬ

Но, есдинственная проблемка, где что прописать дабы при смене языка (со страницы) ru перекидывало на новую - eng. В .htaccess?
Хотелось бы чтобы и статические страницы так переводились но это уже не такой трабл. Приходится пока сделать просто, при изменении языка - смену шаблона и страниц посоздавать для разных языков...
 
Дальше допустим по умолчанию у нас Русский сайт, значит переходим в английский шаблон открываем shortstory.tpl: {title} меняем на [xfgiven_title_en][xfvalue_title_en][/xfgiven_title_en] {short-story} меняем на [xfgiven_desc_en][xfvalue_desc_en][/xfgiven_desc_en] открываем fullstory.tpl: {title} меняем на [xfgiven_title_en][xfvalue_title_en][/xfgiven_title_en] {full-story} меняем на [xfgiven_full_desc_en][xfvalue_desc_en][/xfgiven_full_desc_en]
Все таки это не титл страницы, а просто титл новости...
 
Назад
Сверху