LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
26.05.2012, 16:18:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 3 [4] 5 6   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [howto] AJAX навигация по категориям  (Прочитано 21302 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« : 26.08.2010, 15:31:52 »

Однин из способов сделать магазин быстрее и удобнее для пользователя - использование AJAX подгрузки тела компонента VirtueMart.
Использование подгрузки только нужной части страницы вместо перезагрузки всей страницы имеет немало преимуществ:

1) Экономия трафика
2) Уменьшение нагрузки на сервер
3) Быстрота (как результат 1 и 2)
4) Отсутсвие "мерцания" страницы
5) Эффектно смотрится для юзера

Я приведу пример простейшей реализации, которая позволит перемещаться по категориям через ajax-подгрузку.
На сайте должен быть список категорий магазина: это может быть стандартный модуль меню mod_mainmenu или усовершенствованный модуль категорий VirtueMart - mod_virtuemart_categories.
Условимся что модуль присутсвует на всех страницах сайта, в параметрах модуля указан id списка - catalog

Теперь за дело: добавляем в index.php своего шаблона вот такой код:

Код
$script = "
window.addEvent('domready', function(){
 
loading = false;
$$('#catalog a').each(function (el) {
el.addEvent('click', function (e) {
 
if (!$('vmMainPage')) return;
 
(new Event(e)).preventDefault();
if (loading) return;
 
var container = $('vmMainPage').getParent();
 
var onComplete = function(responseText, responseXML){
var titleNode = responseXML.documentElement.getElementsByTagName('title')[0];
var bodyNode = responseXML.documentElement.getElementsByTagName('body')[0];
document.title = titleNode.textContent || titleNode.text;
container.setHTML(bodyNode.textContent || bodyNode.text);
loading = false;
}
 
container.setStyle('position', 'relative');
container.appendChild(
new Element(
'div',
{
'styles' : {
'height': container.offsetHeight,
'width': container.offsetWidth,
'position': 'absolute',
'top': 0,
'left': 0,
'background': '#fff',
'opacity': 0.4
}
}
)
);
container.appendChild(
new Element(
'img',
{
'src': '/media/system/images/spinner.gif',
'styles': {
'position': 'absolute',
'top': '50%',
'left': '50%'
}
}
)
);
 
loading = true;
new Ajax(el.href, {onComplete: onComplete}).request({tmpl: 'xml'});
 
});
 
});
});
"
;
JHTML::_('behavior.mootools');
$this->addScriptDeclaration($script);

Так как нам нужно подгрузить не только сам компонент, но и новый тайтл, нам нужно обернуть две эти составляющие в какойто контейнет. Это может быть либо JSON, либо XML. Со вторым у меня возникло меньше трудностей, поэтому использую его. Передав в запросе ?tmpl=xml мы тем самым заставляем Joomla запросить не index.php шаблона, а xml.php, который нужно создать рядом с index.php шаблона. Вот его код:
Код:
<?php

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );


$this->setMimeEncoding('text/xml');


$title = $this->title;

$body = $this->getBuffer('component');
$body = str_replace('<![CDATA[', '', $body);
$body = str_replace(']]>', '', $body);
?>

<page>
<title><![CDATA[<?php echo $title ?>]]></title>
<body><![CDATA[<?php echo $body ?>]]></body>
</page>
Все, теперь если мы на странице VirtueMart, то клик по меню не приведет к переходу по ссылке, вместо этого сработает скрипт, который подгрузит тело VirtueMart и заголовок страницы.
Пояснения:
catalog - id тега меню(списка категорий) - настраивается в параметрах модуля. Можно использовать любой другой селектор, например $$('.menu a')
vmMainPage - id wrapperа VirtueMart, зашито в коде компонента
'background': '#fff' - цвет оверлея, белый.
'opacity': 0.4 - прозрачность оверлея, 40%
'src': '/media/system/images/spinner.gif' - путь к картинке анимации загрузки

Код протестирован в ff 3, opera 10, ie 8, 7

Впринципе этот скрипт можно вынести из шаблона куда угодно.
Я не касался вопросов хистори браузера, смены адреса (добавления хэша) и др.

Известный факт что Витр - самый популярный, и приэтом самый криворукий магазин на Joomla. Писали его индусы однозначно. И я, хоть и потомок индусов, все же стараюсь забыть свое происхождение и стать профессионалом. Стараюсь изо всех сил, придумываю всякие клевые фигнюшки для вирта, но он ставит палки в колеса повсеместно.
Очередная палка - document.write(бла бла) в дефолтном шаблоне вирта. Скрипты загруженные аяксом не исполняются, а значит не исполнится document.write. А именно этим методом выводятся картинки в попап  на странице категории.
Решение простое. Заменяем в файле \components\com_virtuemart\themes\default\templates\browse\browse_1.php
Код:
       <div class="browseProductImageContainer">
       <script type="text/javascript">//<![CDATA[
       document.write('<a href="javascript:void window.open(\'<?php echo $product_full_image ?>\', \'win2\', \'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=<?php echo $full_image_width ?>,height=<?php echo $full_image_height ?>,directories=no,location=no\');">');
       document.write( '<?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?></a>' );
       //]]>
       </script>
       <noscript>
           <a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>">
           <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?>
           </a>
       </noscript>
        </div>
на
Код:
       <div class="browseProductImageContainer">
           <a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>" onclick="window.open('<?php echo $product_full_image ?>', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=<?php echo $full_image_width ?>,height=<?php echo $full_image_height ?>,directories=no,location=no'); return false">
           <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?>
           </a>
        </div>

Как видим кода в 2 стало меньше и мы избавились от документ.райт(). Почему изобретатели вирта не додумались до такой записи - загатка. Быть может их просто прикалывает метод document.write, и в новой версии вирта они будут весь код страницы выводить как document.write() и <noscript>обломайся - у тя выкл. js - ты лузер</noscript>

PS: изивинте накипело. решение не проверял, как меня и учил дедушка индус...
« Последнее редактирование: 06.10.2010, 23:55:39 от danik.html » Записан
 
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #91 : 29.09.2010, 11:43:31 »

Посмотри как навешивается AJAX на ссылки категорий. Точно таким же образом можно навесить и на все ссылки внутри тела вирта. Но тут два подвоха:
1) ССылки надо не все трогать. Некоторые нельзя аяксить. Чтобы не тупануть сдесь - метим нужные ссылки классом, и уже делаем выборку именно по этому классу: $$('#vmMainPage a.ajax').each(бла бла)
2) Обходить ссылки нужно всякий раз после подгрузки новой страницы.
Вывод - оформить две функции ну и тд, я уже писал..
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #92 : 29.09.2010, 14:30:28 »

ok спасибо, буду пробовать...
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #93 : 29.09.2010, 23:23:48 »

пробую начать с flypage.tpl->$previous_product

в indexe шаблона дописываю
Код
$$('.menu a, #vmMainPage a.ajax').each...

в flypage.tpl ссылке previous_product дописываю класс аякса:
Код
echo '<span class="ajax"><a href="'.$previous_product.'">'.shopMakeHtmlSafe($next_product['product_name']).'</a></span>';

без результатов, думаю косяк идет с shop_product_details.php, в формировании ссылки
Код
if( !empty($previous_product) ) {
   $url_parameters = 'page=shop.product_details&product_id='.$previous_product['product_id'].'&flypage='.$ps_product->get_flypage($previous_product['product_id']).'&pop='.$pop;
   if( $manufacturer_id ) {
       $url_parameters .= "&amp;manufacturer_id=" . $manufacturer_id;
   }
   if( $keyword != '') {
       $url_parameters .= "&amp;keyword=".urlencode($keyword);
   }
   if( $pop == 1 ) {
       $previous_product_url = $sess->url( $_SERVER['PHP_SELF'].'?'.$url_parameters );
   } else {
       $previous_product_url = str_replace("index2","index",$sess->url( $url_parameters ));
   }}
$tpl->set( 'previous_product', $previous_product );
$tpl->set( 'previous_product_url', $previous_product_url );

Уважаемый Danik, где-то я недопонимаю, подскажи?
может в<a href надо вывести готовую php ссылку... , пробую hop_product_details сразу выводить
Код
$previous_product_url = 'index.php?page=shop.product_details&product_id='.$previous_product['product_id'].'&flypage='.$ps_product->get_flypage($previous_product['product_id']).'&pop='.$pop;
но тихо, может в scriptе неправильно вызываю класс AJAX
« Последнее редактирование: 29.09.2010, 23:47:04 от skyscraper » Записан
mrhuge
Давно я тут
****

Репутация: +6/-0
Offline Offline

Сообщений: 234

http://muzalliance.ru/


« Ответ #94 : 29.09.2010, 23:34:21 »

Цитировать
Уважаемый Danik, где-то я недопонимаю, подскажи?

Даник - самый терпеливый из всех гениев программирования!  Grin
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #95 : 29.09.2010, 23:48:53 »

да ппц, стока делает полезного, что памятника на форуме не хватит, надо материально благодарить =)
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #96 : 30.09.2010, 01:16:44 »

skyscraper, ну дык в твоем случае тогда получается $$('.menu a, #vmMainPage span.ajax a')
Данная весчь будет работать до первой подгрузки аяксом. И чтоб снова заработало нужно сново обойти ссылки, но уже без .menu a.
Причем в jQuery имеется волшебный метод live(), или delegate(), который навешивает обработку события даже на элементы которых еще нет на странице, тоесть на те которые появятся в будущем. а вот в мутулзе вроде нет такова...надо покопаться - мож есть всетаки, тут былоб кстати...
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #97 : 01.10.2010, 08:57:26 »

skyscraper, как успехи? не желаешь поделиться с народом?
И исче, если не жалка киньте ссыльки на сайты в качестве "демо", а то в первонахах просили...
Записан
mrhuge
Давно я тут
****

Репутация: +6/-0
Offline Offline

Сообщений: 234

http://muzalliance.ru/


« Ответ #98 : 01.10.2010, 09:03:54 »

Я свою демку то с радостью: http://muzalliance.ru/

Вообще, Даник, могу за труды тебе сделать уборку или мебель перетащить Azn

А чего ты кстати убрал Webmoney из подписи? стыдно что ли стало?
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #99 : 02.10.2010, 00:41:01 »

поправил скрипт и всё стало как ты написал, работает, но после подгрузки теряет AJAX, пробую понять лайв...
как я понимаю надо в index скрипт добавить jQuery.live, только не пойму что вызвать в функции $('.ajax').live('click',function(){, ведь нам надо обрабатывать запрос из shop_product_details, чтобы видеть следующий продукт... может быть поэтому там должна быть функция обработчика следующей страницы, но грузить это в индексе, как и другие запросы будет не очень корректно...
« Последнее редактирование: 02.10.2010, 01:17:27 от skyscraper » Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #100 : 02.10.2010, 06:56:11 »

блин, да про jQuery я просто, к сведению написал. Мы же имеем mootools (или он нас) а не jquery. И метода Live у него вроде нету. Поэтому нужно каждый раз после подгрузки обходить ссылки с классом .ajax
Записан
skyscraper
Давно я тут
****

Репутация: +42/-2
Offline Offline

Сообщений: 265



« Ответ #101 : 02.10.2010, 16:33:31 »

всё понял, буду меню твое изучать и второй пост этой страницы =)
Записан
Slesh1irst
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #102 : 05.10.2010, 21:08:22 »

СПАСИБИЩЕ огромное за отличное решение!
Вот только никак не могу сделать в модуле mod_virtuemart_categories_2.1.0_final.zip так чтобы не при наведении открывался аккордеон, а при клике мышкой. И чтобы при этом была реакция только на открытие аккордеона, если кликаешь на родительскую категорию. Кто поможет буду очень признателен!
« Последнее редактирование: 05.10.2010, 21:23:15 от Slesh1irst » Записан
mrhuge
Давно я тут
****

Репутация: +6/-0
Offline Offline

Сообщений: 234

http://muzalliance.ru/


« Ответ #103 : 05.10.2010, 21:58:42 »

СПАСИБИЩЕ огромное за отличное решение!
Вот только никак не могу сделать в модуле mod_virtuemart_categories_2.1.0_final.zip так чтобы не при наведении открывался аккордеон, а при клике мышкой. И чтобы при этом была реакция только на открытие аккордеона, если кликаешь на родительскую категорию. Кто поможет буду очень признателен!
Вот http://joomlaforum.ru/index.php/topic,109669.msg689038.html#msg689038
и http://joomlaforum.ru/index.php/topic,109669.msg711397.html#msg711397
Записан
Slesh1irst
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #104 : 05.10.2010, 23:14:53 »

Вот http://joomlaforum.ru/index.php/topic,109669.msg689038.html#msg689038
и http://joomlaforum.ru/index.php/topic,109669.msg711397.html#msg711397
НЕ помогает, либо я не пойму как это "перекрываем accordion.php", что надо для этого сделать?
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #105 : 06.10.2010, 00:15:11 »

НЕ помогает, либо я не пойму как это "перекрываем accordion.php", что надо для этого сделать?

Вы тему попутали похоже. Перекрыть значит положить в шаблон (templates/твой_шаблон/html/mod_virtuemart_categories/) и он(accordion.php) возмется из шаблона
Записан
Slesh1irst
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #106 : 06.10.2010, 00:43:37 »

Вы тему попутали похоже. Перекрыть значит положить в шаблон (templates/твой_шаблон/html/mod_virtuemart_categories/) и он(accordion.php) возмется из шаблона
Вроде не попутал, прост сделал AJAX как вы предложили, мне очень понравилось, при этом мне не получается сделать модуль категорий как я хочу. Ктобы подсказал как это сделать, решение которое есть(Вот http://joomlaforum.ru/index.php/topic,109669.msg689038.html#msg689038
и http://joomlaforum.ru/index.php/topic,109669.msg711397.html#msg711397) у меня не работает... Кто бы помог Sad
Записан
bit
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 62


« Ответ #107 : 06.10.2010, 18:48:53 »

Пожалуйста помогите новичку! Сделал все как написали, пробовал менять category на main, все равно не помогает. Подскажите что не так? вот сайт http://cifro-bit.ru
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #108 : 06.10.2010, 18:51:54 »

...пробовал менять category на main, все равно не помогает...

Где вы взяли category? Где взяли main?
Укажите в параметрах модуля id списка - catalog. И используйте в коде как написано - #catalog.
Записан
bit
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 62


« Ответ #109 : 06.10.2010, 23:04:54 »

не category, а catalog, ошибся, вот по этому примеру брал
Corel, вставляешь всё как в первом топике сделал Даня. Потом заменяешь $$('#catalog a') на
$$('.menu a')
либо на свои стили меню категорий, у меня вот такие:
$$('#manufacturers a, #dopmenu a')

потом делаешь вот это:
http://joomlaforum.ru/index.php/topic,127055.msg716256.html#msg716256

и всё должно пахать!

Вставил все как в вашем первом посте, id в модуле прописал (в параметрах модуля в строке tag id написал catalog),  Все равно не пашет(
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #110 : 06.10.2010, 23:54:49 »

Нужно делать как описано в шапке темы. Файл XML.php в папке шаблона создать не забыл? В консоли браузера ошибки джаваскрипта есть?
Записан
bit
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 62


« Ответ #111 : 07.10.2010, 00:24:26 »

XML.php не забыл! а про ошибки можно подробнее, где смотреть?
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #112 : 07.10.2010, 00:32:25 »

Файрфокс - Инструменты->Консоль ошибок
Опера - Инструменты->Дополнительно->Консоль ошибок
Хром - Разработчикам -> Консоль javascript

Так же для Firefox рекомендую установить FireBug
Записан
bit
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 62


« Ответ #113 : 07.10.2010, 00:41:10 »

стоит FireBug. ошибки такие:

Ошибка: uncaught exception: [Exception... "Cannot modify properties of a WrappedNative"  nsresult: "0x80570034 (NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN)"  location: "JS frame :: chrome://global/content/bindings/autocomplete.xml :: onxblpopuphiding :: line 825"  data: no]

Ошибка: Fx.Scroll is not a constructor
Источник: http://www.cifro-bit.ru/templates/rt_mynxx_j15/js/rokutils.js
Строка: 12
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #114 : 07.10.2010, 00:57:55 »

исправляйте свои ошибки(ну первая какаято левая вобще) Wink
Записан
bit
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 62


« Ответ #115 : 07.10.2010, 12:34:20 »

Подскажите плз как исправить?
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #116 : 07.10.2010, 13:10:16 »

Ну дык ктож вам поможет разобраться в дебрях вашего шаблона.
Очевидно Fx.Scroll не объявлен в момент выполнения скрипта. А значит какойто файл не подключился или подключился но позже. Еще если там jQuery то эт ваще яденый пздц.
Записан
bit
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 62


« Ответ #117 : 07.10.2010, 13:23:02 »

Будем разбираться, спасибо за совет!
Записан
Slesh1irst
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #118 : 15.10.2010, 16:28:43 »

такая проблема:
у меня вывод товара идет в категории через browse_layouttable.tpl.php. Я хочу чтобы при клике на маленькое изображение товара открывалось большое изображение через лайтбокс. Впринцепе работает, только при первой загрузки каталога, как только мы переходим в другую категорию, скрипт лайтбокса перестает работать. Помогите починить данный баг.
вот мой browse_layouttable.tpl.php


   <script language="JavaScript" type="text/javascript" src="http://f58.regionpenza.ru/components/com_virtuemart/js/slimbox/js/slimbox.js"></script>
   <link type="text/css" rel="stylesheet" media="screen, projection" href="components/com_virtuemart/js/slimbox/css/slimbox.css" />

<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
mm_showMyFileName(__FILE__); ?>

<?php echo $buttons_header // The PDF, Email and Print buttons ?>
<?php echo $browsepage_header // The heading, the category description ?>
<?php echo $parameter_form // The Parameter search form ?>
<?php echo $orderby_form // The sort-by, order-by form PLUS top page navigation ?>

<?php
$data =array(); // Holds the rows of products
$i = 1; $row = 0; // Counters

// Table header
if(!empty($products)) {
$tableheader[] = $VM_LANG->_('PHPSHOP_CART_SKU');
$tableheader[] = $VM_LANG->_('PHPSHOP_CART_NAME');
$tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_MANUFACTURER');
$tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_PACKAGING');
$tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_BOX');
if( _SHOW_PRICES && $auth['show_prices'] ) {
   $tableheader[] = $VM_LANG->_('PHPSHOP_CART_PRICE');
}
$tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK');
$tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_THUMB_IMAGE');

if( _SHOW_PRICES && $auth['show_prices'] && USE_AS_CATALOGUE != '1' ) {
   $tableheader[] = $VM_LANG->_('PHPSHOP_CART_ACTION');
}
}

// Creates a new HTML_Table object that will help us
// to build a table holding all the products
$table = new HTML_Table('width="100%"');

$table->addRow( $tableheader, 'class="sectiontableheader"', 'th', true );

foreach( $products as $product ) {
      
      foreach( $product as $attr => $val ) {
         // Using this we make all the variables available in the template
         // translated example: $this->set( 'product_name', $product_name );
         $this->set( $attr, $val );
      }
         
      $data[$row][] = $product['product_sku'];
      $data[$row][] = $product['product_name'];

                $data[$row][] = $product['manufacturer_name'];
                $data[$row][] = $product['product_packaging'];
                $data[$row][] = $product['product_unit'];
                       
      if( _SHOW_PRICES && $auth['show_prices'] ) {
         $data[$row][] = $product['product_price'];
        if($product['product_in_stock'] >= 100){
         $data[$row][] = '<img src="../images/nal/100.jpg" />';
        }elseif($product['product_in_stock'] >= 75){
          $data[$row][] = '<img src="../images/nal/75.jpg" />';
        }elseif($product['product_in_stock'] >= 50){
         $data[$row][] = '<img src="../images/nal/50.jpg" />';
        }elseif($product['product_in_stock'] >= 25){
         $data[$row][] = '<img src="../images/nal/25.jpg" />';         
        }elseif($product['product_in_stock'] <= 25&&$product['product_in_stock'] > 0){
         $data[$row][] = '<img src="../images/nal/1.jpg" />';
        }else{
         $data[$row][] = '<img src="../images/nal/0.jpg" />';        }
        }
     
$data[$row][] = '<a href="'.$product['product_full_image'].'" rel="lightbox["'.$product['product_id'].'">'
. ps_product::image_tag( $product['product_thumb_image'], 'title="Нажми для увеличения" alt="'.$product['product_name'].'"')
. '</a>';
      if( $product['has_addtocart'] ) {
         $data[$row][] = $product['form_addtocart'];
      }
      else {
         $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'
                     .   $product['product_details']
                     .   '</a>';
      }

      $row++;
      
}


// Loop through each row and build the table
foreach($data as $key => $value) {
   
   $table->addRow( $data[$key], 'class="sectiontableentry'.$i.'"', 'td', true );
   $i = $i == 1 ? 2 : 1;
}
// Display the table
echo $table->toHtml();
?>

<br class="clr" /><br />
<?php echo $browsepage_footer ?>
<?php
// Show Featured Products
if( $this->get_cfg( 'showFeatured', 1 )) {
    /* featuredproducts(random, no_of_products,category_based) no_of_products 0 = all else numeric amount
    edit featuredproduct.tpl.php to edit layout */
    echo $ps_product->featuredProducts(true,10,true);
} ?>
<?php echo $recent_products ?>
Записан
danik.html
Практически профи
*******

Репутация: +305/-3
Offline Offline

Пол: Мужской
Сообщений: 2978



« Ответ #119 : 15.10.2010, 16:47:14 »

Ну это логично что так происходит. Слимбокс инициализируется только один раз. После подгрузки нужно заново инициализировать. Вызывайте функцию Slimbox.scanPage()  - должно помочь.
Записан
Slesh1irst
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #120 : 15.10.2010, 16:52:10 »

Ну это логично что так происходит. Слимбокс инициализируется только один раз. После подгрузки нужно заново инициализировать. Вызывайте функцию Slimbox.scanPage()  - должно помочь.
А где и как её вызывать? подскажите пожалуйста.
Записан
Страниц: 1 2 3 [4] 5 6   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet