Куда идем?

Как подсчитать программно количество товара и вывести на страницу?

Больше
11 года 7 мес. назад #5060 от zx16
Добрый вечер, уважаемые специалисты, как сделать подсчет товара в virtuemarte 2 и вывести все это, к примеру, на главную страницу? Ну вот просто нужно что бы на главной была яркая строка с надписью У НАС УЖЕ ... ТОВАРОВ!! спасибо всем заранее за ответ.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад - 11 года 7 мес. назад #5065 от Wedal
zx16, не знаю, есть ли готовая функция в VM2, но можно простейшим запросом в БД.
Code:
$db = JFactory::getDBO(); $query = "SELECT COUNT(*) FROM #__virtuemart_products"; $db->setQuery($query); $count = $db->loadResult(); echo $count;
Последнее редактирование: 11 года 7 мес. назад пользователем Wedal.
Спасибо сказали: zx16

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад - 11 года 7 мес. назад #5074 от zx16
Спасибо огромное!!! очень помогли! Сделал модуль по вашему коду, для joomla 2.5 . Прикрепил картинку, можете посмотреть на результат кому интересно!

И прикрепил модуль готовый , который можете установить себе! Установка стандартная, название mod_total.. Может и кривовато, но все работает))
Вложения:
Последнее редактирование: 11 года 7 мес. назад пользователем zx16.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад #5079 от Wedal
zx16, пожалуйста. А склонения слова "товаров" вы сделали? :-)

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад #5086 от zx16
Нет(( поменял на КОЛИЧЕСТВО ВЕЩЕЙ НА САЙТЕ УЖЕ ...! А не подскажете, как склонение сделать?

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад #5091 от Wedal

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад - 11 года 7 мес. назад #5100 от zx16
Code:
<?php function declOfNum($number, $titles) { $cases = array (2, 0, 1, 1, 1, 2); return $number." ".$titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ]; } defined('_JEXEC') or die('Direct Access to this location is not allowed.'); $db = JFactory::getDBO(); $query = "SELECT COUNT(*) FROM #__virtuemart_products"; $db->setQuery($query); $count = $db->loadResult(); echo 'На сайте уже '.declOfNum($count, array('товар!', 'товара!', 'товаров!')); ?>

Вот так, вродь всё работает, честно, я не очень разбираюсь в php, ну вот так вышло, только начал, так вот хотел спросить, правильно всё тут? Это ведь запрос к базе данных, а с ней шутки плохи)
Последнее редактирование: 11 года 7 мес. назад пользователем zx16.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад #5106 от Wedal
zx16, нормально, только строчка:
Code:
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
всегда ставится первой и запрещает прямой доступ к файлу.
Далее хорошо было бы предусмотреть кэширование, чтобы этот запрос не делался каждый раз для каждого пользователя. Но это уже другая история.

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад #5114 от zx16
ааа, да да, правильно, меня именно это функция смущала, вернее ее место положение.. А вот про кэширование, я делаю магазин, на разработку движка денег пожалел, ибо не заю как оно пойдет дальше, а если оно пойдет, и в день будет куча польователей, так они мне поставят на колени базу и сайт ?? Нужно нужно копаться и разбираться с кешированием, так как мне очень нужен это модуль по подсчету товара, он украшает сайт, прям как его и не хватало только)) Wedal, спасибо огромное за помощь!!

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.

Больше
11 года 7 мес. назад #5126 от zx16
Решил добавить кэширование, для этого изменил файл mod_total.php
Code:
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="2.5.0" method="upgrade"> <!-- Модуль вывода количества товара --> <name>mod_total</name> <version>0.0.1</version> <!-- Описание, не обязательно, по умолчанию использеуется имя модуля --> <description>Модуль считает количество товаров</description> <files> <filename module="mod_total">mod_total.php</filename> <filename>mod_total.xml</filename> <filename>index.html</filename> </files> <config> <fields name="params"> <fieldset name="advanced"> <field name="cache" type="list" default="0" label="Включить" description="Включение кэширования"> <option value="1">да</option> <option value="0">нет</option> </field> <field name="cache_time" type="text" default="900" label="Время жизни кэша" description="секунды" /> </fieldset> </fields> </config> </extension>
работает все после того как в джумле включаем кэширование, но понял скоро, что можно было и не редактировать файл xml, так как джумла кэширует всё) или опять я что то не так понял

Пожалуйста Войти или Зарегистрируйтесь, чтобы присоединиться к беседе.