Новости 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 Гость просматривают эту тему.
  • 14 Ответов
  • 2346 Просмотров
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
По аналогии с этой темой (спасибо, fsv), пытался добавить условие "product_parent_id=0", но видимо добавляю его не туда.
Подскажите кто сталкивался с этим модулем, в какие места добавить это условие?
P.S. добавлял его в это место
Код
$query = "SELECT a.*  "
     . " FROM #__vm_product a, #__vm_product_category_xref c"
     . " WHERE a.product_id=c.product_id"
          . " AND   c.category_id='" . $_GET["category_id"] . "'"
          . " AND   a.product_name LIKE '" . $keywordabc . "%'  "
          . $limit_enable;
Код модуля mod_vm_alphasearch_ml.php
Код
<?php
/**
* VM alpha-numeric search  -  version 3
* English and Russian letters now available !
*

* @copyright (C) 2010 copyrights Romik Jan
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2
*
*/


//only for DEBUG !
//error_reporting(E_ALL);

// Get module options
$show_rus_letters       = $params->get('show_rus_letters', '');
$show_ukr_letters       = $params->get('show_ukr_letters', '');
$show_eng_letters       = $params->get('show_eng_letters', '');
$show_numbers           = $params->get('show_numbers', '');
$set_def_keyword        = $params->get('set_def_keyword','');
$limit_enable           = $params->get('limit_enable','0');
$enable_anchor          = $params->get('enable_anchor', '');
$letters_color          = $params->get('letters_color', '');
$letters_bg_color       = $params->get('letters_bg_color', '');
$letters_font_size      = $params->get('letters_font_size', '');
$letters_font_family    = $params->get('letters_font_family', 'Courier New');
$letter_top_color       = $params->get('letter_top_color', '');
$letter_top_bg_color    = $params->get('letter_top_bg_color', '');
$letter_top_font_size   = $params->get('letter_top_font_size', '');
$product_link_color     = $params->get('product_link_color', '');
$product_link_bg_color  = $params->get('product_link_bg_color', 'white');
$product_link_font_size = $params->get('product_link_font_size', '');
$custom_style           = $params->get('custom_style', '');
?>

<style type="text/css">

#sidenav #navigation_header {
  margin: 0px;
}

#sidenav #navigation {
margin-left: 4px;
background: white;
}

.linksDiv .top_letter {
<?php if($letter_top_color != null) echo "  color: $letter_top_color; \n"?>
<?php if($letter_top_font_size != null) echo "  font-size: ".$letter_top_font_size."; \n"?>
<?php if($letter_top_bg_color != null) echo "  background-color: $letter_top_bg_color; \n"?>
  font-weight: bold;
  padding: 3px 0pt 3px 8px;
  margin-top: 10px;
}

.eng, .rus, .ukr, .num {
  padding: 0px;
  margin-bottom: 5px;
}

.num {
  text-align: center; }

#navigation_header .letter, #navigation_header .number {
<?php if($letters_color != null) echo "  color: $letters_color; \n"?>
<?php if($letters_font_size != null) echo "  font-size: ".$letters_font_size."; \n"?>
<?php echo "  font-family: ".$letters_font_family."; \n"?>
<?php if($letters_bg_color != null) echo "  background-color: $letters_bg_color; \n"?>
  font-weight: bold;
  border: 0px;
  margin: 1px;
  padding: 0px;
  padding-left:  3px;
  padding-right: 3px;
}

#navigation_header .letter:hover, #navigation_header .number:hover {
  text-decoration: none;
  background-color: white;
  margin: 0px;
  border: 1px solid <?php if($letters_color != null) echo "$letters_color; \n"; else echo "red; \n";?>
}

#navigation_header .clean {
  text-decoration: none;
}

#navigation_header .active {
  text-decoration: none;
  margin: 0px;
  border: 1px solid <?php if($letters_color != null) echo "$letters_color; \n"; else echo "red; \n";?>
}

#navigation_header .active:hover {
  text-decoration: none;
  background-color: transparent;
}

.product_found {
  position: relative;
  padding: 3px 5px 3px 8px;
  /*
  background: white none repeat scroll 0% 0%;
  */
<?php echo "  background-color: $product_link_bg_color; \n"?>
}

.product_found a.products {
<?php if($product_link_color != null) echo "  color: $product_link_color; \n"?>
<?php if($product_link_font_size != null) echo "  font-size: ".$product_link_font_size."; \n"?>
}


/* Custom CSS-style for alpha-numeric search module */
<?php if($custom_style != null) echo "$custom_style\n"?>

</style>
<div id="sidenav">
     <div id="navigation_header">


<!-- <div id="chooseProduct" class="smcopy" style="padding: 8px; font-weight: bold; color: rgb(103, 58, 105);"> -->
<?php

$anchor_label = 'vm_alphasearch_en_ru'; // this is anchor, where we will return, if this option is on
$num_link_label = '# (0-9)';  // this is label for link of number search


if ($limit_enable != 0) $limit_enable = " LIMIT $limit_enable";
else                    $limit_enable = null;

echo "<a nohref name='$anchor_label'></a>";

// We choose the default letter and don't search anything ...
if (isset($set_def_keyword) && $set_def_keyword != '0' && $_GET['keywordabc'] == null) {
  // Initialize array of letters. Not beautiful, but work very good !
  $alpabet_ru_en_ua = array (
                           // ... rus letters
                           "01_ru" => "А", "02_ru" => "Б", "03_ru" => "В", "04_ru" => "Г", "05_ru" => "Д", "06_ru" => "Е", "07_ru" => "Ж",
                           "08_ru" => "З", "09_ru" => "И", "10_ru" => "К", "11_ru" => "Л", "12_ru" => "М", "13_ru" => "Н", "14_ru" => "О",
                           "15_ru" => "П", "16_ru" => "Р", "17_ru" => "С", "18_ru" => "Т", "19_ru" => "У", "20_ru" => "Ф", "21_ru" => "Х",
                           "22_ru" => "Ц", "23_ru" => "Ч", "24_ru" => "Ш", "25_ru" => "Щ", "26_ru" => "Ъ", "27_ru" => "Ы", "28_ru" => "Ь",
                           "29_ru" => "Э", "30_ru" => "Ю", "31_ru" => "Я",
                           // ... ua letters
                           "01_ua" => "А", "02_ua" => "Б", "03_ua" => "В", "04_ua" => "Г", "05_ua" => "Д", "06_ua" => "Е", "07_ua" => "Є",
                           "08_ua" => "Ж", "09_ua" => "З", "10_ua" => "И", "11_ua" => "І", "12_ua" => "Ї", "13_ua" => "Й", "14_ua" => "К",
                           "15_ua" => "Л", "16_ua" => "М", "17_ua" => "Н", "18_ua" => "О", "19_ua" => "П", "20_ua" => "Р", "21_ua" => "С",
                           "22_ua" => "Т", "23_ua" => "У", "24_ua" => "Ф", "25_ua" => "Х", "26_ua" => "Ц", "27_ua" => "Ч", "28_ua" => "Ш",
                           "29_ua" => "Щ", "30_ua" => "Ю", "31_ua" => "Я",
                           // ... eng letters
                           "01_en" => "A", "02_en" => "B", "03_en" => "C", "04_en" => "D", "05_en" => "E", "06_en" => "F", "07_en" => "G",
                           "08_en" => "H", "09_en" => "I", "10_en" => "J", "11_en" => "K", "12_en" => "L", "13_en" => "M", "14_en" => "N",
                           "15_en" => "O", "16_en" => "P", "17_en" => "Q", "18_en" => "R", "19_en" => "S", "20_en" => "T", "21_en" => "U",
                           "22_en" => "V", "23_en" => "W", "24_en" => "X", "25_en" => "Y", "26_en" => "Z",
                            );

  foreach ($alpabet_ru_en_ua as $letters => $values) {
    if ($letters == $set_def_keyword) { $keywordabc = $alpabet_ru_en_ua[$letters]; break; }
  }
}// ... or get keyword for search
else $keywordabc = $_GET['keywordabc'];

// destroy this array. I'll be missing you :'(   But you don't need me any more :P
unset($alpabet_ru_en_ua);


function PrintLetters_EN_RU($alphabet, $enable_anchor, $anchor_label, $keywordabc) // BEGIN function PrintLetters_EN_RU
{
  switch ($alphabet) {
    case 'eng':
      $first_letter = "A";
      $last_letter  = "Z";
      break;
    case 'rus':
      $first_letter = "&#1040";
      $last_letter  = "&#1071";
      break;
    default:
      echo "I dont know what is language your using. David Blain, get out ! O_o";
    break;
  }

  echo "<div class='$alphabet'>";
  
  switch ($enable_anchor) {
    case 1 :
      $anchor_label = "#$anchor_label";
      $css_style = "anchor";
      break;
    default:
      $anchor_label = null;
      $css_style = "clean";
      break;
  }
  
  for($i=$first_letter;$i<=$last_letter;$i++) {
    if($keywordabc == $i)  echo "<a class='letter $css_style active' nohref>" . $i . "</a> ";
    else                   echo "<a class='letter $css_style' href='index.php?category_id=" . $_GET["category_id"] . "&keywordabc=" . $i . "$anchor_label'>" . $i . "</a> ";

    if($i == $last_letter) break; // print the last letter and get out of this circle
  }
  
  echo "</div>";

} // END function PrintLetters



function PrintLetters_UA($alphabet, $enable_anchor, $anchor_label, $keywordabc) // BEGIN function PrintLetters_UA
{
  $alphabet_ua = array (   "&#1040", "&#1041", "&#1042", "&#1043", "&#1044",
                           "&#1045", "&#1028", "&#1046", "&#1047", "&#1048",
                           "&#1030", "&#1031", "&#1049", "&#1050", "&#1051",
                           "&#1052", "&#1053", "&#1054", "&#1055", "&#1056",
                           "&#1057", "&#1058", "&#1059", "&#1060", "&#1061",
                           "&#1062", "&#1063", "&#1064", "&#1065", "&#1066",
                           "&#1070", "&#1071" );

  echo "<div class='$alphabet'>";
  switch ($enable_anchor) {
    case 1 :
      for($i=0;$i<count($alphabet_ua);$i++) {
       if($keywordabc == $alphabet_ua[$i])  { echo "<a class='letter anchor active' nohref>" . $alphabet_ua[$i] . "</a> "; }
        else                   { echo "<a class='letter anchor' href='index.php?category_id=" . $_GET["category_id"] . "&keywordabc=" . $alphabet_ua[$i] . "#$anchor_label'>" . $alphabet_ua[$i] . "</a> "; }
      }
      break;
    default:
      for($i=0;$i<count($alphabet_ua);$i++) {
       if($keywordabc == $alphabet_ua[$i])  { echo "<a class='letter clean active' nohref>" . $alphabet_ua[$i] . "</a> "; }
        else                   { echo "<a class='letter clean' href='index.php?category_id=" . $_GET["category_id"] . "&keywordabc=" . $alphabet_ua[$i] . "'>" . $alphabet_ua[$i] . "</a> "; }
      }
      break;
  }
  echo "</div>";

} // END function PrintLetters_UA



function PrintNumbers($enable_anchor, $anchor_label, $num_link_label, $keywordabc)
{
  echo "<div class='num'>";
  switch ($enable_anchor) {
    case 1 :
     if($keywordabc == "1")  { echo "<a class='number anchor active' href='index.php?category_id=" . $_GET["category_id"] . "&keywordabc=1#$anchor_label'>$num_link_label</a>"; }
      else                    { echo "<a class='number anchor' href='index.php?category_id=" . $_GET["category_id"] . "&keywordabc=1#$anchor_label'>$num_link_label</a>"; }
      break;
    default:
   if($keywordabc == "1")  { echo "<a class='number clean active' nohref>$num_link_label</a>"; }
      else                  { echo "<a class='number clean' href='index.php?category_id=" . $_GET["category_id"] . "&keywordabc=1'>$num_link_label</a>"; }
      break;
  }
  echo "</div>";
}

// Change the order of lines, if you want print a numbers at first ...
  if ($show_rus_letters == 1) PrintLetters_EN_RU("rus", $enable_anchor, $anchor_label, $keywordabc);
  if ($show_ukr_letters == 1) PrintLetters_UA("ukr", $enable_anchor, $anchor_label, $keywordabc);
  if ($show_eng_letters == 1) PrintLetters_EN_RU("eng", $enable_anchor, $anchor_label, $keywordabc);
  if ($show_numbers     == 1) PrintNumbers($enable_anchor, $anchor_label, $num_link_label, $keywordabc);


  $db =& JFactory::getDBO();
  if ($keywordabc != "") {
    if($keywordabc != "1") { // search a product, started on a LETTER
     if($_GET["category_id"] != "") { // we are in catalog of VM, in category now
     $query = "SELECT a.*  "
     . " FROM #__vm_product a, #__vm_product_category_xref c"
     . " WHERE a.product_id=c.product_id"
          . " AND   c.category_id='" . $_GET["category_id"] . "'"
          . " AND   a.product_name LIKE '" . $keywordabc . "%'  "
          . $limit_enable;
     } else {
     $query = "SELECT *  "
     . " FROM #__vm_product "
     . " WHERE  product_name LIKE '" . $keywordabc . "%'  "
     . $limit_enable;
   }
    }
    else {  // search a product, started on a NUMBER
     if($_GET["category_id"] != "") { // we are in catalog of VM, in category now
     $query = "SELECT a.*  "
     . " FROM #__vm_product a, #__vm_product_category_xref c"
     . " WHERE a.product_id=c.product_id"
        . " AND   c.category_id='" . $_GET["category_id"] . "'"
     . " AND   a.product_name REGEXP '[[:digit:]]'"
        . " AND ( a.product_name LIKE '6%'"
        . " OR a.product_name LIKE '7%'"
        . " OR a.product_name LIKE '8%'"
        . " OR a.product_name LIKE '9%'"
        . " OR a.product_name LIKE '0%'"
        . " OR a.product_name LIKE '1%'"
        . " OR a.product_name LIKE '2%'"
        . " OR a.product_name LIKE '3%'"
        . " OR a.product_name LIKE '4%'"
        . " OR a.product_name LIKE '5%' )"
        . $limit_enable;
     } else {
     $query = "SELECT a.*  "
     . " FROM #__vm_product a "
     . " WHERE  a.product_name REGEXP '[[:digit:]]'"
        . " AND ( a.product_name LIKE '6%'"
        . " OR a.product_name LIKE '7%'"
        . " OR a.product_name LIKE '8%'"
        . " OR a.product_name LIKE '9%'"
        . " OR a.product_name LIKE '0%'"
        . " OR a.product_name LIKE '1%'"
        . " OR a.product_name LIKE '2%'"
        . " OR a.product_name LIKE '3%'"
        . " OR a.product_name LIKE '4%'"
        . " OR a.product_name LIKE '5%' )"
        . $limit_enable;
     }

    }
  }
  else $hide_this=' style="display: none;"';

  $db->setQuery( $query );
  $product = $db->loadObjectList();

?>

 </div>
</div>
      <div id="navigation">
        <div id="A" class="linksDiv"<?php echo $hide_this; ?>>
           <div class="top_letter"><?php if ($keywordabc != "1") echo $keywordabc; else echo $num_link_label;?></div>
           <?php if ($product) foreach ($product as $row){?>
            <div class="product_found"><a class="products" href="index.php?page=shop.product_details&product_id=<?php echo $row->product_id?>&option=com_virtuemart&Itemid=71&keywordabc=<?php echo $keywordabc?>" target="_top"><?php echo $row->product_name?> </a></div>
           <?php }?>
      </div>
    </div>
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
попробуйте
Код
$query = "SELECT a.*  "
    . " FROM #__vm_product a, #__vm_product_category_xref c"
    . " WHERE a.product_id=c.product_id"
          . " AND   c.category_id='" . $_GET["category_id"] . "'"
          . " AND   a.product_name LIKE '" . $keywordabc . "%'  "
          . " AND   a.product_parent_id='0' "
          . $limit_enable;
только там 4 запроса.
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Сделал вот так:
Спойлер
[свернуть]
Но модуль перестал работать  :(
« Последнее редактирование: 15.12.2012, 20:25:02 от fsv »
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
Во втором запросе у таблицы нет псевдонима, а вы написали. Т.е. для второго запроса
 . " AND   a.product_parent_id='0' "
замените на
 . " AND   product_parent_id='0' "

Зачем в 4-м запросе псевдоним, я не понял. Но раз есть, легче в одной строке дописать его, чем все править. Так что тут не трогайте.
Попробуйте сейчас.

У меня нет полигона с дочерними, и с модулем этим не работал. Поэтому просто в phpMyAdmin протестировал первый запрос, заменив переменные константами. Работает.
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Спасибо, работает!  ^-^ +1
Есть у меня ещё одна проблема с этим модулем, можете помочь за вознаграждение (200WMR)?
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
Лучше создайте тему со своей проблемой.
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Так проблема с этим же модулем, а название данной темы позволит собирать в ней все о данном модуле или создать новую?
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
Так проблема с этим же модулем, а название данной темы позволит собирать в ней все о данном модуле или создать новую?
Ваша тема. На ваше усмотрение.
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Ваша тема. На ваше усмотрение.
Ок, тогда опишу проблему здесь, надеюсь ещё кому-нибудь поможет.

Проблема в следующем:
При использовании модуля с  главной страницы (выбираем любую букву, затем товар), все хорошо, но стоит выбрать какой либо товара, любой раздел сайта или раздел интернет-магазина, то модуль перестает работать (букву позволяет нажать, но перечень товаров пустой). Вот такая беда.
Если интересно, магазин в подписи, модуль "Алфавитный указатель".
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
Проблема в следующем:
При использовании модуля с  главной страницы (выбираем любую букву, затем товар), все хорошо, но стоит выбрать какой либо товара, любой раздел сайта или раздел интернет-магазина, то модуль перестает работать (букву позволяет нажать, но перечень товаров пустой).

Посмотрел. Все работает так, как в коде прописано.
Когда на главной или на др.странице сайта, условие $_GET["category_id"] != "" не выполняется, идет выборка по всем товарам магазина, и вы их видите. Когда на странице товара, $_GET["category_id"] != "" и идет выборка товара только из этой категории. Если вы в товаре категории "Lacost" и нажмете "L", то увидите товары, если ЛЮБУЮ другую букву (а вероятность этого более 96%), то ничего и не увидите. Также ничего не увидите, если находитесь в категории, в которой нет товара, а есть только подкатегории.
Если необходима другая схема вывода, надо переписывать запросы (как минимум, весь код просто не смотрел).
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
Посмотрел. Все работает так, как в коде прописано.
Когда на главной или на др.странице сайта, условие $_GET["category_id"] != "" не выполняется, идет выборка по всем товарам магазина, и вы их видите. Когда на странице товара, $_GET["category_id"] != "" и идет выборка товара только из этой категории. Если вы в товаре категории "Lacost" и нажмете "L", то увидите товары, если ЛЮБУЮ другую букву (а вероятность этого более 96%), то ничего и не увидите. Также ничего не увидите, если находитесь в категории, в которой нет товара, а есть только подкатегории.
Если необходима другая схема вывода, надо переписывать запросы (как минимум, весь код просто не смотрел).
Хотелось бы, чтобы когда нажимаешь ну букву, выводились все товары (на любой странице или разделе сайта), когда выбрал конкретный товар, то выводились бы все товары из этой категории, но когда снова наживаешь на букву, снова выводятся все товары.
Подскажите, пожалуйста, такие запросы возможны? Ведь как понимаю, обычно так работает алфавитный указатель?
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
когда выбрал конкретный товар, то выводились бы все товары из этой категории
этого не понял.

А если всегда все товары, то вместо
Код
if($keywordabc != "1") { // search a product, started on a LETTER
    if($_GET["category_id"] != "") { // we are in catalog of VM, in category now
    $query = "SELECT a.*  "
    . " FROM #__vm_product a, #__vm_product_category_xref c"
    . " WHERE a.product_id=c.product_id"
          . " AND   c.category_id='" . $_GET["category_id"] . "'"
          . " AND   a.product_name LIKE '" . $keywordabc . "%'  "
          . $limit_enable;
    } else {
    $query = "SELECT *  "
    . " FROM #__vm_product "
    . " WHERE  product_name LIKE '" . $keywordabc . "%'  "
    . $limit_enable;
  }
    }
попробуйте
Код
if($keywordabc != "1") { // search a product, started on a LETTER
    $query = "SELECT *  "
    . " FROM #__vm_product "
    . " WHERE  product_name LIKE '" . $keywordabc . "%'  "
                      . " AND   product_parent_id='0' "
    . $limit_enable;
    }
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
этого не понял.
Немного запутанно написал, имел ввиду, когда например выбираем букву "A", затем товар на эту букву "Armand Basi in blue мужской", то в модуле выводятся только товары из категории: мужская парфюмерия -> Armand Basi, нажимаем снова на любую букву и снова выводятся все товары на заданную букву (весь мужской и женский парфюм на выбранную букву).
Т.е. когда выбираем букву выводятся все товары, когда выбираем товар, в модуле выводятся только товары из категории выбранного товара.
Или это сложно сделать?

А если всегда все товары, то вместо
Код
if($keywordabc != "1") { // search a product, started on a LETTER
     if($_GET["category_id"] != "") { // we are in catalog of VM, in category now
     $query = "SELECT a.*  "
     . " FROM #__vm_product a, #__vm_product_category_xref c"
     . " WHERE a.product_id=c.product_id"
          . " AND   c.category_id='" . $_GET["category_id"] . "'"
          . " AND   a.product_name LIKE '" . $keywordabc . "%'  "
          . $limit_enable;
     } else {
     $query = "SELECT *  "
     . " FROM #__vm_product "
     . " WHERE  product_name LIKE '" . $keywordabc . "%'  "
     . $limit_enable;
   }
    }
попробуйте
Код
if($keywordabc != "1") { // search a product, started on a LETTER
     $query = "SELECT *  "
     . " FROM #__vm_product "
     . " WHERE  product_name LIKE '" . $keywordabc . "%'  "
                      . " AND   product_parent_id='0' "
     . $limit_enable;
    }


Изменил, просто белый экран.
« Последнее редактирование: 17.12.2012, 00:23:38 от faraon_x »
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
*

fsv

  • Moderator
  • 2785
  • 413 / 2
1. Белый экран.
а) какую ошибку выводит при этом?
б) попробуйте еще раз, аккуратно. Как вариант, "}" где-то лишнюю оставили/удалили.
в) если б) не получилось, дайте код файла с вашим измнением

2. "Хотелки".
Сейчас вы хотите разные варианты вывода при существующем одном заданном в запросе условии. Надо менять логику.
Веб-разработка: заказ. Только новая разработка.
*

faraon_x

  • Захожу иногда
  • 362
  • 27 / 1
  • Чем смогу, тем помогу )))
1. Белый экран.
а) какую ошибку выводит при этом?
б) попробуйте еще раз, аккуратно. Как вариант, "}" где-то лишнюю оставили/удалили.
в) если б) не получилось, дайте код файла с вашим измнением

2. "Хотелки".
Сейчас вы хотите разные варианты вывода при существующем одном заданном в запросе условии. Надо менять логику.



Извините, все работает по первому варианту. Вы были правы, лишнюю скобку удалял.  ^-^

А по поводу "менять логику" - это не только надо менять сам запрос?
Мне просто кажется удобным, чтобы когда пользователь смотрит товар, то видел весь список товаров только из данной категории.
Если будет время помочь, вот окончательный вариант файла с вашей правкой.
Спойлер
[свернуть]
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль авторизации пользователей убрать лишнее

Автор pautina

Ответов: 22
Просмотров: 12126
Последний ответ 20.01.2018, 06:08:46
от ElenaD
Модуль «VirtueMart Товары» вывод товаров по рейтингу

Автор myrka

Ответов: 0
Просмотров: 1558
Последний ответ 10.01.2017, 17:09:22
от myrka
Доработка стандартного поиска Joomla под VirtueMart

Автор mike_jag

Ответов: 38
Просмотров: 23355
Последний ответ 04.06.2016, 23:55:19
от SolopoV
Модуль или плагин для VirtueMart

Автор Stasweb

Ответов: 0
Просмотров: 1253
Последний ответ 18.02.2015, 06:43:52
от Stasweb
Меню для VirtueMart, модуль "Accordion Menu - Offlajn.com" правка

Автор silversunrise

Ответов: 3
Просмотров: 5563
Последний ответ 07.02.2015, 09:13:29
от Stasweb