Virtuemart. Делаем красивую форму вопроса о товаре
Собственно, в стандартной сборке вирта есть такая штука, как “спросить о товаре”. Реализована она просто ужасно: после нажатия на ссылку вас перекидывает на отдельную страницу с формой, которую нужно будет заполнить. Нехорошо! Я же предлагаю воспользоваться highslide и открыть форму в красивом ajax-окошке. Согласны попробовать реализовать? Тогда в путь!
Как устанавливать Highslide подробно написано на оф. сайте. Там же качаем свежую сборку. Кстати, с помощью хайслайда можно и картинки в виртумарте сделать более красивыми, нежели при использовании стандартного лайтбокса, но это уже тема другой статьи.
Будем колдовать в файле flypage.tpl. Для начала нам нужно достать саму форму, она расположена в файле pages/shop.ask.tpl.php. Забираем её оттуда и вставляем в flypage. Сохраняем. В результате получаем, что форма отображается на странице товара. Уже хорошо! Осталось только хайслайд прицепить к этому добру, а потом и электронный архив документов пополнить новой разработочкой.
Для начала удаляем нахрен переменную $ask_seller. Она нам совершенно не нужна. Просто рисуем ссылку, наподобие такой:
1 | <a href="#" onclick="return hs.htmlExpand(this, {maincontentId: 'my-content', headingText: 'Задать вопрос про <?php echo $product_name ?>', width: 600, height:500 })">Задайте вопрос прямо сейчас</a> |
теперь прячем всю форму в див, следующего содержания:
1 | <div class="highslide-maincontent" id="my-content"> тут код формы </div> |
Всё, получаем красивое окошко с формой. Можно, конечно, дальше заняться украшательством самой формы. Я же решил, что это будет лишним.
Для наглядности приведу получившийся результат. Вот он:
На сегодня всё. На досуге почитайте про то, как зарегистрировать ип и работать официально. Удачи!
11 коммент. к записи “Virtuemart. Делаем красивую форму вопроса о товаре”
Прокомментировать
Рубрики
- javascript
- SEO
- Smarty
- UIPI
- Боремся со СПАМом
- Верстка
- Движки форумов
- Железо
- Забавно
- Интернет в лицах
- Интернет-магазины
- Новости
- Обзоры сайтов
- Обо всем
- Полезные скрипты
- Работа с CMS
- Создание сайтов
- Уроки рекламы
- Шаблоны


Что то не получается – пока не вставляю форму – все нормально – окошко всплывает, но как только вставляю код формы – все – страницу рвет!
Проверьте код на наличие ошибок. Где-то див не закрыт или подобная мелочь
C формой разобрался – она вставилась, и открывается во всплывающем окне – но при нажатии на отправить – ничего не происходит
Вот мой flypage – h__p://climatteh.dp.ua/files/flypage.tpl.rar
Посмотрите пожалуйста – что не так? Кстати – вирт март -1.1.4.
По таким вопросам – пишите через обратную связь. Разберемся
Что именно забираем из shop.ask.tpl.php и в какое место вставляем во flypage.tpl. Пробую забрать и вставить, отображается не корректно, без шаблона.
Всю форму забираем.
Повторите плз, куда в какую строку flypage.tpl вставляем содранную форму…
В самый низ флайпэйджа можно вставить
какую именно часть формы вы используете?
форма находится в файле pages/shop.ask.tpl.php
Ну, там тупо всю форму брать не можно…..ее надо переделывать….а как?? если тупо вставить, странице рвет……я нашел переделанную, но она тоже не пашет……но, выводится лучше за эту…
вот код
if ( $set == 0 ) { // This is the enquiry form!
$validate = vmIsJoomla( ’1.5′ )? JUtility::getHash( $mainframe->getCfg( ‘db’ ) ) : mosHash( $mainframe->getCfg( ‘db’ ) );
$output .= <<<FORMA
{$VM_LANG->_(‘NAME_PROMPT’)}
{$VM_LANG->_(‘EMAIL_PROMPT’)}
{$VM_LANG->_(‘MESSAGE_PROMPT’)}
{$subject}
_(‘SEND_BUTTON’)}” class=”button” onclick=”validateEnquiryForm()” />
FORMA;
$output .= ”
_(‘CONTACT_FORM_NC’,false)}’ );
} else if ( ( document.emailForm.email.value.search(‘;’)!= -1 ) || ( document.emailForm.email.value.search(‘,’)!= -1 ) || ( document.emailForm.email.value.search(‘ ‘)!= -1 ) ) {
alert( ‘You cannot enter more than one email address’ );
} else {
document.emailForm.action = ‘”.sefRelToAbs(‘index.php’).”‘
document.emailForm.submit();
}
}
–>”;
} else { // if set==1 then we have sent the email to the vendor and say thank you here.
$output .= <<<EOT
{$VM_LANG->_(‘THANK_MESSAGE’)}
EOT;
}