Новости Joomla

Загадочный параметр $live_site в configuration.php Joomla

Загадочный параметр $live_site в configuration.php Joomla

👩‍💻 Загадочный параметр $live_site в configuration.php Joomla. Зачем он нужен?Давным-давно, когда Joomla ещё была маленькой, в неё внедрили параметр $live_site. В ней хранился домен текущего сайта на случай, если Joomla не могла его определить из-за неверной настройки сервера. Нужно это было для разных SEO-компонентов, для использования редиректов и т.д.Со временем для работы собственно сайта этот параметр перестал быть нужным. Уже в начале 2010-х стали встречаться рекомендации оставлять этот параметр пустым, дабы оный не привёл к лишним проблемам и путанице. Тем более, в web-админке нет места, где его можно указать или посмотреть его значение. Только в configuration.php, а туда смотрят не часто.Однако, параметр всё же остался в ядре Joomla. Зачем он нужен? А нужен он в 2-х случаях:- для работы класса Joomla\CMS\Uri\Uri, который часто используется в коде Joomla для работы методов

Uri::root() и
Uri::base(), а значит может влиять и на работу в том числе ajax-скриптов.- для работы Joomla в CLI - командной строке сервера. В случае если вы используете в вашем CLI-плагине методы опять-таки класса Uri, то CLI ничего не знает о текущем домене, так как запускается вне web-сервера. Поэтому домен нужно указывать принудительно. Либо с помощью параметра командной строки
--live-site, например,
—live-site=https://site.ru/. Со слешем на конце, иначе в CLI адрес сайта станет
https://site.rujoomla.php.Либо в параметре
$live_site в файле configuration.php, так как
CliApplication берёт настройку оттуда, если параметр команды не указан или пуст.⚠️ Иначе в качестве хоста и url класса Uri будет установлено
https://joomla.invalid/set/by/console/application. В самом же коде команды получить параметр
$live_site можно из объекта приложения

protected function doExecute(InputInterface $input, OutputInterface $output): int    {         //...              $live_site = $this->getApplication()->get('live_site');         //...    }
и исходя из этого строить дальнейшую логику.@joomlafeed#joomla #разработка #php #cli

Вышел плагин AllVideos v.7.0 от JoomlaWorks

Вышел плагин AllVideos v.7.0 от JoomlaWorks

Вышел плагин AllVideos v.7.0 от JoomlaWorks.Этот контент-плагин - одно из старейших расширений для Joomla. Его задача - преобразовывать шорт-коды вида

{YOUTUBE}...{/YOUTUBE},
{MP3}parth/to/file.mp3{/MP3} и подобные во встроенные видео или аудио.👩‍💻 v.7.0.0. Что нового?- Добавлена поддержка Youtube Shorts. Просто скопируйте полный url видео и вставьте его внутри тегов
{YOUTUBE}...{/YOUTUBE}.- Поддержка Joomla 5.x без плагина обратной совместимости. PHP 5, PHP 7, PHP 8. - Индексация умным поиском в CLI. В Joomla 5 плагин перестал вызывать ошибку при индексации контента умным поиском через CLI,Заметьте, что этот один и тот же пакет для всех версий Joomla, начиная с 1.5.x и заканчивая 5.x. Технически "под капотом" код плагина по сути не менялся, а для поддержки следующих версий Joomla авторы вставляют "заплатки". Плагин всё ещё использует старую архитектуру файлов и классов Joomla, что, к сожалению, заставляет прибавлять к его описанию слова "пока ещё" - "пока ещё работает".
Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 За ссылку спасибо самому внимательному участнику нашего сообщества - Ринату Кажетову (@rkazhet).@joomlafeed#joomla #расширения

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

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Что бы изменить кол-во под-категорий, отображаемых в одной строке (когда открываете категорию), необходимо поменять значение переменной $categories_per_row.
По-умолчанию, стоит 4.
Почему эта настройка не была вынесена в админку - не знаю :(

Переменную менять в файле /administrator/components/com_virtuemart/classes/ps_product_category.php
ориент. строка: 876
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

yAnTar

  • Захожу иногда
  • 296
  • 81 / 3
Это относится к подкатегориям. А есть еще один случай когда надо установить количество категорий на главной странице магазина в одной строке. Надо поменять ту же самую переменную, только в другом файле:
/administrator/components/com_virtuemart/html/shop.index.php
Firefox the best, Google the best, jQuery the best.
yAnTar блог
*

Изя Врат

  • Осваиваюсь на форуме
  • 20
  • 3 / 1
Хм... В наличии Версия 1.1.0 RC.
Необходимо выводить в ряду только три категории. Указанные файлы проглядел, там сейчас эта переменная не встречается. Явного указания четырех категорий в одном ряду, тоже не видно... Подскажите, где копать?
*

Изя Врат

  • Осваиваюсь на форуме
  • 20
  • 3 / 1
Всё таки гугль рулит. Теперь это параметр хранится тут:

/components/com_virtuemart/themes/default/templates/common/categoryChildlist.tpl.php

Буквально в пятой строке.
*

Demir0

  • Осваиваюсь на форуме
  • 20
  • 2 / 0
  • Евро 2012
Да, так явно грамотней - указывать этот параметр в шаблоне. А то нейзвесно в каком месте его нарисовали сразу)))))

Я тут еще немного подделал.
Если заменить строку:
Код
$categories_per_row = 4;
на
Код
if($category_id == [ИД ВАШЕЙ КАТЕГОРИИ]){$categories_per_row = 1;}else{$categories_per_row = 4;}
Где [ИД ВАШЕЙ КАТЕГОРИИ] - это вот этот кусок строки - .../index.php?option=com_virtuemart&page=shop.browse&category_id=3&Itemid=1
То можно более гибко настроить все это дело.

Вроде просто, но полезно ;)
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
В версии VirtuMart 1.1.3 ничего такого в папке  /administrator/components/com_virtuemart/classes/ps_product_category.php где тока не искал((.
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
 :D все разобрался не в ту папку смотрел) надо было сюды  /components/com_virtuemart/themes/default/templates/common/categoryChildlist.tpl.php а я в /administrator/components/* смотрел.

Доброго времени суток!

К сожалению, предложенный вариант с конструкцией if почему-то не работает, т.е. в ситуации, например,

if($category_id == 6){$categories_per_row = 1;}else{$categories_per_row = 2;}

у 6 категории, как, в-принципе, и любой другой, отображение будет происходить в два столбца, а не в один...

какие-нибудь идеи есть?

С уважением, Дима!
*

Bugs_B

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
  • http://sait-pro.ru
ДИМА ВОТ ОТВЕт  на твой вопрос, предупреждаю сразу я не программист но логично мыслить иногда умею
переменная $category_id при отпечатываение не выдает ничего а это значит в ней ничего нет и поэтому проверку
Код
if($category_id == 6){$categories_per_row = 1;}else{$categories_per_row = 2;}
сдесь  использовать не рационально вот мое предложение я сравниваю по адресу загруженной страници и у меня все работает а если умельци его пере делаю так как должнобыть правильно значит еще лучше будет
Код
if( !isset( $categories_per_row )) {
$b = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    if($b == "http://ПРЯМОЙ АДРЕС ВАШЕГО КАТАЛОГА" ){$categories_per_row = 4;}else{$categories_per_row = 1;}
*

Bugs_B

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
  • http://sait-pro.ru
Товарищи помогите решить проблему начинающему программисту
Мне нужно, что бы на странице с категориями при входе в любую категорию было такое отображение товаров
Шапка [Категория]
                     [Под категория]
                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество

                     [Под категория]

                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество
                                      [Товар] – кнопка купить товар и выбрать количество


Имя сайта\www\components\com_virtuemart\themes\default\templates\common\categoryChildlist.tpl.php
Сделал проверку (Но проверка кривая, кто может придумать другую, правильную, буду благодарен)
Код
if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){$categories_per_row = 4;}else{$categories_per_row = 1;}                 
То есть если путь загруженной страницы равен пути отображения категории то тогда отображаться 4 категории на страницы если нет то тогда отображение одной подкатегории в строке а дальше проверка какие товары храниться в этой категории и отпечатывание их
Вот полный код
Код

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

$iCol = 1;
if( !isset( $categories_per_row )) {
$b = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){$categories_per_row = 4;}else{$categories_per_row = 1;}
}
$cellwidth = intval( 100 / $categories_per_row );

if( empty( $categories )) {
return; // Do nothing, if there are no child categories!
}
?>


<br/>
<table width="100%" cellspacing="0" cellpadding="0" border="1">
<?php
foreach( $categories as $category ) {
if ($iCol == 1) { // this is an indicator wether a row needs to be opened or not
echo "<tr>\n";
}
?>

<td align="center" width="<?php echo $cellwidth ?>%" >
<br />
         <a title="<?php echo $category["category_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_virtuemart&amp;page=shop.browse&amp;category_id=".$category["category_id"])?>">
<?php

           if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){

         if ( $category["category_thumb_image"] ) {
echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");
echo "<br /><br/>\n";
}
            echo $category['number_of_products'];
            }
            else{

            do
{

 $result = mysql_query ("SELECT category_description FROM jos_vm_category WHERE category_id=".$category["category_id"]);
$f = mysql_fetch_array ($result);

echo $f['category_description']  ;

       }
       while ($f = mysql_fetch_array ($result));

  }
            ?>


</a>


      <?php         /*вызов продукта из базы и проверка лампочки на свет (теплый, белый, холодный)*/

       if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){

          }  else{

          $result_category = mysql_query ("SELECT * FROM jos_vm_product_category_xref WHERE category_id=".$category["category_id"]);
$fooo1 = mysql_fetch_array ($result_category);

           do    /*Находим в какой категории какой продукт лежит*/
{
   $product_id_categor = $fooo1['product_id'];
  $product_name = $fooo1['product_name'];

           if ($product_id_categor == "") {  } else {       /*достаем из бызы картинку и все данные о продукте*/

            $result_product = mysql_query ("SELECT * FROM jos_vm_product WHERE product_id=".$product_id_categor);
$fooo2 = mysql_fetch_array ($result_product);

                 do    /*Находим в какой категории какой продукт лежит*/
{
   $product_id = $fooo2['product_id'];
  $product_thumb_image = $fooo2['product_thumb_image'];


/*? КАК МНЕ ВСТАВИТЬ ВОТ СЮДА КНОПКУ КУПИТЬ?*/
    echo "<a style='font-size:16px; font-weight:bold;' href='\n";
echo $sess->purl(URL."www.g-too.ru/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=".$product_id."&category_id=".$category["category_id"]."&option=com_virtuemart&Itemid=1");

       echo "'>\n";
          echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="1" title="'.$product_name.'" alt="'.$product_name .'"'  ) ;

 echo $mm_action_url;
echo  @$_REQUEST['category_id'];
echo $product_id;
echo $i;


               echo $form_addtocart;
/*? КАК МНЕ ВСТАВИТЬ ВОТ СЮДА КНОПКУ КУПИТЬ?*/
                    }
            while ($fooo2 = mysql_fetch_array ($result_product));
                     }
                 }
            while ($fooo1 = mysql_fetch_array ($result_category));
                 }
             ?>
    </td>


<?php           /*отпечатывание картинки и информации о категории*/
// Do we need to close the current row now?
if ($iCol == $categories_per_row) { // If the number of products per row has been reached
echo "</tr>\n";
$iCol = 1;
}
else {
$iCol++;
}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
echo "</tr>\n";
}

if($b == "http://komiron.ru/index.php?option=com_virtuemart&Itemid=29" or $b == "http://www.komiron.ru/index.php?option=com_virtuemart&Itemid=29" ){echo "";} else { echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");           }
?>
</table>


Я нашел что за отображение этой формы (Кнопка купить и количество товаров отвечает вот эта строчка

Код
<div style="float:left;width:90%;margin-top: 3px;"><?php echo $form_addtocart ?>
в шаблоне отображения товаров
Имя вашего сайта\www\components\com_virtuemart\themes\default\templates\browse\browse_3.php
 Файл формы купить  и количество товаров находиться вот где
ваш сайт\www\components\com_virtuemart\themes\default\templates\browse\includes\addtocart_form.tpl.php
пожалуйста помогите пожалуйста кто чем сможет как мне перенести вот эту строчку
Код
<div style="float:left;width:90%;margin-top: 3px;"><?php echo $form_addtocart ?>
Из browse_3.php в мой код куда я подписал в закомментированных скобках
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
а как убрать название под картинкой категории и оставить толькоккартинку как ссылку на категорию?
*

Bugs_B

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
  • http://sait-pro.ru
а как убрать название под картинкой категории и оставить толькоккартинку как ссылку на категорию?
ковыряй вот этот файл там все есть
*

Vitek

  • Захожу иногда
  • 185
  • 0 / 0
Да, так явно грамотней - указывать этот параметр в шаблоне. А то нейзвесно в каком месте его нарисовали сразу)))))

Я тут еще немного подделал.
Если заменить строку:
Код
$categories_per_row = 4;
на
Код
if($category_id == [ИД ВАШЕЙ КАТЕГОРИИ]){$categories_per_row = 1;}else{$categories_per_row = 4;}
Где [ИД ВАШЕЙ КАТЕГОРИИ] - это вот этот кусок строки - .../index.php?option=com_virtuemart&page=shop.browse&category_id=3&Itemid=1
То можно более гибко настроить все это дело.

Вроде просто, но полезно ;)
у меня этот способ не работает, какие значение не ставлю всё равно количество категорий в одной строке одинаково количеству подкатегорий в одной строке, подскажите подробнее плз
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
громко сказано РЕШЕНО ко7гда ничего не решено
*

Вованище

  • Захожу иногда
  • 134
  • 20 / 0
  • <target = blank>
Решил этот вопрос таким образом:
В файле /components/com_virtuemart/themes/default/templates/common/categoryChildlist.tpl.php весь код меняем на это:
Код
<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
mm_showMyFileName(__FILE__);

if( empty( $categories )) {
return; // Do nothing, if there are no child categories!
}
?>
<br/>
<?php
foreach( $categories as $category ) { ?>
<div style="float:left; width:160px;">
         <a title="<?php echo $category["category_name"] ?>" href="<?php $sess->purl(URL."index.php?option=com_virtuemart&amp;page=shop.browse&amp;category_id=".$category["category_id"])?>">
<?php
if ( $category["category_thumb_image"] ) {
echo ps_product::image_tag( $category["category_thumb_image"], "alt=\"".$category["category_name"]."\"", 0, "category");
echo "<br /><br/>\n";
}
echo $category["category_name"];
echo $category['number_of_products'];
?>
</a></div>
<?php } ?>

Ширину дива задаем по желанию.
Теперь имеем в ряду столько подкатегорий, сколько помещается в окно.
*

Гринвич

  • Захожу иногда
  • 213
  • 0 / 0
Ребята, вопросик по расположению категорий.

У меня 19 категорий расположены по 3 в ряду.
Появилась категория (перчатки) которая выпадает из общей картины (18x3)
Хочу её расположить в нижней части всех категорий, по центру.
(широкую картинку поставил специально для этого)

Знаю что править нужно файлик categoryChildlist.tpl.php, но не знаю как.

« Последнее редактирование: 16.06.2011, 13:27:08 от Гринвич »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Невидимая регистрация ( Покупка без регистрации ) V1.1.3

Автор urodoff

Ответов: 319
Просмотров: 108722
Последний ответ 27.10.2014, 15:27:02
от gaalferov
[Решено] Отобразить кол-во товаров из всех подкатегорий V1.1.3

Автор bazic

Ответов: 19
Просмотров: 13681
Последний ответ 18.09.2014, 06:39:33
от fila61
вывод категории и её подкатегорий на одной странице

Автор sega

Ответов: 44
Просмотров: 15574
Последний ответ 30.04.2014, 14:05:45
от ИринаМ
[Решено] Добавление Watermark к фото товара V1.0.15 V1.1.3

Автор mickymouse

Ответов: 52
Просмотров: 22646
Последний ответ 13.06.2013, 01:04:46
от richman
[Решено] Как изменить ,товаров в наличии 1 на "есть в наличии" V1.0.15 V1.1.3

Автор ButuzOFF

Ответов: 93
Просмотров: 41088
Последний ответ 17.05.2013, 21:10:44
от sa1981