Новости Joomla

Компонент View logs v.2.2.0

👩‍💻 Компонент View logs v.2.2.0.По горячим следам, рекомендациям и просьбам Joomla-сообщества компонент просмотра логов Joomla получил следующую версиюv.2.2.0. Что нового?- Обновление интерфейса: список логов сделан в виде таблицы, отображение дополнительной информации в списке файлов (время создания и последнего изменения, кнопки действий и их порядок) изменены и сделаны менее пёстрыми.- Добавлен поиск-фильтр по имени файла лога на странице. Находите нужный файл быстрее.- Большие файлы. Просмотр файла лога в модальном окне сохранён для файлов менее 1МБ. Возможность открыть файл в отдельном окне сохранена. Но используйте эту функцию с осторожностью: файлы объёмом 8-10мб ещё возможно открывать в браузере, но более крупные - не рекомендуется. Системные требования:- Совместимость с Joomla 6 и PHP 8.4.- Минимальная версия PHP по-прежнему 8.0.Страница расширенияGitHub расширения@joomlafeed#joomla #расширения

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

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
С включением на сайте функции "использования AJAX для добавления товаров в корзину" столкнулся с проблемой
если из категории (browsex.tpl.php) и из flypage в корзину все залетает нормально, то при нажатии заветной кнопки "купить" на сопутствующих товарах (шаблон которых в productsnapshot.tpl.php) тупо переходим в корзину, что не есть хорошо!

Может кто сталкивался и решал ? Подскажете ?
Пробовал подсовывать форму от flypage, начинает работать, но если сопутствующих товара 2 - на втором кнопка не работает...
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Интересует также добавление товаров из статей, используя плагин vmsnapshot - тоже после нажатия на кнопку попадаем в корзину :(
*

Вованище

  • Захожу иногда
  • 134
  • 20 / 0
  • <target = blank>
В файле \components\com_virtuemart\themes\ВАША ТЕМА\templates\common\productsnapshot.tpl.php
Код
<form action="<?php echo  (URL . basename($_SERVER['PHP_SELF']))?>" method="post" name="addtocart" id="addtocart">
меняем на
Код
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
« Последнее редактирование: 19.02.2011, 23:23:44 от Вованище »
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Ничего не изменилось :(, по прежнему выкидывает в корзину.
*

Вованище

  • Захожу иногда
  • 134
  • 20 / 0
  • <target = blank>
Это было для сопутствующих. Сейчас для плагина напишу.
*

Вованище

  • Захожу иногда
  • 134
  • 20 / 0
  • <target = blank>
В файле \www\plugins\content\vmproductsnapshots.php весь код меняем на
Код
<?php
/**
 * VirtueMart Show-Product-Snapshop Mambot
 *
 * @version $Id: vmproductsnapshots.php 1485 2008-07-24 18:44:19Z Aravot $
 * @package VirtueMart
 * @subpackage mambots
 *
 * @copyright (C) 2004-2008 Soeren Eberhardt
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 *
 * VirtueMart is Free Software.
 * VirtueMart comes with absolute no warranty.
 *
 * http://virtuemart.net
 */

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

/**
 * VirtueMart Show-Product-Snapshop Mambot
 *
 * <b>Usage:</b>
 * <code>{product_snapshot:id=XX,showname=y,showprice=n,showdesc=n,showaddtocart=y,displayeach=h,displaylist=v,width=90%,border=0,style=color:black;,align=left}</code>
 * string sku (product_sku) for more than one, separate with vertical bar
 * string showname (show the product name? y or n)
 * string showprice (show the product price? y or n)
 * string showdesc (show the product short description? y or n)
 * string quantity (the quantity to add to cart. Separate with vertical bar when there's more than one product eg 1|2|1)
 * string showaddtocart (show an "Add-to-cart" link? y or n)
 * string displayeach (the horizontal or vertical orientation of the product attributes. h or v)
 * string displaylist (the horizontal or vertical orientation of the products.
                       It only applies when there is more than one sku. h or v)
 * string width (The width of the Table element)
 * string border (The value of the Border attribute of the Table element)
 * string style (the value for the style attribute of the Table element)
 * string align (defines the align of the table with the product snapshot)
 */
global $ps_product ;

require_once (dirname( __FILE__ ). "/../../components/com_virtuemart/virtuemart_parser.php") ;
include_class( "product" ) ;

if( vmIsJoomla( '1.5', '>=' ) ) {
$mainframe->registerEvent( 'onBeforeDisplayContent', 'pluginProductSnap' ) ;
} else {
$_MAMBOTS->registerFunction( 'onPrepareContent', 'botProductSnap' ) ;
}

function pluginProductSnap( &$row, &$params, $page = 0 ) {
return handleProductSnapShot( $row, $params, $page ) ;
}
function botProductSnap( $published, &$row, &$params, $page = 0 ) {
return handleProductSnapShot( $row, $params, $page, $published ) ;
}
/**
 * Main Function to display Product Snapshots
 *
 * @param mosContent $row
 * @param JParams $params
 * @param int $page
 * @param boolean $published
 * @return boolean
 */
function handleProductSnapShot( &$row, &$params, $page = 0, $published = true ) {
global $mosConfig_absolute_path, $mosConfig_live_site, $database ;

// load default parameters
if( vmIsJoomla( '1.5', '>=' ) ) {
$db = JFactory::getDBO() ;
$plugin = & JPluginHelper::getPlugin( 'content', 'vmproductsnapshots' ) ;
$parameters = $plugin->params ;
} else {
$query = "SELECT id,params FROM #__mambots WHERE element = 'vmproductsnapshots' AND folder = 'content'" ;
$database->setQuery( $query ) ;
$mambot = $database->loadResult() ;
$parameters = $mambot->params ;
}
$bot_params = & new vmParameters( $parameters ) ;
$param_defaults = array( 'id' => '0' ,
'enabled' => '1',
'showname' => 'y' ,
'showimage' => 'y' ,
'showdesc' => 'n' ,
'showprice' => 'y' ,
'quantity' => '1' ,
'showaddtocart' => 'y' ,
'displaylist' => 'v' ,
'displayeach' => 'h' ,
'width' => '100' ,
'border' => '0' ,
'style' => '' ,
'align' => '' ) ;
// get settings from admin mambot parameters
foreach( $param_defaults as $key => $value ) {
$param_defaults[$key] = $bot_params->get( $key, $value ) ;
}

$enabled = $param_defaults['enabled'];
if( !$published || !$enabled ) {
$row->text = preg_replace( "/{product_snapshot:.+?}/", '', $row->text );
return true ;
}

$vm_productsnap_entrytext = $row->text ;
$vm_productsnap_matches = array( ) ;
if( preg_match_all( "/{product_snapshot:.+?}/", $vm_productsnap_entrytext, $vm_productsnap_matches, PREG_PATTERN_ORDER ) > 0 ) {
foreach( $vm_productsnap_matches[0] as $vm_productsnap_match ) {
$vm_productsnap_match = str_replace( "{product_snapshot:", "", $vm_productsnap_match ) ;
$vm_productsnap_match = str_replace( "}", "", $vm_productsnap_match ) ;

// Get Bot Parameters
$vm_productsnap_params = get_prodsnap_params( $vm_productsnap_match, $param_defaults ) ;

// Get the html
$showsnapshot = return_snapshot( $vm_productsnap_params ) ;

$vm_productsnap_entrytext = preg_replace( "/{product_snapshot:.+?}/", $showsnapshot, $vm_productsnap_entrytext, 1 ) ;
}
$row->text = $vm_productsnap_entrytext ;

}
return ;
}

/**
 *  compare and return parameters for product snap shot.
 * @author mike howard
 * @param string $vm_productsnap_match
 * @param array $param_defaults
 * @return array
 */
function get_prodsnap_params( $vm_productsnap_match, $param_defaults ) {
$params = explode( ",", $vm_productsnap_match ) ;
foreach( $params as $param ) {
$param = explode( "=", $param ) ;
if( isset( $param_defaults[$param[0]] ) ) {
$param_defaults[$param[0]] = $param[1] ;
}
}
$param_defaults['id'] = "'" . str_replace( "|", "','", $param_defaults['id'] ). "'" ;
$param_defaults['quantity'] = explode( "|", $param_defaults['quantity'] ) ;
return $param_defaults ;
}

/**
 * return the HTML code to show a snapshot of a product based on the product id.
 *
 * @param array $params
 * @return string
 */
function return_snapshot( &$params ) {

global $sess, $VM_LANG, $mosConfig_live_site, $ps_product , $mainframe;

$db = new ps_DB();
require_once(CLASSPATH . 'htmlTools.class.php' );
$document =& JFactory::getDocument();
$document->addStyleSheet( VM_THEMEURL.'theme.css' );
$document->addScript( VM_THEMEURL.'theme.js' );
$document->addScriptDeclaration( 'var cart_title = "'.$VM_LANG->_('PHPSHOP_CART_TITLE').'";var ok_lbl="'.$VM_LANG->_('CMN_CONTINUE').'";var cancel_lbl="'.$VM_LANG->_('CMN_CANCEL').'";var notice_lbl="'.$VM_LANG->_('PEAR_LOG_NOTICE').'";var live_site="'.$mosConfig_live_site.'";' );
$document->addScript( $mosConfig_live_site .'/components/'. VM_COMPONENT_NAME .'/js/mootools/mooPrompt.js' );
$document->addStyleSheet( $mosConfig_live_site .'/components/'. VM_COMPONENT_NAME .'/js/mootools/mooPrompt.css' );

$Itemid = $sess->getShopItemid();
require_once(CLASSPATH . 'ps_product_attribute.php' );
$ps_product_attribute = new ps_product_attribute;
require_once(CLASSPATH . 'ps_product_type.php' );
$ps_product_type = new ps_product_type;

$tpl = vmTemplate::getInstance();
//vmCommonHTML::loadMooTools();

$html = "" ;

$q = "SELECT DISTINCT *
FROM #__{vm}_product
WHERE product_id IN ({$params['id']})" ;
$db->query( $q ) ;

    $ordering=explode(",",$params['id']);
    $db->recordx = array();
    foreach($ordering as $key1 => $value1) {
        foreach ($db->record as $key2 => $value2) {
            $a = "'" . $value2->product_id . "'";
            if ($a == $value1) {
                $db->recordx[] = $value2;
            }
        }
    }
    foreach($db->record as $key => $value) {
        $db->record[$key] = $db->recordx[$key];
    }

$product_count = $db->num_rows() ;
if( $product_count > 0 ) {
$html .= "<table class=\"productsnap\" width=\"{$params['width']}\" border=\"{$params['border']}\" style=\"{$params['style']}\" " ;
$html .= ! empty( $params['align'] )? "align=\"{$params['align']}\">" : ">" ;
$html .= "\n" ;

// set up how the rows and columns are displayed
if( 'v' == $params['displayeach'] ) {
$row_sep_top = "<tr>\n" ;
$row_sep_btm = "</tr>\n" ;
} else {
$row_sep_top = "" ;
$row_sep_btm = "" ;
}

if( 'h' == $params['displaylist'] ) {
$start = "<tr>\n" ;
$end = "</tr>\n" ;
} else {
$start = "" ;
$end = "" ;
}

if( 'h' == $params['displaylist'] && 'v' == $params['displayeach'] ) {
$prod_top = "<td valign=\"top\"><table>\n" ;
$prod_btm = "</table></td>\n" ;
} else if( $params['displaylist'] == $params['displayeach'] ) {
$prod_top = "" ;
$prod_btm = "" ;
} else {
$prod_top = "<tr>\n" ;
$prod_btm = "</tr>\n" ;
}
/*
eg of display
list h, each h
-- prod_sep_top "" -- prod_sep_btm "" -- start = "<tr>" -- end = "</tr>" -- row_sep_top = "<td>" -- row_sep_btm = "</td>"
<table><tr><td>name</td><td>image</td><td>name</td><td>image</td></tr></table>
list h, each v
-- prod_sep_top "<td><table>" -- prod_sep_btm "</table></td>" -- start = "<tr>" -- end = "</tr>" -- row_sep_top = "<tr><td>" -- row_sep_btm = "</td></tr>"
<table><tr><td><table><tr><td>name</td></tr><tr><td>image</td></tr></table></td><td><table><tr><td>name</td></tr><tr><td>image</td></tr></table></td></tr></table>
list v, each h
-- prod_sep_top "<tr>" -- prod_sep_btm "</tr>" -- start = "" -- end = "" -- row_sep_top = "<td>" -- row_sep_btm = "</td>"
<table><tr><td>name</td><td>image</td></tr><tr><td>name</td><td>image</td></tr></table>
list v, each v
-- prod_sep_top "" -- prod_sep_btm "" -- start = "" -- end = "" -- row_sep_top = "<tr><td>" -- row_sep_btm = "</td></tr>"
<table><tr><td>name</td></tr><tr><td>image</td></tr><tr><td>name</td></tr><tr><td>image</td></tr></table>
*/
$i = 0 ;
$html .= $start ;
while( $db->next_record() ) {
$html .= $prod_top ;
if( 'y' == $params['showname'] ) {
$html .= $row_sep_top ;
$html .= "<td class=\"product_name\" align=\"center\">" . $db->f( "product_name" ). "</td>\n" ;
$html .= $row_sep_btm ;
}
if( 'y' == $params['showimage'] ) {
$html .= $row_sep_top ;
$url = "index.php?page=" . $ps_product->get_flypage( $db->f( "product_id" ) ) ;
if( $db->f( "product_parent_id" ) ) {
$url = "index.php?page=shop.product_details&amp;flypage=" . $ps_product->get_flypage( $db->f( "product_parent_id" ) ) ;
$url .= "&amp;product_id=" . $db->f( "product_parent_id" ) ;
} else {
$url = "index.php?page=shop.product_details&amp;flypage=" . $ps_product->get_flypage( $db->f( "product_id" ) ) ;
$url .= "&amp;product_id=" . $db->f( "product_id" ) ;
}
$html .= "<td class=\"image\" align=\"center\"><a href=\"" . $sess->url( URL . $url ). "\">" ;
$html .= "<img alt=\"" . $db->f( "product_name" ). "\" hspace=\"7\" src=\"" . IMAGEURL . "/product/" . $db->f( "product_thumb_image" ). "\" width=\"90\" border=\"0\" />" ;
$html .= "</a></td>\n" ;
$html .= $row_sep_btm ;
}
if( 'y' == $params['showdesc'] ) {
$html .= $row_sep_top ;
$html .= "<td class=\"desc\">" . $db->f( "product_s_desc" ). "</td>\n" ;
$html .= $row_sep_btm ;
}
if( 'y' == $params['showprice'] ) {
$html .= $row_sep_top ;
//$html .= "<td class=\"price\">".$PHPSHOP_LANG->_PHPSHOP_CART_PRICE .": ". number_format($price["product_price"],2). " " . $price["product_currency"]."</td>\n";
$html .= "<td class=\"price\">" . str_replace( "$", "\\$", $ps_product->show_price( $db->f( "product_id" ) ) ). "</td>\n" ;
$html .= $row_sep_btm ;
}
if( 'y' == $params['showaddtocart'] ) {
if( @$params['quantity'][$i] > 1 ) {
$qty = $params['quantity'][$i] ;
} else {
$qty = 1 ;
}
$html .= $row_sep_top ;
$html .= "<td class=\"addtocart\">" ;
$tpl->set( "product_id", $db->f( "product_id" ) );
if( $db->f("product_unit") && VM_PRICE_SHOW_PACKAGING_PRICELABEL) {
$product_price_lbl = "<strong>". $VM_LANG->_('PHPSHOP_CART_PRICE_PER_UNIT').' ('.$db->f("product_unit")."):</strong>";
}
else {
$product_price_lbl = "<strong>". $VM_LANG->_('PHPSHOP_CART_PRICE'). ": </strong>";
}

$tpl->set( 'product_in_stock', $db->f('product_in_stock') );
$tpl->set( 'i', $i );
$tpl->set( "product_id", $db->f( "product_id" ) );
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
$html .= $tpl->fetch('browse/includes/addtocart_form.tpl.php' );;
$html .= "</td>" ;
$html .= $row_sep_btm ;
}
$html .= $prod_btm ;
$i ++ ;
}
$html .= $end ;
$html .= "</table>" ;
return ($html) ;
} else {
echo 'Product not found' ;
return ("") ;
}
}
?>
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Ай спасибо добрый человек! Плюс тебе ;)
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Здравствуйте! у меня в файле \components\com_virtuemart\themes\ВАША ТЕМА\templates\common\productsnapshot.tpl.php
другой код: <form action="<?php echo  $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart">
заменил на <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
сопутствующий товар стал добавляться в корзину не переходя в саму корзину, но добавляется только первый товар из списка, нажимаю на второй товар, добавляется все равно первый :-( в чем может быть проблема? 
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Gremlin

  • Захожу иногда
  • 293
  • 11 / 0
Здравствуйте! у меня в файле \components\com_virtuemart\themes\ВАША ТЕМА\templates\common\productsnapshot.tpl.php
другой код: <form action="<?php echo  $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart">
заменил на <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
сопутствующий товар стал добавляться в корзину не переходя в саму корзину, но добавляется только первый товар из списка, нажимаю на второй товар, добавляется все равно первый :-( в чем может быть проблема? 
Такая же фигня :(. Но мне было проще - у меня в одной статье была только одна кнопка добавления в корзину ;)
*

Natyuma

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
сопутствующий товар стал добавляться в корзину не переходя в саму корзину, но добавляется только первый товар из списка, нажимаю на второй товар, добавляется все равно первый :-( в чем может быть проблема? 

Подниму тему, как это можно поправить?
*

lyoha.g

  • Новичок
  • 6
  • 0 / 0
как вариант: Если нужно будет вывести в статье Joomla больше одного товара из магазина VirtueMart, то их ID следует разделять знаком «|»
*

tantan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
сопутствующий товар стал добавляться в корзину не переходя в саму корзину, но добавляется только первый товар из списка, нажимаю на второй товар, добавляется все равно первый :-( в чем может быть проблема? 
ап темы, нашли ли решение?
*

tantan

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
ап вопроса =(
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
У меня предложенное решение как бы сработало, но после добавления товара в корзину она все равно открывается автоматом  :(
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Уже разобрался  ^-^.
Нужно все в том же файле productsnapshot.tpl.php заменить строку
Код
<input type="hidden" name="page" value="shop.cart" />
на
Код
<input type="hidden" name="page" value="shop.product_details" />

теперь товар добавляется в корзину без перехода в нее.
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Вопрос к знатокам.
Как я понял, в productsnapshot.tpl за вывод кнопки "В корзину" отвечает вот этот кусок кода
Код
<input type="submit" class="addtocart_button" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />

В целом форма добавления в корзину выглядит так
Код
    <form class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
    <input type="hidden" name="option" value="com_virtuemart" />
    <input type="hidden" name="page" value="shop.product_details" />
    <input type="hidden" name="Itemid" value="<?php echo ps_session::getShopItemid(); ?>" />
    <input type="hidden" name="func" value="cartAdd" />
    <input type="hidden" name="prod_id" value="<?php echo $product_id; ?>" />
    <input type="hidden" name="product_id" value="<?php echo $product_id ?>" />
    <input type="hidden" name="product_type" value="<?php echo $product_type ?>" />
    <input type="hidden" name="quantity" value="1" />
    <input type="hidden" name="set_price[]" value="" />
    <input type="hidden" name="adjust_price[]" value="" />
    <input type="hidden" name="master_product[]" value="" />
    <input type="submit" class="addtocart_button" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" />
    </form>

При переносе <input type="submit" class="addtocart_button" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" /> в любое место в шаблоне кнопка перемещается соответственно, но перестает работать. Если оставить ее на месте - работает, но отображается не там где надо - справа или снизу от блока с информацией о товара.



Хотелось бы по-человечески отформатировать эту кнопку. Подскажите, пожалуйста, в чем зацепка?

« Последнее редактирование: 12.09.2011, 16:22:01 от elscept »
*

xzet

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
помогите решить, похожая проблема с вводом купона, когда вводишь код и жмешь отправить выкидывает из корзины на гавную.. в каком файле править эту форму?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Эффект добавления в корзину

Автор Sanyo

Ответов: 114
Просмотров: 39825
Последний ответ 08.11.2014, 22:09:13
от site-logic
Вывод товара из дочерних категорий в родительскую

Автор B0nG

Ответов: 0
Просмотров: 1876
Последний ответ 03.08.2014, 15:13:57
от B0nG
ID товара вместо cdata

Автор newsky

Ответов: 0
Просмотров: 1686
Последний ответ 01.07.2014, 13:05:12
от newsky
Компонент и модуль поиска товаров VirtueMart 1.0.15 на Ajax

Автор Arkadiy

Ответов: 148
Просмотров: 67582
Последний ответ 28.06.2014, 19:11:54
от DeLight
Расширенный Ajax-поиск по характеристикам товара VirtueMart

Автор Arkadiy

Ответов: 990
Просмотров: 209403
Последний ответ 27.06.2014, 16:47:52
от DeLight