Новости Joomla

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

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

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
Увеличение выбора покупаемых товаров в карточке товара + - подсмотрел у vm

Стили добавляйте сами.

com_jshopping\templates\default\produc\product_default.php
находим
Код
<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" />
ниже добавляем сточки
Код
<input class="quantity-plus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
<input class="quantity-minus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
isNaN вроде применяется только на UNIX платформах
« Последнее редактирование: 09.01.2012, 13:37:13 от Aspik »
Мои расширения - http://eco-joom.com/ru/
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Попробуемс ... завтра только.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

BaevAS

  • Захожу иногда
  • 116
  • 1 / 0
  • Время проведенное на рыбалке, в счет жизни не идет
Только вчера с этим кувыркался а сегодня вот есть решение. Большое человеческое спасибо
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Прекрасненько !

Если в горизонтале используются кнополки то конечно логичней
Код
<input class="quantity-minus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">

<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" />

<input class="quantity-plus" type="button" onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">


Тогда минус перед полем, плюс после :) Работает.
разрабам может в сток кинуть ?

ЗЫ. кинул в ФАК. Ну и в репу дал ;)
« Последнее редактирование: 09.01.2012, 12:17:30 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
разрабам может в сток кинуть ?
Совсем не понятен вопрос
Мои расширения - http://eco-joom.com/ru/
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Ну я имел ввиду вставить в инсталляцию сразу.
Чтобы не хакать.
Хотя дело касается шаблона... тут уж без разницы. Все равно это индивидуальные вещи и правятся под себя.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
спасибо, тока там надо не забыть value="-" и value="+" вставить, или свою кнопку... я сразу и не понял почему знака нет на кнопке :)

кстати тоже самое работает и в таблице корзины.... добавить надо в .........com_jshopping/templates/default/cart/cart.php
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
вообще знак делается на кнопки методом CSS оформления.
Мои расширения - http://eco-joom.com/ru/
*

serikus

  • Новичок
  • 5
  • 0 / 0
Попробывал сделать картинками http://ms4mobile.make-art.lv/index.php/webshop/makeart/portrait, у меня изображения на разном уровне с кнопкой. Как это можно исправить?
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
*

serikus

  • Новичок
  • 5
  • 0 / 0
готовое решение по стилям можно взять от сюда http://demo.virtuemart.net/index.php?page=shop.product_details&category_id=11&flypage=flypage_default.tpl&product_id=28&option=com_virtuemart&Itemid=12&vmcchk=1&Itemid=12

Код
<li class="prod_qty_input">
<input class="quantity-minus" type="image" img src="http://ms4mobile.make-art.lv/images/minus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 35px" value = "<?php print $this->default_count_product?>" />
<input class="quantity-plus" type="image" img src="http://ms4mobile.make-art.lv/images/plus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
</li>

*Просмотрел я код, вроде бы похоже. Но проблема в том, что надо и CSS редактировать, а мои познания не столь велики. Я пробывал несколько раз, но как видите на ссылке моей, картинки не на одном уровне. вот что меня напрягает
« Последнее редактирование: 15.01.2012, 17:11:33 от serikus »
*

Aspik

  • Давно я тут
  • 542
  • 63 / 2
  • В личку не писать, не отвечу.
эээ... а Вас не напрягает что Вы мне линканули VirtueMart в теме JoomShopping? И мне редактировать надо php файл, а не Page Source из Оперы?


*Просмотрел я код, вроде бы похоже. Но проблема в том, что надо и CSS редактировать, а мои познания не столь велики.
нет не напрягает, читайте первый пост откуда взято решение.
Да вам надо редактировать CSS -  найти вашу таблицу стилей можно по пути components\com_jshopping\css
Лучшего использовать mozilla+firebug
Знания css+html обязательны
Мои расширения - http://eco-joom.com/ru/
*

serikus

  • Новичок
  • 5
  • 0 / 0
нет не напрягает, читайте первый пост откуда взято решение.
Да вам надо редактировать CSS -  найти вашу таблицу стилей можно по пути components\com_jshopping\css
Лучшего использовать mozilla+firebug
Знания css+html обязательны

к сожалению моих знаний в CSS не хватит. Может быть предоставите какую либо наводку, или ссыль для поиска, так как неудобно просить делать за меня.


*пробывал
Код
<table width="100%">
   <tr>
    <td width="100"></td>
    <td align="center"> CODE</td>
   </tr>
  </table>
, не вышло.
« Последнее редактирование: 15.01.2012, 17:26:33 от serikus »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Если хотите чтобы было красиво, надо ЦСС поправить.

В файле цсс шаблона (если дефолтный то components/com_jshopping/css/default.css)
Нужно зайти и создать 2 класса и к ним прописать стили
.quantity-minus {описать вид вывода}
.quantity-plus {описать вид вывода}

Пример части ЦСС с обозначенного выше ресурса ;)
Код
input.quantity-minus {
    background: url("themes/vmTheme_framework//assets/css/../../images/style1/quantity-controls.png") repeat-x scroll 15px 0 transparent;
    border: medium none;
    float: left;
    height: 14px;
    padding: 0;
    width: 15px;
}

Если просто сделать то можно добавить в код строки (там где Вы меняли)
Цитировать
<input class="quantity-minus" value="-" type="button" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
Соответственно для плюса "+"

Без знаний никак :)
Посмотрите видеоуроки или читать тут
« Последнее редактирование: 15.01.2012, 18:50:27 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
JS 3.5.0

Чуть поправлен вариант для корзины - если было несколько товаров, то при нажатии плус-минус возле любого, изменялось количество у первого.

вариант с картинками

Код
<input class="quantity-minus" type="image" img src="<?php print $this->image_path ?>images/minus-16.png" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type="text" id="quantity<?php print $key_id ?>" name="quantity[<?php print $key_id ?>]" value="<?php print $prod['quantity'] ?>" class="inputbox" style="width: 20px" />
<?php print $prod['_qty_unit'];?>
<input class="quantity-plus" type="image" img src="<?php print $this->image_path ?>images/plus-16.png" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">


вариант с текстовыми + -

Код
<input class="quantity-minus" value="-" type="button" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type="text" id="quantity<?php print $key_id ?>" name="quantity[<?php print $key_id ?>]" value="<?php print $prod['quantity'] ?>" class="inputbox" style="width: 20px" />
<?php print $prod['_qty_unit'];?>
<input class="quantity-plus" value="+" type="button" onclick="var qty_el = document.getElementById('quantity<?php print $key_id ?>'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
*

soft87

  • Новичок
  • 3
  • 6 / 0
Так красивее, сразу пересчитывает:

Код
      <input class="quantity-minus" type="button" value="-" onclick="var qty_el = document.getElementById('quantity[<?php print $key_id ?>]'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--; document.updateCart.submit(); return false;">
      <input type = "text" id = "quantity[<?php print $key_id ?>]" name = "quantity[<?php print $key_id ?>]" value = "<?php print $prod['quantity'] ?>" class = "inputbox" style = "width: 25px" />
      <input class="quantity-plus" type="button" value="+" onclick="var qty_el = document.getElementById('quantity[<?php print $key_id ?>]'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++; document.updateCart.submit(); return false;">
*

dragon4x4

  • Захожу иногда
  • 196
  • 7 / 0
очень кстати :) с меня плюсик
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Очень содержательная дискуссия. Даже не знаю кому плюсануть.
Спасибо Aspik и nevigen
*

Polosat

  • Захожу иногда
  • 202
  • 7 / 0
  • Мечты - это то, из чего сделано будущее
Спасибо, в карточке товара работает, а как вывести всё это дело в категорию товара? Что бы не заходя в карточку товара можно было кидать товары в корзину из категории при этом выбирая кол-во ?  ::)

вот нашел подобную тему-вопрос, без ответа

http://joomlaforum.ru/index.php/topic,180316.0.html

Пытаюсь вживить код + -  в файл  product.php

/components/com_jshopping/templates/default/list_products/
« Последнее редактирование: 15.03.2012, 19:19:22 от Polosat »
*

Polosat

  • Захожу иногда
  • 202
  • 7 / 0
  • Мечты - это то, из чего сделано будущее
никак не могу подружить между собой 2 куска кода из разных файлов

вот это то что есть в списке товара в категории без + -

Код
  <div class="buttons">
            <?php if ($product->buy_link){?>
            <a href="<?php print $product->buy_link?>"><?php print _JSHOP_BUY?></a> &nbsp;
            <?php }?>
            <a href="<?php print $product->product_link?>"><?php print _JSHOP_DETAIL?></a>
            <?php print $product->_tmp_var_buttons;?>
        </div>

а вот этот код из карточки товара который генерирует + -

Код
   <table class="prod_buttons">
        <tr>
            <td class="prod_qty">
                <?php print _JSHOP_QUANTITY?>:&nbsp;
            </td>
            <td class="prod_qty_input">
                <li class="prod_qty_input">
<input class="quantity-minus" type="image" img src="http://ms4mobile.make-art.lv/images/minus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 1 ) qty_el.value--;return false;">
<input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 35px" value = "<?php print $this->default_count_product?>" />
<input class="quantity-plus" type="image" img src="http://ms4mobile.make-art.lv/images/plus.png" width=35px height=35px onclick="var qty_el = document.getElementById('quantity'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;">
</li>

            </td>       
            <td class = "buttons">           
                <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                <?php if ($this->enable_wishlist){?>
                    <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_WISHLIST?>" onclick="jQuery('#to').val('wishlist');" />
                <?php }?>
                <?php print $this->_tmp_product_html_buttons;?>
            </td>
            <td id = "jshop_image_loading" style = "display:none"></td>
        </tr>
        </table>
*

Deamelfuse

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
То же самое. Увеличивая или уменьшая кол-во в любом товаре, увеличение и уменьшение происходит только в первом:(

У кого нибудь есть соображения по этому поводу?

*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
То же самое. Увеличивая или уменьшая кол-во в любом товаре, увеличение и уменьшение происходит только в первом:(

У кого нибудь есть соображения по этому поводу?



Есть  :)

на несколько сообщений выше http://joomlaforum.ru/index.php/topic,196216.msg1074742.html#msg1074742
*

Polosat

  • Захожу иногда
  • 202
  • 7 / 0
  • Мечты - это то, из чего сделано будущее
Есть  :)

на несколько сообщений выше http://joomlaforum.ru/index.php/topic,196216.msg1074742.html#msg1074742

Это не решение, оно или не работает или в корзину попадает один товар. Для себя решил установкой VM 2...
*

pyh

  • Захожу иногда
  • 117
  • 11 / 0
Это не решение, оно или не работает или в корзину попадает один товар. Для себя решил установкой VM 2...

Вы проверяли ?

Что значит "или" ?

vm2 - да на здоровье


*

Alexey1979

  • Новичок
  • 2
  • 0 / 0
И все таки вопрос остался без внимания, как можно сделать кнопки увеличения/уменьшения колчиества товара не на странице продукта, а на странице категории где отображен список товаров. Я попробовал и получилась та же самая беда, все кнопки последующих товаров управляют лишь колчиеством первого товара. Сам не силен в джава скрипте, но что то говорит мне, что надо как то ID товара к кнопкам прикрутить, чтобы нажав на кнопку с ID=7 количество увеличилось только в поле Input c ID=7 а не в первом товаре или ещё где нибудь. Специалисты подскажите на выше описанном примере для одного товара, как сделать подобное на списке товара.     :(
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
И все таки вопрос остался без внимания, как можно сделать кнопки увеличения/уменьшения колчиества товара не на странице продукта, а на странице категории где отображен список товаров. Я попробовал и получилась та же самая беда, все кнопки последующих товаров управляют лишь колчиеством первого товара. Сам не силен в джава скрипте, но что то говорит мне, что надо как то ID товара к кнопкам прикрутить, чтобы нажав на кнопку с ID=7 количество увеличилось только в поле Input c ID=7 а не в первом товаре или ещё где нибудь. Специалисты подскажите на выше описанном примере для одного товара, как сделать подобное на списке товара.     :(
В этих строках видно куда передается увеличение или уменьшение цифры:
Код
document.getElementById('quantity')
Следовательно каждому товару для поля с количеством надо давать индивидуальное имя и номер. Например:
Код
<input type = "text" name = "quantity_<?php print $this->product_id?>" id = "quantity_<?php print $this->product_id?>"...
И передавать увеличение соответственно:
Код
document.getElementById('quantity_<?php print $this->product_id?>')
Не проверял, но думаю направление мысли понятно...
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

nuruzadeh

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
И все таки вопрос остался без внимания, как можно сделать кнопки увеличения/уменьшения колчиества товара не на странице продукта, а на странице категории где отображен список товаров. Я попробовал и получилась та же самая беда, все кнопки последующих товаров управляют лишь колчиеством первого товара. Сам не силен в джава скрипте, но что то говорит мне, что надо как то ID товара к кнопкам прикрутить, чтобы нажав на кнопку с ID=7 количество увеличилось только в поле Input c ID=7 а не в первом товаре или ещё где нибудь. Специалисты подскажите на выше описанном примере для одного товара, как сделать подобное на списке товара.     :(
Здравствуйте! никто не подскажет что и где за ошибка? почему меняется только первый товар?
*

nuruzadeh

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Здравствуйте! Никто не сможет по этой теме помоч?
*

b-boy

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Народ! Еще никто не решил вопрос, как реализовать изменение количества товара на странице категории?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод товаров из всех подкатегорий на странице категории

Автор Faina

Ответов: 355
Просмотров: 68694
Последний ответ 11.10.2025, 08:48:34
от kit2m2
[Решено] Вывод 3-х первых картинок в списке товаров категории

Автор rudoy24

Ответов: 30
Просмотров: 12397
Последний ответ 19.07.2024, 11:41:28
от juleczka
Определить расширение. pop_description для списка товаров

Автор Alex_gs

Ответов: 3
Просмотров: 2206
Последний ответ 24.09.2023, 12:18:34
от kit2m2
Смена фото при наведении в списке товаров категории

Автор Taatshi

Ответов: 57
Просмотров: 6479
Последний ответ 15.06.2023, 15:53:25
от Akeksandr
Шаблон фильтрации товаров

Автор Prevergenec

Ответов: 1
Просмотров: 2534
Последний ответ 23.01.2023, 18:13:43
от kit2m2