Страница 1 из 3

Форма «Свяжитесь с нами»

СообщениеДобавлено: 04 янв 2013, 12:35
olegstav
Добрый день
1.Подскажите как показать форму «Свяжитесь с нами» в отдельном небольшом окне
2. И в нужной месте странице вызывать ее ссылкой (как у формы бронирования)
Спасибо

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 09 янв 2013, 11:29
Koduc
1. Файл /protected/components/Controller.php
Строку
Код: Выделить всё
array('label' => tt('Contact us''common'), 'url' => array('/contactform/main/index')), 

заменить на
Код: Выделить всё
array('label' => tt('Contact us''common'), 'url' => array('/contactform/main/index'), 'linkOptions' => array('class' => 'fancy')),
 


2. Использовать для ссылки class="fancy". То есть что-то типа <a class="fancy" href="/contact-us">форма контактов</a>

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 11 янв 2013, 01:57
olegstav
1.поменял строку в Controller.php пробую вызвать Свяжитесь с нами ссылкой не загружается сама форма, class="fancy" подгружается
в чем может быть ошибка

2.и как можно создать и добавить свою форму

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 15 янв 2013, 14:42
Xpycm
адрес вашего сайта, на котором ошибка, напишите

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 16 янв 2013, 20:23
Xpycm
1) Нужно дополнительно в файле protected\modules\contactform\controllers\MainController.php заменить:
Код: Выделить всё
public function actionIndex(){
    $this->render('contactform');
}
 

на:
Код: Выделить всё
public function actionIndex($isFancy false){
    if(
$isFancy){
        
Yii::app()->clientscript->scriptMap['jquery.js'] = false;
        
Yii::app()->clientscript->scriptMap['jquery.min.js'] = false;
        
Yii::app()->clientscript->scriptMap['jquery-ui.min.js'] = false;

        
$this->renderPartial('contactform', array(), falsetrue);
    }
    else{
        
$this->render('contactform', array());
    }
}
 


2) Как создать свою форму - google.ru/search?q=yii+создание+формы

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 01 май 2013, 16:01
Saturn
Код: Выделить всё
public function actionIndex($isFancy = false){
    if($isFancy){
        Yii::app()->clientscript->scriptMap['jquery.js'] = false;
        Yii::app()->clientscript->scriptMap['jquery.min.js'] = false;
        Yii::app()->clientscript->scriptMap['jquery-ui.min.js'] = false;

        $this->renderPartial('contactform', array(), false, true);
    }
    else{
        $this->render('contactform', array());
    }
}
  

все равно не работает и не грузится :(

и в догонку вопрос: Как сделать такой же финт с формой логина. Изменил Controller.php:
Код: Выделить всё
            array('label' => '|''visible' => Yii::app()->user->getState('isAdmin') === null && !Yii::app()->user->isGuest),
            array(
                
'label' => Yii::t('common''Control panel'),
                
'url' => array('/usercpanel/main/index'),
                
'visible' => Yii::app()->user->getState('isAdmin') === null && !Yii::app()->user->isGuest,
            ),
            
            array(
'label' => '|''visible' => Yii::app()->user->getState('isAdmin') === null && Yii::app()->user->isGuest),
            array(
                
'label' => tt('Login''common'), 
                
'url' => array('/site/login'),
                
'visible' => Yii::app()->user->getState('isAdmin') === null && Yii::app()->user->isGuest,
                
'linkOptions' => array('class' => 'fancy'),
            ), 

чтобы для гостей отображался пункт "Войти" вместо "Панель управления"
но контент формы открывается не Partial а полностью вся страница. при этом JS-скрипты вылетают :(

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 01 май 2013, 16:43
Xpycm
Saturn писал(а):все равно не работает и не грузится :(


Насколько я помню (а было это 16 января) у меня всё работало прекрасно. Возможно что-то вы не так делаете или что-то мешает корректному выполнению.

Saturn писал(а):чтобы для гостей отображался пункт "Войти" вместо "Панель управления"
но контент формы открывается не Partial а полностью вся страница. при этом JS-скрипты вылетают :(


Мало добавить "class" => "fancy".
Также обязательно наличие в контроллере примерно такого кода:

Код: Выделить всё
$isFancy = Yii::app()->request->getParam('isFancy');
if(
$isFancy){
    Yii::app()->clientscript->scriptMap['jquery.js'] = false;
    Yii::app()->clientscript->scriptMap['jquery.min.js'] = false;
    Yii::app()->clientscript->scriptMap['jquery-ui.min.js'] = false;

    $this->renderPartial('view', array(), false, true);
}
else{
    $this->render('view');
}
 


Если не получается, то можете обратиться к нам через форму "Контакты" - http://monoray.ru/contact. Мы сделаем за дополнительную плату.

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 01 май 2013, 17:02
Saturn
а в каком контроллере форма логина отображается?

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 01 май 2013, 17:04
Xpycm
SiteController.php, метод actionLogin

Re: Форма «Свяжитесь с нами»

СообщениеДобавлено: 01 май 2013, 19:32
Saturn
спасибо! разобрался!