[Помогите] Вопрос по отзывам

Тема в разделе "OpenCart", создана пользователем spy, 3 апр 2013.

  1. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    176
    Симпатии:
    66
    Всем доброго время суток.
    Вопрос наверное больше не по модулю Отзывы (testimonials), а к знатокам знающих AJAX.
    Хочу сделать, чтобы при нажатии на Оставить отзыв (на странице отзывов /index.php?route=product/testimonial) всплывало окно для оставления отзывов с подгрузкой полей для оставления отзыва, что на другой странице (index.php?route=product/isitestimonial)
    Помогите, пожалуйста, так как в аяксе не разбираюсь, а других решений невстричал:frantic:
     
  2. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    889
    А если с помощью фенси бокс сделать.
    Вот например в шаблоне модуля отзывов вконец сам вставить ето
    Код:
    <script type="text/javascript"><!--
    $('.fancybox').fancybox({autoDimensions: false, autoScale: false,width:500,height:'auto'});
    //--></script>
    А ссылку Оставить отзыв сделать так
    <a class="fancybox" href="index.php?route=product/testimonial">

    Вот смотри как получится
     
  3. marsrip

    marsrip

    Регистрация:
    13 мар 2013
    Сообщения:
    116
    Симпатии:
    55

    Помогаю, держи , скрипт стандартен как подгружать нужный контент разбирайся сам :coffee:

    Скрипт для создания всплывающих окон на jQuery. В демонстрации три примера в различных стиля. Но в общем принцип один – затемняется экран по средине окна браузера появляется диалоговое окно.

    Html код достаточно простой:
    <h1><a href="#" rel="popuprel" class="popup">Ссылка на первое окно</a></h1>
    <h1><a href="#" rel="popuprel2" class="popup">Ссылка на второе окно</a></h1>
    <h1><a href="#" rel="popuprel3" class="popup">Ссылка на третье окно</a></h1>
    <div class="popupbox" id="popuprel">
    Содержание первого окна
    </div>
    <div class="popupbox1" id="popuprel2">
    Содержание второго окна
    </div>
    <div class="popupbox2" id="popuprel3">
    Содержание третьего окна
    </div>
    Далее запустите jQuery библиотеку и плагин:
    <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
    <script type="text/javascript" src="custom.js"></script>


    Скачать готовый пример
     
  4. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    176
    Симпатии:
    66
    Yuriy_Z, спасибо но у меня colorbox и он стилизирован уже, может еще какой то вариант знаеш?
    --- добавлено: 3 апр 2013 в 19:57 ---
    marsrip,
    Если бы я знал как подгружать нужный блок я тогда и не просил помощи.
    Если так все просто покажи как на примере одного дива (окошка города или имени), ну а дальше понятно что разберусь
    marsrip, вопрос в том что там не простой текст, а php код что работает чрез контролер у которого другая страница а всплывающее на первой странице нужно
     
  5. marsrip

    marsrip

    Регистрация:
    13 мар 2013
    Сообщения:
    116
    Симпатии:
    55
    Так ты демо скачай и посмотри =)

    Код:
    <div class="popupbox" id="popuprel">
    <div id="intabdiv">
    			  <h2>ЗАГОЛОВОК ОКНА  можно и без него</h2>  // Заголовок можно убрать как и текст ниже, а в див прописать нужный код например обратней связи или нужной странички
    				  <p>Check out WebDesignersDesk for more tutorials</p>  //это убрать и прописать код который надо подгрузить или страничку 
     
    		  </div>
    </div>


    скачивай демку и там смотри ..... все же просто .....
     
  6. Alexxcha

    Alexxcha

    Регистрация:
    21 ноя 2012
    Сообщения:
    130
    Симпатии:
    36
    Да просто в див запихни код из файла isitestimonial.tpl :Smile:
    Примерно так:Smile:
    Под кодом отображения отзывов прописываешь:
    <h1><a href="#" rel="entertestimonial" class="popup">Ссылка на первое окно</a></h1>
    <div class="popupbox" id="entertestimonial">
    <div id="content">
    <p style="padding-bottom: 4px; margin: 0px 20px 10px"><?php echo $text_conditions ?></p>
    <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="testimonial">
    <div align="center">
    <table width="80%" align="center">
    <tr>
    <td width="15%"><?php echo $entry_title ?></td>
    <td style="height: 40px;">
    <input type="text" name="title" value="<?php echo $title; ?>" size=100 style="width: 99%;"/>
    <?php if ($error_title) { ?><span class="error"><?php echo $error_title; ?></span><?php } ?>
    </td>
    </tr>
    <tr>
    <td><span style="color: #FF0000; font-weight: bold;">* </span><?php echo $entry_enquiry ?></td>
    <td><textarea name="description" style="width: 99%;" rows="10"><?php echo $description; ?></textarea><br />
    <?php if ($error_enquiry) { ?>
    <span class="error"><?php echo $error_enquiry; ?></span>
    <?php } ?></td>
    </tr>
    <tr>
    <td><?php echo $entry_name ?></td>
    <td style="height: 30px;"><input type="text" name="name" value="<?php echo $name; ?>" />
    <?php if ($error_name) { ?><span class="error"><?php echo $error_name; ?></span><?php } ?>
    </td>
    </tr>
    <tr>
    <td><?php echo $entry_city ?></td>
    <td style="height: 30px;"><input type="text" name="city" value="<?php echo $city; ?>" />
    </td>
    </tr>
    <tr>
    <td></td>
    <td style="text-align: center;"><br><?php echo $entry_rating; ?> &nbsp;&nbsp;&nbsp; <span><?php echo $entry_bad; ?></span>&nbsp;
    <input type="radio" name="rating" value="1" style="margin: 0;" <?php if ( $rating == 1 ) echo 'checked="checked"';?> />
    &nbsp;
    <input type="radio" name="rating" value="2" style="margin: 0;" <?php if ( $rating == 2 ) echo 'checked="checked"';?> />
    &nbsp;
    <input type="radio" name="rating" value="3" style="margin: 0;" <?php if ( $rating == 3 ) echo 'checked="checked"';?> />
    &nbsp;
    <input type="radio" name="rating" value="4" style="margin: 0;" <?php if ( $rating == 4 ) echo 'checked="checked"';?> />
    &nbsp;
    <input type="radio" name="rating" value="5" style="margin: 0;" <?php if ( $rating == 5 ) echo 'checked="checked"';?> />
    &nbsp; <span><?php echo $entry_good; ?></span><br /><br>

    </td>
    </tr>
    <tr><td></td><td align="center">
    <?php if ($error_captcha) { ?>
    <span class="error"><?php echo $error_captcha; ?></span>
    <?php } ?>
    <img src="index.php?route=information/contact/captcha"/> <br>
    <span style="color: #FF0000; font-weight: bold;">*</span> <?php echo $entry_captcha; ?><br>
    <input type="text" name="captcha" value="<?php echo $captcha; ?>" style="width: 10%;" /><br>
    </td></tr>
    </table>
    </div>
    <div style="text-align: right; margin-bottom: 20px; margin-right: 30px;"><a onclick="$('#testimonial').submit();" class="btn"><span><?php echo $button_continue; ?></span></a></div>
    </form>
    </div>
    </div>
    Библиотеки jQuery - jquery-1.2.6.min.js - или старше я думаю не принципиально - уже подгружена, а вот custom.js - нада прописать в header.tpl.... по идее должно заработать
     
  7. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    176
    Симпатии:
    66
    Alexxcha, Вставил код с isitestimonial.tpl как я и предполагал, контролер testimonial.tpl не знает переменных.
    Код:
    Notice: Undefined variable: entry_name in /catalog/view/theme/default/template/product/testimonial.tpl on line 61
    Notice: Undefined variable: error_name in /catalog/view/theme/default/template/product/testimonial.tpl on line 63
    Notice: Undefined variable: entry_enquiry in /catalog/view/theme/default/template/product/testimonial.tpl on line 81*
    <b>Notice</b>: Undefined variable: description in <b>/catalog/view/theme/default/template/product/testimonial.tpl</b> on line <b>82</b>
    Notice: Undefined variable: error_enquiry in /catalog/view/theme/default/template/product/testimonial.tpl on line 84
    Notice: Undefined variable: error_email in/catalog/view/theme/default/template/product/testimonial.tpl on line 91
     
    Notice: Undefined variable: entry_rating in /catalog/view/theme/default/template/product/testimonial.tpl on line 97	Notice: Undefined variable: entry_bad in /catalog/view/theme/default/template/product/testimonial.tpl on line 97  Notice: Undefined variable: rating in /catalog/view/theme/default/template/product/testimonial.tpl on line 98 />  Notice: Undefined variable: rating in /catalog/view/theme/default/template/product/testimonial.tpl on line 100 />  Notice: Undefined variable: rating in /catalog/view/theme/default/template/product/testimonial.tpl on line 102 />  Notice: Undefined variable: rating in /catalog/view/theme/default/template/product/testimonial.tpl on line 104 />  Notice: Undefined variable: rating in /catalog/view/theme/default/template/product/testimonial.tpl on line 106 />  Notice: Undefined variable: entry_good in /catalog/view/theme/default/template/product/testimonial.tpl on line 107
     
    Notice: Undefined variable: error_captcha in/catalog/view/theme/default/template/product/testimonial.tpl on line 111
    Notice: Undefined variable: entry_captcha in /catalog/view/theme/default/template/product/testimonial.tpl on line 115*
    
    Как исправить?
     
  8. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    889
    Дак нет проблем, колорбокс аналогично, вот так:
    В шаблоне модуля в сам конец вставляеш ето
    Код:
    <script type="text/javascript"><!--
    $('.colorbox').colorbox({
    	overlayClose: true,
    	opacity: 0.5
    });
    //--></script>
    саму ссылку "Написать отзыв" делаеш так
    <a class="colorbox" rel="colorbox" href="<?php echo $isitesti; ?>">

    Да и для красоты удали в файле шаблона ети строчки
    <?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
    и
    <?php echo $footer; ?>
     
  9. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    176
    Симпатии:
    66
    Yuriy_Z, спапсибо, зделал как написал Alexxcha, но пришлось править контролер и много чего убирать, так как редиректит на страницу isitestimonia.если непроходим валидацую (пустое сообщение, капча).
    как убрать редирект в контролере при проверке количества знаков и капчи?
     
  10. Alexxcha

    Alexxcha

    Регистрация:
    21 ноя 2012
    Сообщения:
    130
    Симпатии:
    36
    Я просто предположил что примерно так можно сделать, догадывался что придется много чего править :Smile:
    А вообще сам тут озадачился вот чем - как сделать что бы при наведении на вкладку Отзывы - выпадающее меню - Читать отзывы - Написать отзыв....
    Соответственно - при выборе - Читать отзыв - открывается вкладка с отзывами - при выборе написать отзыв - вкладка только с формой (совсем без отзывов...), видел как это реализовано в шаблоне - но шаблон html5 и с какими то своими операторами... в общем с наскока реализовать не получилось - сижу думаю...
     
  11. spy

    spy

    Регистрация:
    15 янв 2013
    Сообщения:
    176
    Симпатии:
    66
    Alexxcha, попробуй сделать табами, через жеквери например, а при загрузке страници, и отзывы и оставить будет на одной страницы только скрыватся.
    Получается как и я делал на одной странице, только через жеквери скрываеш дивы (выпадение)