Добрый день, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 CMS Status-X | Плагины и модификации
         Модуль Контактные формы (Модификация)

Похожие темы  |  Печать страницы

Модуль Контактные формы (Модификация)


События Вторник, 03.04.2012, 05:25

Rain

Группа: Пользователь
Ранг: Новичок
Cообщений: 30
Регистрация: 31.10.2009
Всем доброго времени суток!

При создании мультиязычного сайта наверняка многие столкнулись с проблемой создания мультиязычной формы (а именно когда тип поля "Список/меню", "Выбор варианта" или "Чекбокс")

Можно конечно создать 2 формы и в шаблоне использовать что-то вроде: {if $lang=='ru'}[CONTACT:1]{else}[CONTACT:2]{/if}
Не очень хороший подход

Либо в файле "/class/class.Contactform.php"
заменить функцию:
PHP-код
    /**
     * Функция получения из базы данных контактой формы
     */
    
private function setContactForm($id) {
        
$LC Sys::get($_SESSION'Langcode'1);
        
$lang Sys::get($_SESSION'lang');
        
$res $this->_DB->Cache_Fetch_Object("SELECT Titel1 AS DefTitel, Titel" $LC " AS Titel, Intro" $LC " AS Intro, Email, Anlage, Gruppen, Button_Name, Id FROM " PREFIX "_kontakt_form WHERE Aktiv='1' AND Id='" i($id) . "' LIMIT 1");
        if (
is_object($res)) {
            
$groups explode(','$res->Gruppen);
            if (!empty(
$res->Gruppen) && in_array(Sys::get($_SESSION'user_group'), $groups)) {
                
$felder = array();
                
$res_form $this->_DB->Query("SELECT Name1 AS DefName, Werte, Id, Pflicht, Typ, Zahl, Email, Name" $LC " AS Name FROM " PREFIX "_kontakt_form_felder WHERE Form_Id='" i($res->Id) . "' ORDER BY Posi ASC");
                while (
$row_form $res_form->Result_Fetch_Object()) {
                    switch (
$row_form->Typ) {
                        default:
                        case 
'textfield':
                            
$row_form->OutElemVal $row_form->Werte;
                            break;

                        case 
'radio':
                        case 
'checkbox':
                        case 
'dropdown':
                            if(!
Preg_Match_All '#{'.$lang.'}(.*?){/'.$lang.'}#i'$row_form->Werte$res )){$dropdown $row_form->Werte;}else{$dropdown $res[1][0];}    
                            
$row_form->OutElemVal explode(','$dropdown);
                            break;
                    }
                    
$row_form->Name = (!$row_form->Name) ? $row_form->DefName $row_form->Name;
                    
array_push($felder$row_form);
                }
                
$res_form->Result_Close();

                
$this->_getClass('Captcha')->getStartSecure(); // Инициализация каптчи
                
$tpl_array = array(
                
'referer'         => ($this->_getClass('Redir')->getCheckReferer() ? '' Sys::$lang['ErrorReferer']),
                
'form_attachment' => $res->Anlage,
                
'form_intro'      => $res->Intro,
                
'contact_button'  => $res->Button_Name,
                
'form_id_raw'     => $res->Id,
                
'form_id'         => 'form_' $res->Id,
                
'contact_fields'  => $felder,
                
'contact_title'   => (!$res->Titel $res->DefTitel $res->Titel));
                
$this->_CS->assign($tpl_array);
                return 
$this->_CS->fetch(SOURCE '/contact/contactform.tpl');
            }
        }
        return 
'';
    }


Теперь при создании типа поля с выпадающим списком можно значения перечислять для всех языков:
пример: {ru}3 тн.,5 тн.,25 тн.,другой{/ru}{en}3 tons,5 tons,25 tons,other{/en}

Отредактировано Status-X: 03.04.2012, 09:54:57
Вложения


Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте


Пользователей: 0, Гостей: 5

Поисковые боты: 10
BingBot(4), Unknown Bot(2), Inktomi Slurp, Googlebot(2), Yandex

 Статистика форума


  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: Lesya

 Дни рождения


TEPMIT (34), system (22)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты