Новости Joomla

Как тестировать 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

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

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

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Вывод товаров
« : 23.09.2010, 13:20:18 »
Есть список id(из vm_product) товаров, которые (товары) просто надо все вывести, в виде списка категории. как мне надо организовать id, чтоб я мог их отобразить? И как их отобразить?
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #2 : 23.09.2010, 13:28:45 »
А как сделать это в коде? К примеру есть масcив arr_pr[] в нем через любой разделитель id товаров, как я могу их вывести?
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #4 : 23.09.2010, 13:31:23 »
Я делаю выборку из базы по параметру, создаю массив, в него вношу каждый id что отвечает условию. потом мне надо эти товары вывести. Все это пишу на php
« Последнее редактирование: 23.09.2010, 13:35:54 от fire86 »
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #6 : 23.09.2010, 14:09:43 »
спасибо. Добавьте плз пример


*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #8 : 23.09.2010, 14:22:54 »
как можно использовать функцию, хотя бы с 1 id, или массивом. Я конечно обязательно открою и посмотрю, тока с телефона неудобно))) тк с него сижу
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Вывод товаров
« Ответ #9 : 23.09.2010, 14:31:31 »
Единственный нюанс - этой функции требуется не id, а product_sku

Код
require_once (CLASSPATH."ps_product.php");
$ps_product = new ps_product;
$ps_product->product_snapshot($product_sku);
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #10 : 23.09.2010, 15:05:09 »
спасибо)
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #11 : 23.09.2010, 18:43:05 »
Написал свой мини фильтр по параметрам

<?php

$session =& JFactory::getSession();
$c_width = $session->get('width');
$session =& JFactory::getSession();
$c_height = $session->get('height');
$session =& JFactory::getSession();
$c_diametr = $session->get('diametr');
$session =& JFactory::getSession();
$c_season = $session->get('season');

// указываем параметры для подключения к MySQL
$host='localhost'; // имя хоста
$database='radialki_ice'; // имя базы данных
$user='radialki_ice'; // заданное вами имя пользователя
$pswd='ice2580'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");

define("db_prefix","");

$res = mysql_query('SELECT * FROM jos_vm_product');

for ( $product_id="0"; $i<="10000"; $i++)
 {  $es1=mysql_query('SELECT * FROM  jos_vm_product WHERE product_id="'.(int)$product_id.'"');
      $ow1 = mysql_fetch_array($es1);
      $product_width = $ow1['product_width'];
      $product_height = $ow1['product_height'];
      $product_length = $ow1['product_length'];
      $product_s_desc = $ow1['product_s_desc'];
      $product_sku = $ow1['product_sku'];
      if ($c_width != "0") {if ($product_width == $c_width) {$y1="1";} else {$y1="0";};} else {$y1="1";}
  if ($c_height != "0") {if ($product_height == $c_height) {$y2="1";} else {$y2="0";};} else {$y2="1";}
  if ($c_diametr != "0") {if ($product_length == $c_diametr) {$y3="1";} else {$y3="0";};} else {$y3="1";}
  if ($c_season != "0") {if ($product_s_desc == $c_season) {$y4="1";} else {$y4="0";};} else {$y4="1";}
  $y5 = $y1+$y2+$y3+$y4;
  if ($y5 == "4") {
  require_once( CLASSPATH . 'ps_product.php');
   $ps_product = new ps_product;
   $ps_product->product_snapshot($product_sku);}
  unset($y5);
 }
?>

В итоге получил:

Warning: require_once(CLASSPATHps_product.php) [function.require-once]: failed to open stream: No such file or directory in /public_html/components/com_php/files/mod_to on line 39

Fatal error: require_once() [function.require]: Failed opening required 'CLASSPATHps_product.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /public_html/components/com_php/files/mod_to on line 39

как это можно починить? Помогите
« Последнее редактирование: 23.09.2010, 19:07:25 от fire86 »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Вывод товаров
« Ответ #12 : 23.09.2010, 21:14:30 »
в таком контексте у тебя нет переменной CLASSPATH - пропиши полный путь.
возможно require_once тоже не сработает - попробуй просто include
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Re: Вывод товаров
« Ответ #14 : 23.09.2010, 21:16:58 »
используй нативные средства доступа к базе (например $db= new ps_db) - прописывание пароля это жесть
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #15 : 23.09.2010, 21:22:20 »
используй нативные средства доступа к базе (например $db= new ps_db) - прописывание пароля это жесть
Не спорю. Поменяю, как разберусь с выводом. Сейчас попробую разобраться и найти как загружается окружение
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #16 : 24.09.2010, 11:45:53 »
Не получается, не могу понять как. Подскажите что можно почитать, чтобы разобратся, или посоветуйте что необходимо прописать, ночь провозился и не понял.
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #18 : 24.09.2010, 11:56:56 »
Не могу понять как подгрузить окружение, пересмотрел модули там есть общее

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' );
}

Подумал оно, попробывал, не получилось, тоже самое но для virtuemart_parser. Потом искал что еще общее и не нашел. Пробывал менять пути - не помогло. Спрашивал Google, тот ничего об загрузке\подгрузке и тд не знает. 
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #20 : 24.09.2010, 12:03:02 »
С ней, с виртом, при помощи модуля PHP pages
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #21 : 24.09.2010, 12:13:57 »
Я так понял, если ответа нет, то собака тут зарыта, сейчас буду искать
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #23 : 24.09.2010, 12:19:46 »
Делает из ПХП что-то типа статьи и выводит, как пункт меню. Конечно могу все поменять, только посоветуйте как. Коротко суть: Форма и обработчик, 2 PHP файла, 1 заполняет форму передает 2рому, тот выводит товары по заданным параметрам. Делаю уже 4 дня, не могу сделать. Посоветуйте что-нибуть
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #25 : 24.09.2010, 12:31:16 »
вот форма, если коротко, то выбирает из селетка 4 переменных, заносит их в сесию. Возможно передачу переделать на пост, конечно, но тк я пользовался модкулем PHP pages, то сделал через сесию. Обработчик читает глобальные ищет по ним в БД, что подошло, то выводит


<table border="0" cellspacing="0" cellpadding="0" width="98%">
<tbody>
<tr>
<td><br />
<?php
$session =& JFactory::getSession();
$c_wigth = $session->get('width');
$session =& JFactory::getSession();
$c_height = $session->get('height');
$session =& JFactory::getSession();
$c_diametr = $session->get('diametr');
$session =& JFactory::getSession();
$c_season = $session->get('season');



?>

<form method="post" id="frm">
<table border="0" cellspacing="5" cellpadding="0">
<tbody>
<tr>
<td width="100" bgcolor="#ececec">
<p style="margin:5px;"><strong>Ширина</strong></p>
</td>
<td width="100" bgcolor="#ececec">
<p style="margin:5px;"><strong>Высота</strong></p>
</td>
<td width="100" bgcolor="#ececec">
<p style="margin:5px;"><strong>Диаметр</strong></p>
</td>
<td width="100" bgcolor="#ececec">
<p style="margin:5px;"><strong>Лето</strong></p>
</td>
<td width="100" bgcolor="#ececec">
<p style="margin:5px;"><strong>Зима</strong></p>
</td>
<td width="100" bgcolor="#ececec">
<p style="margin:5px;"><strong>Всеcезонные</strong></p>
</td>
<td rowspan="2" valign="middle" bgcolor="#ececec">
<p style="margin:5px;">


<input name="search_tyre" type="submit" value="Выбрать" /></p>
</td>
</tr>
<tr>
<td>
<p>
<?php if ($c_wigth != NULL) {$c110 = $c_wigth;} else {$c110="Выберите";}?>
<select name="wigth">
<?php echo "<option  value='0'>". $c110 . "</option>";?>
 <option value="6.5">6.5</option>
 <option value="7">7</option>
 <option value="7.5">7.5</option>
 <option value="30">30</option>
  <option value="31">31</option> <option value="32">32</option> <option value="33">33</option> <option value="35">35</option> <option value="37">37</option> <option value="120">120</option> <option value="135">135</option> <option value="145">145</option> <option value="155">155</option> <option value="160">160</option> <option value="165">165</option> <option value="175">175</option> <option value="185">185</option> <option value="195">195</option> <option value="205">205</option> <option value="215">215</option> <option value="225">225</option> <option value="235">235</option> <option value="245">245</option> <option value="255">255</option> <option value="265">265</option> <option value="275">275</option> <option value="285">285</option> <option value="295">295</option> <option value="305">305</option> <option value="315">315</option> <option value="325">325</option> </select></p>
</td>
<td>
<p>
<?php if ($c_height != NULL) {$c111 = $c_height;} else {$c111="Выберите";}?>
<select name="height">
<?php echo "<option  value='0'>". $c111 . "</option>";?>
<option value="9.5">9.5</option> <option value="10.5">10.5</option> <option value="11.5">11.5</option> <option value="12.5">12.5</option> <option value="25">25</option> <option value="30">30</option> <option value="35">35</option> <option value="40">40</option> <option value="45">45</option> <option value="50">50</option> <option value="55">55</option> <option value="60">60</option> <option value="65">65</option> <option value="70">70</option> <option value="75">75</option> <option value="80">80</option> <option value="85">85</option> <option value="90">90</option> </select></p>
</td>
<td>
<p>
<?php if ($c_diametr != NULL) {$c112 = $c_diametr;} else {$c112="Выберите";}?>
<select name="diametr">
<?php echo "<option  value='0'>". $c112 . "</option>";?>

<option value="R12">12</option> <option value="R13">13</option> <option value="R14">14</option> <option value="R15">15</option> <option value="R16">16</option> <option value="R17">17</option> <option value="R18">18</option> <option value="R19">19</option> <option value="R20">20</option> <option value="R21">21</option> <option value="R22">22</option> <option value="R24">24</option> </select></p>
</td>
<td>
<p><input name="season" type="radio" value="1" <?php if ($c_season == "1") {echo "checked='checked'"; } ?> /></p>
</td>
<td>
<p><input name="season" type="radio" value="2" <?php if ($c_season == "2") {echo "checked='checked'";}?> /></p>
</td>
<td>
<p><input name="season" type="radio" value="3" <?php if ($c_season == "3") {echo "checked='checked'";}?> /></p>
</td>
</tr>
</tbody>
</table>
</form>
<form method="post" id="frm1">
<input style="display:none;" name="wigth" type="radio" value="0" checked="checked" />
<input style="display:none;" name="height" type="radio" value="0" checked="checked"  />
<input style="display:none;" name="diametr" type="radio" value="0" checked="checked"  />
<input style="display:none;" name="season" type="radio" value="<?php echo NULL ?>" checked="checked" />
<input name="search_tyre" type="submit" value="Сбросить" />
</form>

<?php
$wigth = $_POST['wigth'];$height = $_POST['height'];$diametr = $_POST['diametr'];$season = $_POST['season'];


$session =& JFactory::getSession();
$session->set( 'width', $wigth );
$session =& JFactory::getSession();
$session->set( 'height', $height );
$session =& JFactory::getSession();
$session->set( 'diametr', $diametr );
$session =& JFactory::getSession();
$session->set( 'season', $season );
?>

 <br /><br /></td>
</tr>
</tbody>
</table>

Вот обработчик,

<?php

$session =& JFactory::getSession();
$c_width = $session->get('width');
$session =& JFactory::getSession();
$c_height = $session->get('height');
$session =& JFactory::getSession();
$c_diametr = $session->get('diametr');
$session =& JFactory::getSession();
$c_season = $session->get('season');

// указываем параметры для подключения к MySQL
$host='localhost'; // имя хоста
$database='radialki_ice'; // имя базы данных
$user='radialki_ice'; // заданное вами имя пользователя
$pswd='ice2580'; // заданный вами пароль
// подключаемся к MySQL
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");

define("db_prefix","");

$res = mysql_query('SELECT * FROM jos_vm_product');

for ( $product_id="0"; $i<="10000"; $i++)
 {  $es1=mysql_query('SELECT * FROM  jos_vm_product WHERE product_id="'.(int)$product_id.'"');
      $ow1 = mysql_fetch_array($es1);
      $product_width = $ow1['product_width'];
      $product_height = $ow1['product_height'];
      $product_length = $ow1['product_length'];
      $product_s_desc = $ow1['product_s_desc'];
      $product_sku = $ow1['product_sku'];
      if ($c_width != "0") {if ($product_width == $c_width) {$y1="1";} else {$y1="0";};} else {$y1="1";}
  if ($c_height != "0") {if ($product_height == $c_height) {$y2="1";} else {$y2="0";};} else {$y2="1";}
  if ($c_diametr != "0") {if ($product_length == $c_diametr) {$y3="1";} else {$y3="0";};} else {$y3="1";}
  if ($c_season != "0") {if ($product_s_desc == $c_season) {$y4="1";} else {$y4="0";};} else {$y4="1";}
  $y5 = $y1+$y2+$y3+$y4; echo $$y5;
  if ($y5 == "4") {
  require_once( CLASSPATH . '/../../components/com_virtuemart/classes/ps_product.php');
   $ps_product = new ps_product;
   $ps_product->product_snapshot($product_sku);}
  unset($y5);
 }
?>
« Последнее редактирование: 24.09.2010, 12:34:17 от fire86 »
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #27 : 24.09.2010, 12:37:43 »
не могу вывести товары по заданным параметрам, именно вывести.
 Warning: require_once(CLASSPATHps_product.php) [function.require-once]: failed to open stream: No such file or directory in /public_html/components/com_php/files/mod_to on line 39

Fatal error: require_once() [function.require]: Failed opening required 'CLASSPATHps_product.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /public_html/components/com_php/files/mod_to on line 39
Гложет мысля, что подход неправильный. ЧТо модуль PHP pages ваще не нужен, а можно как-то сделать красиво, но как не знаю, и что еще хуже, не знаю, откуда надо копать и куда..
*

fire86

  • Захожу иногда
  • 54
  • 0 / 0
Re: Вывод товаров
« Ответ #29 : 24.09.2010, 12:41:09 »
Тю. наверно пропустил, счас поправлю, гляну, что выдет отпишусь
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart 1.1.8 - Наличие: Есть (по умолчанию) + Наличие: ZZZ (бр

Автор Nessy74

Ответов: 6
Просмотров: 2849
Последний ответ 22.01.2016, 13:24:17
от AzMandius
Мод Статистика для VirtueMart 1.0.x

Автор sveneld

Ответов: 13
Просмотров: 5545
Последний ответ 20.07.2015, 20:42:25
от sveneld
VirtueMart 1.1.8 - при клике на Категорию Товара всегда от

Автор Nessy74

Ответов: 6
Просмотров: 2077
Последний ответ 12.12.2014, 16:00:36
от Nessy74
Изображение наличия товара в зависимости

Автор Aleks_El_Dia

Ответов: 2
Просмотров: 1653
Последний ответ 13.03.2014, 04:58:54
от Aleks_El_Dia
Выпадающий список со всеми товарами [Полн

Автор murat

Ответов: 29
Просмотров: 9042
Последний ответ 30.09.2013, 10:09:38
от be.maxi