Форум русской поддержки Joomla!® CMS
08.12.2016, 13:55:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6 7 8   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] Прайс-лист Excel - модуль автоформирова

 (Прочитано 29695 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Tuzemec
Давно я тут
****

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

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


Ня!


« : 31.05.2012, 09:59:39 »

Вашему вниманию представляю модуль формирования прайс-листа в формате xls для MS Office Excel, OpenOffice.
Описание:
Модуль формирует список всего товара имеющегося на сайте, разбивая на категории и подкатегории.
Работает на Joomla! 1.6 - 2.5 и VirtueMart 2.0.x
Отображает только опубликованный товар без учета наличия на складе.
Не отображает пустые категории и подкатегории
Обновленная версия от T-rain в архиве под названием "mod_price - version T-rain.zip" Пользуемся, говорим "Спасибо T-rain", модернизируем...  Cheesy
Обновленная версия от Exciter в архиве под названием "mod_price - ver. Exciter.zip"
Изменения:
  • Появилась масса настроек стиля отображения таблицы
  • Добавлена возможность SEF-ссылок на товар
  • Реализовано большее количество строк для шапки и подвала, с возможностью выбора местоположения
Пользуемся, говорим "Спасибо Exciter", модернизируем...  Cheesy
Обновленная версия от Tuzemec в архиве под названием "mod_price.1.1.7.zip"
Изменения:
  • Появилась возможность ввода символа валюты
  • Расширена возможность выбора отображаемых колонок
  • Мелкие доработки в запросах
Примечание: Для включения кнопки "Обновить каталог" раскомментируйте 109 строку в файле mod_price.php
Пользуемся, говорим "Спасибо Tuzemec", модернизируем...  Cheesy

Вышла новая версия модуля "Генератор прайса Excel 2.0". Посмотреть его в действии можно здесь
Теперь стало возможным выгрузка фотографий товара и получение полностью валидного сформированного прайса.

[вложение удалено Администратором]
Но по секрету скажу, что на 6-ой странице Вы найдете уже НЕкоммерческую версию генератора
« Последнее редактирование: 18.09.2014, 00:26:23 от Tuzemec » Записан
 
Skiminok
Осваиваюсь на форуме
***

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

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


Всё что ни делается, всё к лучшему!


« Ответ #1 : 04.07.2012, 13:08:22 »

а как вместо тг. сделать руб. ?
Записан
.more
Новичок
*

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

Сообщений: 3


« Ответ #2 : 05.07.2012, 09:10:45 »

в helper.php
строка 65 и\или 88
Записан
SDKiller
Dev Team
******

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

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


...ergo sum


« Ответ #3 : 05.07.2012, 10:44:16 »

Жестоко. Зациклить в 3 уровня sql-запросы.

А с другой стороны - если вложенность категорий будет глубже?
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #4 : 06.07.2012, 17:29:21 »

Я скачал посмотреть неделю назад.
Забавная штука.

Как раз всю прошедшую неделю забавлялся переделкой генератора.
Спасибо автору за модуль.
Теперь я знаю куда больше про XML, SQL и эксель.

Чего переделал:
Сделал неограниченную глубину вложенности каталога.
Теперь в прайс попадают только активные товары.
В экселевском файле шапка зафиксирована и не прокручивается.
Оформление формируется стилями CSS (чтобы облегчить файл).
Размеры шрифта, которым отображаются категории, зависит от глубины вложенности (на каждый левел свой стиль).
Ссылки на каждый товар, само собой, работают (хотя без них прайс в 2 раза легче).
Вкладка экселевского листа (та, что внизу окна) называется "Прайс-лист от 06.07.12". Дата, само собой, берётся на момент генерации прайса.
Ещё сделана группировка категорий, та, которая раскрывается/сворачивается + и -.

Помимо самого прайса сделал приблуду, которая деактивирует категории без активных товаров (ну и попутно категории с неактивными дочерними категориями)

Собственно сам модуль нужен только непосредственно после обновления каталога с помощью CSVI 4.
Параметры такие: Joomla 2.5.4, VirtueMart 2.0.6, товаров ~14000, категорий ~1600, время причёсывания каталога 12 секунд, время генерации самого прайса 14 секунд, конечный файл весит 4.2 метра, десятым офисом открывается без проблем (под него и затачивалось). А вот с ОпенОфисом засадки. Если напрямую открыть скачанный прайс, то похерятся все стили, заданные CSS. Всёж-таки это HTML-таблица, а не родной формат экселя. Но! Если пересохранить из экселя, то тогда всё нормально откроется и ОпенОфисом.

Классная штука получилась, опять же низкий поклон автору первоначального модуля.
« Последнее редактирование: 06.07.2012, 17:42:04 от T-rain » Записан
Tuzemec
Давно я тут
****

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

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


Ня!


« Ответ #5 : 07.07.2012, 12:33:54 »

Собственно сам модуль нужен только непосредственно после обновления каталога с помощью CSVI 4.
Параметры такие: Joomla 2.5.4, VirtueMart 2.0.6, товаров ~14000, категорий ~1600, время причёсывания каталога 12 секунд, время генерации самого прайса 14 секунд, конечный файл весит 4.2 метра, десятым офисом открывается без проблем (под него и затачивалось). А вот с ОпенОфисом засадки. Если напрямую открыть скачанный прайс, то похерятся все стили, заданные CSS. Всёж-таки это HTML-таблица, а не родной формат экселя. Но! Если пересохранить из экселя, то тогда всё нормально откроется и ОпенОфисом.
Я на линухе работаю и у меня стоит 3 версии офиса. OpenOffice, MS Office и LibreOffice. Так вот последний устанавливается у пользователей ubuntu по-умолчанию и в нем вообще отказывается подобные доки открывать. Не понимает он кода на котором микросовтовый и отрытый офис работает. Странно конечно. В принципе пофиг на него. У меня вот мысля появилась с такой вещью как:
1. Автовставка адреса каталога ВМ на сайте.
2. Автовставка валюты.
3. Управление отображаемыми колонками в админке.
Если 1 и 3 ещё более менее просто решить, то вот с 2 пунктом заморочка в том, что у многих стоит мультивалютность в магазинах. Вопрос приходит в том какую валюту вставить и как пересчитать цену, чтоб всё выглядело корректно.

Помимо самого прайса сделал приблуду, которая деактивирует категории без активных товаров (ну и попутно категории с неактивными дочерними категориями)
А вот эту функцию пришлось отключить. Что-то на хосте ругается... мол не верный параметр передается файлу подключения к базе. В общем в топку, и без нее отлично. Пусть манагеры работают качественно и следят за товаром! =))) Хотя вещь нужная, но возможно из-за разницы в ВМ всё происходит. Я обновил на днях ВМ с 2.0.6 до 2.0.8а

Кстати, T-rain, чего на форуме-то  проапгрейдиной версии нет? Может выложить народу на обозрение? Глядишь, еще чего прикрутят и из модуля в компонент перерастет... =))
« Последнее редактирование: 07.07.2012, 12:36:59 от Tuzemec » Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #6 : 07.07.2012, 12:54:05 »

Так вроде сыровата программулька.
Да и слишком много зашито в код, настроек маловато. Но это потому, что прайс моему заказчику нужен конкретный, с определёнными полями. Кроме всего прочего, поле product_s_desc пришлось использовать под артикул производителя, помимо 1Совского sku.
А так да, есть смысл делать её более гибкой. Была у меня такая мысль, но не стал перегружать сильно код.

Кстати, обновиться у меня не получилось с указанных версий.
Joomla вообще завалилась - пропали стили, а VirtueMart слишком сильно модифицирован у меня - даже не стал пробовать. Сижу теперь и плакаю ))

Код выложу чуть попозже, как перечитаю, да подправлю комментарии.

Up: сейчас залил на боевой сайт. Время исполнения обоих скриптов по 2 с небольшим секунды.
« Последнее редактирование: 07.07.2012, 13:47:26 от T-rain » Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #7 : 07.07.2012, 13:56:43 »

то вот с 2 пунктом заморочка в том, что у многих стоит мультивалютность в магазинах. Вопрос приходит в том какую валюту вставить и как пересчитать цену, чтоб всё выглядело корректно.
А вот это как раз просто. Указать массивом используемые валюты, запустить в цикле перебора валют функцию формирования прайса с параметром $valuta (его подставить, где надо, в самом прайсе) и потом один раз запустить с использованием всех валют. После чего спокойно генерим и выводим ссылки на все прайсы.
Скажем, при использовании тг. и руб. получатся прайсы price_TG.xls, price_RUB.xls  и price_TG_RUB.xls. Серверу не больше 10 секунд пахать, а потенциальным покупателям приятно выбрать прайс с нужной валютой.

Курс обмена, по идее можно брать с какого-нибудь РБК.
« Последнее редактирование: 07.07.2012, 17:06:17 от T-rain » Записан
Tuzemec
Давно я тут
****

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

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


Ня!


« Ответ #8 : 09.07.2012, 13:00:48 »

Указать массивом используемые валюты, запустить в цикле перебора валют функцию формирования прайса с параметром $valuta (его подставить, где надо, в самом прайсе) и потом один раз запустить с использованием всех валют.
Вот это как раз у меня в голове еще не проработалось... знаний маловато всё же...
В файле helper.php  в функции Recurse есть ошибочки:
1. В строке 193 обращение к не объявленной переменной $c.
2. В строке 192 "Объект класса StdClass не может быть преобразован в целое число".
Решение:
1. Объявляем в начале функции Recurse переменную $c
Код:
function Recurse ($cat, $a, $url){
$c = '';
$prod = QueryProd($cat);
2. Ставим дополнительный знак "="
Было
Код:
if ($cat != 0) $url .= $cat->slug.'/';
Стало
Код:
if ($cat !== 0) $url .= $cat->slug.'/';
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #9 : 09.07.2012, 13:10:07 »

Собственно, объявление когда-то было, но однажды я его по всяким причинам заремал, и сработало без него, потому и убрал впоследствии.
Хотя конечно, грамотнее поставить.

Что до второго знака "=", то скажу, что я старый сишник, и пользуюсь синтаксисом С++. Но, конечно же учту и это. Спасибо за поправки.
Сейчас занимаюсь наведением порядка и повышением удобочитаемости. Да и хочу заменить в строке вывода названия категории плюсики на названия родительских категорий.
Чуть дальше по времени скину откорректированную версию модуля.
« Последнее редактирование: 09.07.2012, 13:15:17 от T-rain » Записан
Tuzemec
Давно я тут
****

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

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


Ня!


« Ответ #10 : 09.07.2012, 13:52:35 »

Да и хочу заменить в строке вывода названия категории плюсики на названия родительских категорий.
А что с плюсиками не так? По мне так они там в самый раз.
Еще в функциях ResetAndUpdate и Update нужно заменить переменную
Код:
$Pro = $db->loadObjectList();
Она некорректно срабатывает и тоже ошибку выдает. Заменить ее на исполнение запроса (Query - используется для исполнения запроса, не возвращающего никаких данных. Например, вставки или удаления строк из таблицы по некоторому условию.)
Итог
Код:
Было:
$Pro = $db->loadObjectList();

Стало:
$db->Query();
А в остальном всё работает как часы! Roll Eyes
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #11 : 09.07.2012, 14:00:19 »

Я вот как раз эту тему рыл и нашёл такое же решение. А то чё-то стрёмно делать никому не нужную выгрузку, если просто нужно исполнить запрос.

Про плюсики. Сейчас я их заремал, но хочу вывести в настройки в админке ввод символа уровня. И если символ не введён, то по умолчанию выдавать названия родительских категорий.
Записан
Duke_r
Захожу иногда
**

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

Сообщений: 10


« Ответ #12 : 26.07.2012, 00:54:11 »

 Angry

Завидую белой завистью пользователям новой Joomla и виртуемарта ((

А как быть с версией Joomla 1.5 и VirtueMart 1.1.9 ?
Может кто поможет и повторит, создаст модуль для этой связки?
Думаю пользователей работающих на 1.5 с 1.1.9   еще очень много и все они будут очень благодарны!
 Roll Eyes

Заранее спасибо!  drink
Записан
Exciter
Осваиваюсь на форуме
***

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

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


Теория + практика


« Ответ #13 : 27.07.2012, 11:48:56 »

Народ, для общего блага, предлагаю выложить код в общий доступ.
Я например без проблем разбираюсь и в SQL и в PHP и в остальном. Мог бы внести свою лепту в разработку. Да и кроме меня найдутся люди.
Но хочется чтобы в модуле присутствовали мысли и других людей. Писать свою версию на основе выложенного модуля, это значить родить новую версию этого модуля, которая не факто что будет жить.
Давайте объединим усилия и совместно сделаем достойный модуль?
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #14 : 27.07.2012, 17:26:59 »

Дайте доделать затравку для гибкого модуля, ибо слишком много зашито в код. Я сейчас раскурочил код, как соберу обратно - выложу для дальнейшей доработки всеми желающими. Для монстров SQL тоже уже есть задание. Даже 2 )))
Немного терпения. Вопрос нескольких дней.
Записан
Tuzemec
Давно я тут
****

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

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


Ня!


« Ответ #15 : 28.07.2012, 13:21:56 »

Народ, для общего блага, предлагаю выложить код в общий доступ.
Я например без проблем разбираюсь и в SQL и в PHP и в остальном. Мог бы внести свою лепту в разработку. Да и кроме меня найдутся люди.
Но хочется чтобы в модуле присутствовали мысли и других людей. Писать свою версию на основе выложенного модуля, это значить родить новую версию этого модуля, которая не факто что будет жить.
Давайте объединим усилия и совместно сделаем достойный модуль?

Модуль от T-rain
Но всё же, думаю, стоит дождаться когда он сам выложит свое решение.
Записан
Tuzemec
Давно я тут
****

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

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


Ня!


« Ответ #16 : 28.07.2012, 13:27:34 »

Angry

Завидую белой завистью пользователям новой Joomla и виртуемарта ((

А как быть с версией Joomla 1.5 и VirtueMart 1.1.9 ?
Может кто поможет и повторит, создаст модуль для этой связки?

А я думаю, ето еще один повод перейти на новую версию движка...
Записан
Exciter
Осваиваюсь на форуме
***

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

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


Теория + практика


« Ответ #17 : 31.07.2012, 17:08:36 »

T-rain
Есть еще вопрос.
Прайс в этом варианте возможен только скачиваемый или есть возможность сделать вывод не в файл а сразу на страницу?
Думаю можно в админке ввести параметр - куда выводить содержимое прайса.
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #18 : 31.07.2012, 17:14:04 »

В коде, если видел, формируется простая HTML-таблица. В конце формирования можно сохранять не в xls, а в HTML, txt, png - да вообще как угодно. Можешь даже в базу писать, как текстовку конкретного материала Joomla. Идея, кстати.

Просто у меня выходит порядка 4,5 мегабайта табличка, так что о выводе как страницы не думал, если честно. Тяжеловата получается.

Про параметр позже подумаем, я сегодня валидацию web-цветов вроде закончил, да шеф пораньше с работы погнал, так что несколько моментов недоделаны остались.
Записан
Dmitriy99
Новичок
*

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

Сообщений: 1


« Ответ #19 : 31.07.2012, 17:19:58 »

Ув. знатоки, подскажите пожалуйста, почему у меня не получается сделать сортировку товаров по артикулу (модуль прайса от Tuzemec). Код следующий:

$query = "SELECT a.virtuemart_product_id, b.product_name, b.slug, c.product_price, d.product_sku ";
$query .= "FROM #__virtuemart_product_categories AS a, #__virtuemart_products_ru_ru AS b, #__virtuemart_product_prices AS c, #__virtuemart_products AS d ";
$query .= "WHERE a.virtuemart_category_id = ".$docher->virtuemart_category_id." AND b.virtuemart_product_id = a.virtuemart_product_id AND b.virtuemart_product_id = c.virtuemart_product_id AND b.virtuemart_product_id = d.virtuemart_product_id";
$query .= "ORDER BY d.product_sku ASC";

Ни то, что по артикулу, сортировку товаров вообще ни по какому параметру не удается выполнить, названия товаров просто не выводятся при запросе $query .= "ORDER BY ..."
Собственных знаний не хватает, может кто-нибудь подскажет, где у меня в коде ошибка?
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #20 : 31.07.2012, 17:26:01 »

А вот кстати была у меня такая проблема - хотел по аналогии с сортировкой каталогов сделать, но что-то не пошло. Проблему так и оставил пока открытой.
обращался к другу - программеру под SQL, но он сидит под Oracle и мне с моим MySQL подсказать не может.
Вообще надо глянуть, как хранится результат запроса. Если это просто массив, то можно воспользоваться штатной сортировкой php.
Записан
Tuzemec
Давно я тут
****

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

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


Ня!


« Ответ #21 : 02.08.2012, 21:35:25 »

Обновленный генератор прайса от T-rain.
Пользуемся, говорим "Спасибо" и модернизируем  Cheesy

[вложение удалено Администратором]
Записан
Exciter
Осваиваюсь на форуме
***

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

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


Теория + практика


« Ответ #22 : 07.08.2012, 23:47:58 »

После клика "Сформировать прайс" получаю
Warning: Missing argument 5 for Recurse(), called in /..a.ru/modules/mod_price/helper.php on line 133 and defined in /..a.ru/modules/mod_price/helper.php on line 169

В строке 133 дописать $way
Код:
$html .= Recurse (0, 0, $url, $pam, $way);

И после клика "Обновить каталог" в магазине отключаются все категории без товаров. На мой взгляд это не дело. Приходится включать их, т.к. описание категории есть и они нужны на сайте для ссылочной массы.
« Последнее редактирование: 07.08.2012, 23:52:10 от Exciter » Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #23 : 07.08.2012, 23:51:45 »

Какой капризный у тебя, оказывается, PHP ))))
Хорошо, поправлю.
Кстати, $way тогда нужно инициализировать по-хорошему.
Перед этой строкой дай ему значение.
Типа $way = '';
Или даже можно попробовать вставить эту конструкцию в вызов:
Код:
$html .= Recurse (0, 0, $url, $pam, $way='');
А то мож у кого тоже ругнётся.

У меня, кстати, все небрежности на удивление гладко проходили.

А вот с "Обновить каталог" - это, похоже, на любителя.
Можно как-то попытаться склеить...  ну типа вызывать её только на этапе построения прайса, скажем.
Но тогда проблема в следующем: прайс формируется, обходя каталог сверху, а "Обновить каталог" обходит снизу дерева категорий.

Можно строить некую виртуальную или временную таблицу...  но я не знаю как (((

Кстати, как у тебя тогда показываются пустые категории? Просто без товара? Конкретно у меня этого нельзя допускать - ибо человек, решивший купить, к примеру, шампунь просто не увидит товара в оконечной категории. Развернётся и уйдёт обиженный.

А поисковики вроде на карту сайта xml-ную должны реагировать лучше, чем на обходы пауков. По крайней мере, яндексвебмастеру и Google я успешно скормил карту сайта.

Итак, если есть идеи, как склеить обе функции, излагай.
« Последнее редактирование: 08.08.2012, 00:07:36 от T-rain » Записан
Exciter
Осваиваюсь на форуме
***

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

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


Теория + практика


« Ответ #24 : 07.08.2012, 23:56:32 »

Добавил строкой выше
Код:
$way = '';

Гложет один давнишний вопрос.
Вывод делается только в CSV файл или можно както сразу на сайт вывод сделать? Т.е. прайс сразу на странице?

А вот кстати была у меня такая проблема - хотел по аналогии с сортировкой каталогов сделать, но что-то не пошло. Проблему так и оставил пока открытой.
Где делается запрос (файл строка) и что нужно получить?

Можешь даже в базу писать, как текстовку конкретного материала Joomla. Идея, кстати.

Просто у меня выходит порядка 4,5 мегабайта табличка, так что о выводе как страницы не думал, если честно. Тяжеловата получается.
Идея отличная. А про вес в 4.5 метра, так это не вес на современных хостингах. Сервера нужны чтобы пахать. Врят лим поперёк горла встанет переварить 5 метров инфы. ))

Можно как-то попытаться склеить...  ну типа вызывать её только на этапе построения прайса, скажем.
Но тогда проблема в следующем: прайс формируется, обходя каталог сверху, а "Обновить каталог" обходит снизу дерева категорий.

Можно строить некую виртуальную или временную таблицу...  но я не знаю как (((

Кстати, как у тебя тогда показываются пустые категории? Просто без товара?

А поисковики вроде на карту сайта xml-ную должны реагировать лучше, чем на обходы пауков. По крайней мере, яндексвебмастеру и Google я успешно скормил карту сайта.
Вообще формирование прайса должно проходить каждый раз при запуске модуля. Только так будем иметь всегда свежий прайс.
Временную таблицу не сделать, можно результат просто скинуть в массив и работать с ним.
Категории выводятся без товара, но это на этапе заполнения магазина. Тут не критично выводить пустые категории, т.к. посетители уже видят будущий примерный ассортимент товаров в магазине.
По поводы XML карты. Им важно иметь код ответа 200 для страницы. )) Если по карте есть ответы 200, то этот контент попадёт в индекс. А откуда пришла ссылка от паука или от карты вопрос второй.
Итак?
« Последнее редактирование: 08.08.2012, 00:16:57 от Exciter » Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #25 : 08.08.2012, 00:09:21 »

В коде, если видел, формируется простая HTML-таблица. В конце формирования можно сохранять не в xls, а в HTML, txt, png - да вообще как угодно. Можешь даже в базу писать, как текстовку конкретного материала Joomla. Идея, кстати.
Просто у меня выходит порядка 4,5 мегабайта табличка, так что о выводе как страницы не думал, если честно. Тяжеловата получается.
Ты уже задавал подобный вопрос, и я на него отвечал )))
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #26 : 08.08.2012, 00:14:56 »

А про вес в 4.5 метра, так это не вес на современных хостингах. Сервера нужны чтобы пахать. Врят лим поперёк горла встанет переварить 5 метров инфы. ))

Тут проблема как раз не в сервере, а в браузере.
Представь, как будет выглядеть вывод такой таблички (у меня уже она, кстати, занимает 6,5 метра) при лагающем инете. Точнее, сколько это будет занимать времени.
Что-то около 15000+ строк.

Для небольшого прайса наверняка прокатит.
Ну вот, кстати, тебе идею даю: переделай шапку из экселевской в HTMLную, сохраняй, как обычно, а потом вызывай в любом месте сайта, как фрейм.


Что до запросов:
Код:
$db = JFactory::getDBO();
$query = "SELECT a.virtuemart_category_id, a.virtuemart_product_id, b.product_sku, b.product_packaging, c.product_name, c.slug, c.product_s_desc ";
$query .= "FROM #__virtuemart_product_categories AS a, #__virtuemart_products AS b, #__virtuemart_products_ru_ru AS c ";
$query .= "WHERE a.virtuemart_category_id = ".($cat ? $cat->virtuemart_category_id : '0')." ";
$query .= "  AND b.virtuemart_product_id = a.virtuemart_product_id AND b.published = '1' ";
$query .= "  AND b.published = '1' ";
$query .= "  AND c.virtuemart_product_id = a.virtuemart_product_id ";
$db->setQuery($query);
$ProdList = $db->loadObjectList();
Вот в этой хреновине не получается сделать сортировку.
Хотя вот эта отлично отрабатывает:
Код:
$db = JFactory::getDBO();
$query = "SELECT a.virtuemart_category_id, a.category_name, a.slug ";
$query .= "FROM #__virtuemart_categories_ru_ru AS a, #__virtuemart_categories AS b, #__virtuemart_category_categories AS c ";
$query .= "WHERE a.virtuemart_category_id = b.virtuemart_category_id AND b.virtuemart_category_id = c.id AND b.published = '1' AND c.category_parent_id = ".($cat ? $cat->virtuemart_category_id :'0')." ";
$query .= "ORDER BY a.category_name ASC"; // Сортировка дочерних каталогов по алфавиту (А->Я).
$db->setQuery($query);
$DochCatList = $db->loadObjectList();
Вроде всё по аналогии делал, но не срабатывает ((
« Последнее редактирование: 08.08.2012, 00:20:49 от T-rain » Записан
Exciter
Осваиваюсь на форуме
***

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

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


Теория + практика


« Ответ #27 : 08.08.2012, 00:25:35 »

Ну вот, кстати, тебе идею даю: переделай шапку из экселевской в HTMLную, сохраняй, как обычно, а потом вызывай в любом месте сайта, как фрейм.

Там если выводить на страницу, то части HTML кода вообще не нужно.

Если выводить в чистый законченный HTML, то шапка будет такой
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru" dir="ltr" >

Но если для вывода на страницу, то эти директивы не нужны. А также head и meta. Body естественно тоже.

Строка
Код:
$query .= "  AND b.published = '1' ";
там не лишняя случайно?
Записан
T-rain
Осваиваюсь на форуме
***

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

Сообщений: 29


« Ответ #28 : 08.08.2012, 00:27:58 »

Ну тогда всё ещё проще.
Вышли готовый HTML-прайс, я тогда гляну, что конкретно нужно вырезать и в админке добавлю возможность выбора формата вывода.

Да, действительно лишняя. Это я в предыдущей строке не выпилил.
Код:
$query .= "  AND b.published = '1' ";
Всё равно на днях собирался сделать выбор колонок для вывода в прайсе, тогда бы и наткнулся точно.
Но за внимательность благодарен. )))
« Последнее редактирование: 08.08.2012, 00:31:56 от T-rain » Записан
Exciter
Осваиваюсь на форуме
***

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

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


Теория + практика


« Ответ #29 : 08.08.2012, 00:38:58 »

А что сортировать?
Сделал запрос в базу. Он выводит список товаров в конкретной категории. Например
Код:
WHERE a.virtuemart_category_id =41

Что сортировать? Запрос выводит их также магазин при сортировке по ID

Добавил в запрос
Код:
order by c.product_name
всё отсортировалось по имени. Не понимаю может я что то?
« Последнее редактирование: 08.08.2012, 00:48:32 от Exciter » Записан
Страниц: [1] 2 3 4 5 6 7 8   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | 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