Новости Joomla

Astroid обновился до версии 3.3.7!

Astroid обновился до версии 3.3.7!

Astroid — это мощный фреймворк для дизайнеров и разработчиков, позволяющий создавать адаптивные, быстрые и надежные веб-сайты и шаблоны на базе Joomla.

Главное в новой версии:

-   Исправлена загрузка файлов макетов

В предыдущем крупном релизе Astroid 3.3.6 были сделаны важные улучшения:

Основные моменты:

  • Улучшенный UI/UX в ключевых областях конфигурации
  • Повышенная стабильность и согласованность в Layout Builder и Form Builder
  • Исправления ошибок на основе отзывов сообщества
  • Улучшенная обработка визуальных эффектов, границ и шрифтов

Улучшения:

  • Обновленный UX Layout Builder
  • Улучшенный эффект предзагрузчика
  • Улучшенный стиль границ
  • Улучшенный UI/UX вкладки «Layout» в Template Options

Исправления ошибок:

  • Решены проблемы с некорректными динамическими значениями
  • Исправлен Color Transform при прокрутке
  • Устранены проблемы с работой Form Builder в Article Layout и Module Layout Builder
  • Исправлена проблема с созданием ненужных временных файлов при обработке шрифтов

Скачать: https://github.com/templaza/astroid-framework/releases/tag/v3.3.7

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 1631 Просмотров
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Вот нарыл где-то усовершенствованный код модуля топ 10 и попробовал в нем сделать выборку по данной категории (беру её из строки методом гет). А вот как выбрать по производителю, если находишься на странице manufacturer_id? Я так понимаю, нужно добавить в выборку производителя, но не получается ввиду начальных познаний php. Вобщем, нужна помощь.
Сам код модуля:
Код
//тут, как обычно, всякие require

$ps_product = new ps_product;
// change the number of items you wanna haved listed via module parameters
$num_topsellers = $params->get ('num_topsellers', 10);
$category = $_GET["category_id"];

$list  = "SELECT p.product_id, p.product_sales as sales, p.product_parent_id, d.product_price, p.product_thumb_image, p.product_name, c.category_id, c.category_flypage ";
$list .= "FROM #__{vm}_product p, #__{vm}_product_price d, #__{vm}_product_category_xref pc, #__{vm}_category c WHERE ";
$q = "p.product_publish='Y' AND ";
$q .= "pc.product_id = p.product_id AND ";
$q .= "p.product_id = d.product_id AND ";
$q .= "pc.category_id = $category AND ";
$q .= "p.product_sales > 0 ";
$q .= "GROUP BY p.product_id ";
$q .= "ORDER BY sales DESC, p.product_name ";
$list .= $q . " LIMIT 0, $num_topsellers ";
$db = new ps_DB;
$db->query($list);
$tt_item=0;
$i = 0;
?>
<div class="top_ten_products">
<?php
while ($db->next_record()) {
if ($i == 0) {
$i += 1;
}
else {
$i -= 1;
}
if( !$db->f('category_flypage') ) {
$flypage = ps_product::get_flypage( $db->f('product_id'));
}
else {
$flypage = $db->f('category_flypage');
}
$tt_item++;
$pid = $db->f("product_parent_id")? $db->f("product_parent_id") : $db->f("product_id");
$pricedisplay = $ps_product->show_price($db->f("product_id"));
?>
<div class="top_ten_product">
<a title="<?php echo $db->p("product_name"); ?>" href="<?php  $sess->purl(URL . "index.php?page=shop.product_details&amp;flypage=$flypage&amp;product_id=" . $pid . "&amp;category_id=" . $db->f("category_id"))?>"><img src="components/com_virtuemart/shop_image/product/<?php $db->p("product_thumb_image");?>" border="0" /></a><br />
<strong><?php echo $db->p("product_name"); ?></strong>
<div class="top_ten_price"><?php echo $pricedisplay; ?></div>
<a title="<?php echo $db->p("product_name"); ?>" href="<?php  $sess->purl(URL . "index.php?page=shop.product_details&amp;flypage=$flypage&amp;product_id=" . $pid . "&amp;category_id=" . $db->f("category_id"))?>">+ Product Details</a>
</div>
<?php
} ?>
</div>
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
да, но там потом условие дописать можно будет наверное. Если в $_GET категория - вытягивать по категории. Если производитель - то по нему.
Или нет?
По производителю пока не удалось никак,- не хватает знаний по запросам.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Да, только 2 разных запроса делать не смешивать.
Код
$manufacturer = $_GET["manufacturer_id"];

$list  = "SELECT p.product_id, p.product_sales as sales, p.product_parent_id, d.product_price, p.product_thumb_image, p.product_name, c.manufacturer_id, c.mf_name ";
$list .= "FROM #__{vm}_product p, #__{vm}_product_price d, #__{vm}_product_mf_xref pc, #__{vm}_manufacturer c WHERE ";
$q = "p.product_publish='Y' AND ";
$q .= "pc.product_id = p.product_id AND ";
$q .= "p.product_id = d.product_id AND ";
$q .= "pc.manufacturer_id = c.manufacturer_id AND ";
$q .= "pc.manufacturer_id = $manufacturer AND ";
$q .= "p.product_sales > 0 ";
$q .= "GROUP BY p.product_id ";
$q .= "ORDER BY sales DESC, p.product_name ";
$list .= $q . " LIMIT 0, $num_topsellers ";
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
beagler, отлично, работает. Как подкорректирую код на условие "категория - производитель", - выложу здесь для осмотра на всякий. С меня+!
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Вобщем, в итоге получился вот такой код модуля:
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );

global $mosConfig_absolute_path, $sess;
  // Load the VirtueMart main parse code
  if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}
require_once(CLASSPATH.'ps_product.php');
$ps_product = new ps_product;

// change the number of items you wanna haved listed via module parameters
$num_topsellers = $params->get ('num_topsellers', 10);
$category = $_GET["category_id"];
$manufacturer = $_GET["manufacturer_id"];

if (!empty ($category)) {
$list  = "SELECT p.product_id, p.product_sales as sales, p.product_parent_id, p.product_thumb_image, p.product_name,
d.product_price,
c.category_id, c.category_flypage ";

$list .= "FROM #__{vm}_product p, #__{vm}_product_price d,
#__{vm}_product_category_xref pc, #__{vm}_category c WHERE ";

$q = "p.product_publish='Y' AND ";
$q .= "pc.product_id = p.product_id AND ";
$q .= "p.product_id = d.product_id AND ";

$q .= "pc.category_id = $category AND ";

$q .= "p.product_sales > 0 ";
$q .= "GROUP BY p.product_id ";
$q .= "ORDER BY sales DESC, p.product_name ";
$list .= $q . " LIMIT 0, $num_topsellers ";
}
elseif (!empty ($manufacturer)) {
$list  = "SELECT p.product_id, p.product_sales as sales, p.product_parent_id, p.product_thumb_image, p.product_name,
d.product_price,
c.manufacturer_id, c.mf_name ";

$list .= "FROM #__{vm}_product p, #__{vm}_product_price d,
#__{vm}_product_mf_xref pc, #__{vm}_manufacturer c WHERE ";

$q = "p.product_publish='Y' AND ";
$q .= "pc.product_id = p.product_id AND ";
$q .= "p.product_id = d.product_id AND ";

$q .= "pc.manufacturer_id = c.manufacturer_id AND ";
$q .= "pc.manufacturer_id = $manufacturer AND ";

$q .= "p.product_sales > 0 ";
$q .= "GROUP BY p.product_id ";
$q .= "ORDER BY sales DESC, p.product_name ";
$list .= $q . " LIMIT 0, $num_topsellers ";
}
else {
$list  = "SELECT p.product_id, p.product_sales as sales, p.product_parent_id, p.product_thumb_image, p.product_name,
d.product_price,
c.category_id, c.category_flypage ";

$list .= "FROM #__{vm}_product p, #__{vm}_product_price d,
#__{vm}_product_category_xref pc, #__{vm}_category c WHERE ";

$q = "p.product_publish='Y' AND ";
$q .= "pc.product_id = p.product_id AND ";
$q .= "p.product_id = d.product_id AND ";

$q .= "pc.category_id = c.category_id AND ";

$q .= "p.product_sales > 0 ";
$q .= "GROUP BY p.product_id ";
$q .= "ORDER BY sales DESC, p.product_name ";
$list .= $q . " LIMIT 0, $num_topsellers ";
}

$db = new ps_DB;
$db->query($list);
$tt_item=0;
$i = 0;
?>
<div class="top_ten_products">
<?php
while ($db->next_record()) {
if ($i == 0) {
$i += 1;
}
else {
$i -= 1;
}
if( !$db->f('category_flypage') ) {
$flypage = ps_product::get_flypage( $db->f('product_id'));
}
else {
$flypage = $db->f('category_flypage');
}
$tt_item++;
$pid = $db->f("product_parent_id")? $db->f("product_parent_id") : $db->f("product_id");
$pricedisplay = $ps_product->show_price($db->f("product_id"));
?>
<div class="top_ten_product">
<a title="<?php echo $db->p("product_name"); ?>" href="<?php  $sess->purl(URL . "index.php?page=shop.product_details&amp;flypage=$flypage&amp;product_id=" . $pid . "&amp;category_id=" . $db->f("category_id"))?>"><img src="components/com_virtuemart/shop_image/product/<?php $db->p("product_thumb_image");?>" border="0" /></a><br />
<strong><?php echo $db->p("product_name"); ?></strong>
<div class="top_ten_price"><?php echo $pricedisplay; ?></div>
<a title="<?php echo $db->p("product_name"); ?>" href="<?php  $sess->purl(URL . "index.php?page=shop.product_details&amp;flypage=$flypage&amp;product_id=" . $pid . "&amp;category_id=" . $db->f("category_id"))?>">+ Product Details</a>
</div>
<?php
} ?>
</div>
Если пользователь на главной или еще где, - показывает топ продаваемых из всех товаров. Если на странице категории - топ из этой категории. Если переходим на страницу товаров производителя - топ товаров этого производителя  из разных категорий.

Если можно как-то оптимизировать код, - было бы не плохо.
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Еще в одном моменте нужна помощь. Получается, если товары в подкатегории, а в самой родительской нету, то на странице родительской товары не выводятся. Как в запросе к родительской можно подвязать товары из подкатегорий?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужно вывести случайные товары на главную Joomla

Автор manowar

Ответов: 3
Просмотров: 6341
Последний ответ 13.12.2016, 12:41:12
от vitaliypoli
Описание категории опустить под товары

Автор angelo4ek-001

Ответов: 5
Просмотров: 2365
Последний ответ 12.11.2015, 01:53:39
от fsv
Убрать Недавно просмотренные товары

Автор newjey

Ответов: 48
Просмотров: 34552
Последний ответ 02.12.2013, 17:27:56
от Goofa
Недавно просмотренные товары в горизонтальном виде с картинками

Автор ranaza

Ответов: 5
Просмотров: 2369
Последний ответ 24.10.2013, 14:25:50
от navruz.abdurahmon
Как вывести все товары на странице категории?

Автор xilgiz

Ответов: 1
Просмотров: 1413
Последний ответ 05.04.2013, 15:27:11
от smesharic