Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #расширения

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

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Всем доброго дня, вопрос в следующем. Есть VirtueMart, есть модуль mod_virtuemart ( отображает категории) и есть модуль mod_virtuemart_manufacturers ( отображает список произвидителей). В установках этого модуля есть функция автоматического определения производителей в зависимости от выбранной категории. Допустим, в модуле категорий мы кликнули на *Сотовые телефоны*. В модуле производителей в выпадающем списке появились только те производители, которые относятся к сотовым телефонам. Вроде все классно и замечательно. Но! Если выбрать производителя и, попав на страницу с товарами, опять раскрыть список производителей - то там выпадают все производители какие есть в магазине. Внизу код, который отвечает за выбор производителя в зависимости от выбранной категории. Посмотрите ГУРУ, мож подскажете как сделать.
Заранее спасибо!
Код
<?php

if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );



* NOTE: THIS MODULE REQUIRES THE VirtueMart COMPONENT!

/*

* @version $Id: mod_virtuemart_manufacturers.php 1767 2009-05-11 20:13:36Z soeren_nb $

* @package VirtueMart

* @subpackage modules

*

* @copyright (C) 2004-2007 Soeren Eberhardt

* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL

* VirtueMart is Free Software.

* VirtueMart comes with absolute no warranty.

*

* www.virtuemart.net

*/



global $mosConfig_absolute_path, $sess, $VM_LANG;

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

}

$category_id = vmRequest::getInt('category_id');

$text_before = $params->get( 'text_before', '');

$show_dropdown = $params->get( 'show_dropdown', 1);

$show_linklist = $params->get( 'show_linklist', 1);

$auto = $params->get( 'auto', 0);



$sess = new ps_session;





$query  = "SELECT DISTINCT m.manufacturer_id, m.mf_name

FROM #__{vm}_manufacturer m

LEFT JOIN #__{vm}_product_mf_xref mx ON mx.manufacturer_id = m.manufacturer_id

LEFT JOIN #__{vm}_product p ON p.product_id = mx.product_id

LEFT JOIN #__{vm}_product_category_xref cx ON cx.product_id = p.product_id

WHERE cx.category_id =".(int)$category_id;

$query .= " ORDER BY m.mf_name ASC";



$query_all  = "SELECT m.manufacturer_id,m.mf_name FROM #__{vm}_manufacturer m ";

$query_all .= "ORDER BY m.mf_name ASC";



$db = new ps_DB;

if ($auto == 1 && !empty( $category_id ) ) {

$db->query( $query );

} else {

$db->query( $query_all );

}

$res = $db->record;

if( empty( $res )) {

if( $auto == 1 ) {

$db->query( $query_all );

$res = $db->record;

} else {

echo 'No manufacturers defined!';

return;

}

}

?>

<?php if( $show_linklist == 1 ) { ?>

  <!--BEGIN manufacturer DropDown List -->

<?php echo $text_before ?><br />     

        <?php foreach( $res as $manufacturer) { ?>

            <div><a href="<?php echo $sess->url( URL."index.php?option=com_virtuemart&page=shop.browse&manufacturer_id=". $manufacturer->manufacturer_id )?>">

                    <?php echo $manufacturer->mf_name; ?>

                    </a>

            </div>

        <?php } ?>



<?php

}

if( $show_dropdown == 1 ) { ?>

  <div>

  <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="vm_manufacturer">

        <br/>

        <select class="inputbox" name="manufacturer_id" onchange="document.vm_manufacturer.submit()">

            <option value=""><?php echo $VM_LANG->_('PHPSHOP_SELECT')?></option>

        <?php 

        foreach ($res as $manufacturer) {

                $selected = '';

                if( @$_REQUEST['manufacturer_id'] == $manufacturer->manufacturer_id ) {

                        $selected = 'selected="selected"';     

                }

                echo "<option value=\"".$manufacturer->manufacturer_id ."\" $selected>". $manufacturer->mf_name ."</option>\n";



        }

        ?>

        </select>

    <br />

      <input class="button" type="submit" name="manufacturerSearch" value="<?php echo $VM_LANG->_('PHPSHOP_SEARCH_TITLE')?>" />

    <input type="hidden" name="option" value="com_virtuemart" />

    <input type="hidden" name="page" value="shop.browse" />

    <input type="hidden" name="Itemid" value="<?php echo $sess->getShopItemid()?>" />

      </form>

  </div>

<?php

}

?>
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
И еще есть один момент: если в выбранной категории выбрать производителя, после перехода на страницу товаров этого производителя активная категория не сохраняется. Соответственно и модуль производителей выдает всех кто есть. Привожу код - и собсна вопрос: как сделать чтобы выбранная категория сохранялась активной все время пока юзер не выберет другую.
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
* VirtueMart dTree menu
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
* @ dTree mos menu created by Winfred van Kuijk <winfred@vankuijk.net>
* @ modified by soeren
* @ Uses dTree Javascript: http://www.destroydrop.com/javascripts/tree/
* @ version $Id: mod_dtreemenu.php
*
* This file is included by the VirtueMart module if the module parameter
* MenuType is set to treemenu
**/

global $root_label, $sess, $db, $mosConfig_live_site, $mm_action_url;

if( vmIsJoomla('1.5')) {
$js_src = $mosConfig_live_site.'/modules/mod_virtuemart';
} else {
$js_src = $mosConfig_live_site.'/modules';
}

$Itemid = vmRequest::getInt( 'Itemid' );
if( @get_class( $db )!= 'ps_DB' ) $db = new ps_DB();

require_once( CLASSPATH. "ps_product_category.php" );
$ps_product_category = new ps_product_category();
/*********************************************************
************* CATEGORY TREE ******************************
*/

    /* dTree API, default value
* change to fit your needs **/
    $useSelection =  'true';
    $useLines =  'true';
    $useIcons =  'true';
    $useStatusText =  'false';
    $useCookies =  'true';
    $closeSameLevel =  'false';
   
    // if all folders should be open, we will ignore the closeSameLevel
    $openAll =  'false';
    if ( $openAll == "true" ) { $closeSameLevel = "false"; }
   
   
    $menu_htmlcode = "";
   
// what should be used as the base of the tree?
// ( could be *first* menu item, *site* name, *module*, *menu* name or *text* )
$base = "first";


// in case *text* should be the base node, what text should be displayed?
$basetext =  "";

// what category_id is selected?
$category_id = vmRequest::getInt( 'category_id' );

// select menu items from database
$query  = "SELECT category_id,category_parent_id,category_name FROM #__{vm}_category, #__{vm}_category_xref ";
$query .= "WHERE #__{vm}_category.category_publish='Y' AND ";
$query .= "#__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";
$query .= "ORDER BY category_parent_id, list_order, category_name ASC";

$db->query( $query );
$db->next_record();

// how many menu items in this menu?
$row = $db->num_rows();


// create a unique tree identifier, in case multiple dtrees are used
// (max one per module)
$tree = "d".uniqid( "tree_" );


// start creating the content
// create left aligned table, load the CSS stylesheet and dTree code
$menu_htmlcode .= "<table border=\"0\" cellspacing=\"1\" cellpadding=\"0\" width=\"100%\"><tr><td align=\"center\">\n";
$menu_htmlcode .= "<link rel=\"stylesheet\" href=\"$js_src/dtree/dtree.css\" type=\"text/css\" />\n";
$menu_htmlcode .= "<script type=\"text/javascript\" src=\"$js_src/dtree/dtree.js\"></script>\n";
$menu_htmlcode .= "<script type=\"text/javascript\">\n";

// create the tree, using the unique name
// pass the live_site parameter on so dTree can find the icons
$menu_htmlcode .= "$tree = new dTree('$tree',\"$js_src\");\n";

// pass on the dTree API parameters
$menu_htmlcode .= "$tree.config.useSelection=".$useSelection.";\n";
$menu_htmlcode .= "$tree.config.useLines=".$useLines.";\n";
$menu_htmlcode .= "$tree.config.useIcons=".$useIcons.";\n";
$menu_htmlcode .= "$tree.config.useCookies=".$useCookies.";\n";
$menu_htmlcode .= "$tree.config.useStatusText=".$useStatusText.";\n";
$menu_htmlcode .= "$tree.config.closeSameLevel=".$closeSameLevel.";\n";

$basename = $_REQUEST['root_label'];

// what is the ID of this node?
$baseid = $db->f("category_parent_id");
// create the link (if not a menu item, no link [could be: to entry page of site])
$baselink = ( $base == "first")? $sess->url( $mm_action_url.'index.php?page='.HOMEPAGE ) : "";

// remember which item is open, normally $Itemid
// except when we want the first item (e.g. Home) to be the base;
// in that case we have to pretend all remaining items belong to "Home"
$openid = $category_id;
   
// it could be that we are displaying e.g. mainmenu in this dtree,
// but item in usermenu is selected,
// so: for the rest of this module track if this menu contains the selected item
// Default value: first node (=baseid), but not selected
$opento = $baseid;
$opento_selected = "false";
// what do you know... the first node was selected
if ($baseid == $openid) { $opento_selected = "true"; }
$target = "";

// create the first node, parent is always -1
     
$menu_htmlcode .= "$tree.add(\"$baseid\",\"-1\",\"\",\"$baselink\",\"\",\"$target\");\n";
//$basename
$db->reset();

// process each of the nodes
     
while( $db->next_record() ) {

// get name and link (just to save space in the code later on)
       
$name = htmlentities( $db->f("category_name"), ENT_QUOTES, vmGetCharset() ). ps_product_category::products_in_category( $db->f("category_id") );
$url = $sess->url($mm_action_url."index.php?page=shop.browse&category_id=".$db->f("category_id"));
         
$menu_htmlcode .= "$tree.add(\"".$db->f("category_id")."\",\"".$db->f("category_parent_id")."\",\"$name\",\"$url\",\"$name\",\"$target\");\n";
       
 
// if this node is the selected node
if ($db->f("category_id") == $openid) {
$opento = $openid; $opento_selected = "true";

}

$menu_htmlcode .= "document.write($tree);\n";
$menu_htmlcode .= $openAll == "true" ? "$tree.openAll();\n" : "$tree.closeAll();\n";
$menu_htmlcode .= "$tree.openTo(\"$opento\",\"$opento_selected\");\n";
$menu_htmlcode .= "</script>\n";
$menu_htmlcode .= "<noscript>\n";
$menu_htmlcode .= $ps_product_category->get_category_tree( $category_id, $class_mainlevel );
$menu_htmlcode .= "</noscript>\n";
$menu_htmlcode .= "</td></tr></table>\n";

echo $menu_htmlcode;
       

/************* END OF CATEGORY TREE ******************************
*********************************************************
*/
?>
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Нашел решение на форуме http://joomlaforum.ru/index.php/topic,63845.new.html Все работет каак надо, автору уважение и плюс.
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Неправильное сортировка по цене в категориях товаров

Автор Tobi_108

Ответов: 0
Просмотров: 1533
Последний ответ 06.08.2015, 16:29:26
от Tobi_108
[решено] Как вывести цену за количество товара на странице категории (browse_x.php)

Автор mark1

Ответов: 3
Просмотров: 3953
Последний ответ 13.06.2015, 16:22:24
от davudo
Дополнительные фото товара в списке категории

Автор newjey

Ответов: 0
Просмотров: 1501
Последний ответ 11.07.2014, 12:27:52
от newjey
Сортировка по производителю в админке

Автор newjey

Ответов: 0
Просмотров: 1198
Последний ответ 15.01.2014, 15:43:53
от newjey
Товары с наличием 0 автоматически в конец списка категории

Автор newjey

Ответов: 4
Просмотров: 1427
Последний ответ 27.09.2013, 22:04:28
от newjey