Новости Joomla

Вышли релизы безопасности Joomla 6.1.3 и Joomla 5.4.8

Релиз безопасности Joomla 6.1.3 и Joomla 5.4.8

Проект Joomla! рад сообщить о выходе Joomla 6.1.3 и Joomla 5.4.8. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

Joomla 5+ пакет для интеграции с API Почты России: нормализация данных, расчёт доставки, создание отправлений, партии, документы, возвраты, поиск отделений, справочники и SOAP-отслеживание.

v.3.0.0. Что нового?
Это дальнейшее развитие ранее закрытой Joomla-библиотеки для работы с API сервиса Отправка (для бизнеса) Почты России. Поэтому версия не 1.0.0, а 3.0.0.

Сейчас эта библиотека ушла от собственных реализаций и стала Joomla-обёрткой известного PHP SDK от Lapay Group.

Возможности библиотеки.
- получение настроек аккаунта, точек сдачи и текущего остатка запросов к API;
- нормализация адресов, ФИО и телефонов перед созданием отправления;
- расчёт тарифа и срока доставки;
- создание, поиск, изменение, удаление и возврат заказов в состояние «Новые»;
- проверка надёжности получателя;
- создание партий, просмотр партий и заказов внутри партии;
- генерация пакета печатных документов и формы Ф103;
- создание, изменение и удаление возвратных отправлений;
- поиск отделений по индексу, адресу и координатам, получение сервисов отделения;
- локальный список стран;
- SOAP-отслеживание операций по РПО и работа с билетами пакетного трекинга.

👩‍💻 Joomla-возможности.
В пакете библиотеки WT Otpravkapochtaru есть поля Joomla Form для расширений. Они позволяют работать в интерфейсе Joomla с некоторыми типами данных, получаемых по API из вашего личного кабинета в ЛК Почты России для бизнеса.
На данный момент в библиотеке доступны 3 поля списков, которые отображают доступные в аккаунте ОПС, типы и категории отправлений.
Поддерживаются зависимые списки: значение одного поля обновляется при изменении другого.

Системные требования.
Системные требования в основном связаны с системными требованиями апстрима библиотеки - LapayGroup PHP SDK.
- Joomla 5+
- PHP 8.3+
- Расширения PHP:
-- ext-mbstring
-- ext-simplexml
-- ext-soap (опционально, для трекинга)
-- ext-zip

Ссылки:
- Страница расширения
- GitHub библиотеки и документация

@joomlafeed

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

dir.repart

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
В VM3 отображается фото 3 товаров в строку, а след. товары есть на странице, но не видны. Поле под них есть, наводишь курсор - активен и при клике заходишь в товар. Но фото не видно



 
На фото наведен курсор - отобразилась ссылка с альтернативным текстом. Но фото товара не отражается
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А на стандартном шаблоне ? Или переименуйте папку переопределения шаблона Вирт в шаблоне по умолчанию - /templates/.../html/com_virtuemart_kill
*

dir.repart

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
К сожалению не помогло. Шаблон куплен. furniture_v1. [/size]
*

dir.repart

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
И еще. Внесла в настройках магазина в графе "Отображать товары в выбранной категории" вместо 3 - 10 товаров: результат -  4 введенных товара стали отображаться в одну строчку и все с фото. Вернула снова 3: результат - одна строка с 3 товарами на месте. ; один (четвертый) товар снова без фото во второй строке. А ссылка (доступ) внутрь карточки есть.

Вот такой код в настройках шаблона /html/com_virtuemart/sublayouts/products.php

Может тут косяк какой

<?php
/**
 * sublayout products
 *
 * @package   VirtueMart
 * @author Max Milbers
 * @link http://www.virtuemart.net
 * @copyright Copyright (c) 2014 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL2, see LICENSE.php
 * @version $Id: cart.php 7682 2014-02-26 17:07:20Z Milbo $
 */

defined('_JEXEC') or die('Restricted access');
$products_per_row = empty($viewData['products_per_row'])? 1:$viewData['products_per_row'] ;
$currency = $viewData['currency'];
$showRating = $viewData['showRating'];
$verticalseparator = " vertical-separator";
echo shopFunctionsF::renderVmSubLayout('askrecomjs');

$ItemidStr = '';
$Itemid = shopFunctionsF::getLastVisitedItemId();
if(!empty($Itemid)){
   $ItemidStr = '&Itemid='.$Itemid;
}

$dynamic = false;
if (vRequest::getInt('dynamic',false)) {
   $dynamic = true;
}

foreach ($viewData['products'] as $type => $products ) {

   $col = 1;
   $nb = 1;
   $row = 1;

   if($dynamic){
      $rowsHeight[$row]['product_s_desc'] = 1;
      $rowsHeight[$row]['price'] = 1;
      $rowsHeight[$row]['customfields'] = 1;
      $col = 2;
      $nb = 2;
   } else {
   $rowsHeight = shopFunctionsF::calculateProductRowsHeights($products,$currency,$products_per_row);

      if( (!empty($type) and count($products)>0) or (count($viewData['products'])>1 and count($products)>0)){
         $productTitle = vmText::_('COM_VIRTUEMART_'.strtoupper($type).'_PRODUCT'); ?>
   <div class="<?php echo $type ?>-view">
     <h4><?php echo $productTitle ?></h4>
         <?php // Start the Output
      }
   }

   // Calculating Products Per Row
   $cellwidth = ' width'.floor ( 100 / $products_per_row );

   $BrowseTotalProducts = count($products);


   foreach ( $products as $product ) {
      if(!is_object($product) or empty($product->link)) {
         vmdebug('$product is not object or link empty',$product);
         continue;
      }
      // Show the horizontal seperator
      if ($col == 1 && $nb > $products_per_row) { ?>
   <div class="horizontal-separator"></div>
      <?php }

      // this is an indicator wether a row needs to be opened or not
      if ($col == 1) { ?>
   <div class="row">
      <?php }

      // Show the vertical seperator
      if ($nb == $products_per_row or $nb % $products_per_row == 0) {
         $show_vertical_separator = ' ';
      } else {
         $show_vertical_separator = $verticalseparator;
      }

    // Show Products ?>
   <div class="product vm-col<?php echo ' vm-col-' . $products_per_row . $show_vertical_separator ?>">
      <div class="spacer product-container">
         <div class="vm-product-media-container">

               <a title="<?php echo $product->product_name ?>" href="<?php echo $product->link.$ItemidStr; ?>">
                  <?php
                  echo $product->images[0]->displayMediaThumb('class="browseProductImage"', false);
                  ?>
               </a>

         </div>

         <div class="vm-product-rating-container">
            <?php echo shopFunctionsF::renderVmSubLayout('rating',array('showRating'=>$showRating, 'product'=>$product));
            if ( VmConfig::get ('display_stock', 1)) { ?>
               <span class="vmicon vm2-<?php echo $product->stock->stock_level ?>" title="<?php echo $product->stock->stock_tip ?>"></span>
            <?php }
            echo shopFunctionsF::renderVmSubLayout('stockhandle',array('product'=>$product));
            ?>
         </div>


            <div class="vm-product-descr-container-<?php echo $rowsHeight[$row]['product_s_desc'] ?>">
               <h2><?php echo JHtml::link ($product->link.$ItemidStr, $product->product_name); ?></h2>
               <?php if(!empty($rowsHeight[$row]['product_s_desc'])){
               ?>
               <p class="product_s_desc">
                  <?php // Product Short Description
                  if (!empty($product->product_s_desc)) {
                     echo shopFunctionsF::limitStringByWord ($product->product_s_desc, 60, ' ...')?>
                  <?php } ?>
               </p>
         <?php  } ?>
            </div>


         <?php //echo $rowsHeight[$row]['price'] ?>

         <div class="product_mask">

            <div class="vm3pr-<?php echo $rowsHeight[$row]['price'] ?>"> <?php
               echo shopFunctionsF::renderVmSubLayout('prices',array('product'=>$product,'currency'=>$currency)); ?>
               <div class="clear"></div>
            </div>
            <?php //echo $rowsHeight[$row]['customs'] ?>
            <div class="vm3pr-<?php echo $rowsHeight[$row]['customfields'] ?>"> <?php
               echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$product,'rowHeights'=>$rowsHeight[$row], 'position' => array('ontop', 'addtocart'))); ?>
            </div>

            <div class="vm-details-button">
               <?php // Product Details Button
               $link = empty($product->link)? $product->canonical:$product->link;
               echo JHtml::link($link.$ItemidStr,vmText::_ ( 'COM_VIRTUEMART_PRODUCT_DETAILS' ), array ('title' => $product->product_name, 'class' => 'product-details' ) );
               //echo JHtml::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id , FALSE), vmText::_ ( 'COM_VIRTUEMART_PRODUCT_DETAILS' ), array ('title' => $product->product_name, 'class' => 'product-details' ) );
               ?>
            </div>
            

         </div>
         
      <?php if(vRequest::getInt('dynamic')){
         echo vmJsApi::writeJS();
      } ?>
      </div>
   </div>

   <?php
    $nb ++;

      // Do we need to close the current row now?
      if ($col == $products_per_row || $nb>$BrowseTotalProducts) { ?>
    <div class="clear"></div>
  </div>
      <?php
         $col = 1;
      $row++;
    } else {
      $col ++;
    }
  }

      if(!empty($type)and count($products)>0){
        // Do we need a final closing row tag?
        //if ($col != 1) {
      ?>
    <div class="clear"></div>
  </div>
    <?php
    // }
    }
  }
« Последнее редактирование: 11.03.2019, 17:42:41 от dir.repart »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
В Этом файле /html/com_virtuemart/sublayouts/products.php
куда нибудь в самое начало поставьте такой код (временно) :
Код: php
echo'<pre>';print_r( count($viewData['products']) );echo'</pre>'.__FILE__.' '.__LINE__;
И посмотрите какое количество покажет ...
И не плохо было бы ссылку дать )) Удачи !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не создаются дочерние товары

Автор NIKOLY

Ответов: 12
Просмотров: 2864
Последний ответ 04.07.2025, 09:13:08
от NIKOLY
Не отображаются товары в категории

Автор iZacNT

Ответов: 0
Просмотров: 4204
Последний ответ 23.06.2023, 12:20:49
от iZacNT
VirtueMart 3 Отображать только товары в наличии!

Автор GaziroFFka

Ответов: 4
Просмотров: 7523
Последний ответ 06.06.2023, 13:55:13
от Akeksandr
Мультиязычность, связь товаров, доп.поля

Автор sanek2281

Ответов: 1
Просмотров: 3917
Последний ответ 24.01.2022, 18:00:46
от Максим Пишняк
VirtueMart 3 Через RO csvi не могу загрузить больше 956 товаров

Автор artem_wrong

Ответов: 11
Просмотров: 2688
Последний ответ 25.09.2021, 21:13:23
от ShopES