Новости 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 Гость просматривают эту тему.
  • 3 Ответов
  • 645 Просмотров
*

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Всем привет.
Переделал related.php что бы сопутка выводилась скролером вот сам файл
Код
<script  type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function(){
       jQuery(".b-carousel-button-right").click(function(){ // при клике на правую кнопку запускаем следующую функцию:
jQuery(".h-carousel-items").animate({left: "-142px"}, 200); // производим анимацию: блок с набором картинок уедет влево на 222 пикселя (это ширина одного прокручиваемого элемента) за 200 милисекунд.
setTimeout(function () { // устанавливаем задержку времени перед выполнением следующих функций. Задержка нужна, т.к. эти ффункции должны запуститься только после завершения анимации.
jQuery(".h-carousel-items .b-carousel-block").eq(0).clone().appendTo(".h-carousel-items"); // выбираем первый элемент, создаём его копию и помещаем в конец карусели
jQuery(".h-carousel-items .b-carousel-block").eq(0).remove(); // удаляем первый элемент карусели
jQuery(".h-carousel-items").css({"left":"0px"}); // возвращаем исходное смещение набора набора элементов карусели
}, 300);
});

       jQuery(".b-carousel-button-left").click(function(){ // при клике на левую кнопку выполняем следующую функцию:
jQuery(".h-carousel-items .b-carousel-block").eq(-1).clone().prependTo(".h-carousel-items"); // выбираем последний элемент набора, создаём его копию и помещаем в начало набора
jQuery(".h-carousel-items").css({"left":"-142px"}); // устанавливаем смещение набора -222px
jQuery(".h-carousel-items").animate({left: "0px"}, 200); // за 200 милисекунд набор элементов плавно переместится в исходную нулевую точку
jQuery(".h-carousel-items .b-carousel-block").eq(-1).remove(); // выбираем последний элемент карусели и удаляем его
});

});
</script>
<?php $in_row = $this->config->product_count_related_in_row;?>
<?php if (count($this->related_prod)){?> 
<?php $result = count($this->related_prod)?>
<h3 class="jshop-titleheading-2"><?php print _JSHOP_RELATED_PRODUCTS?></h3> 
   <div class="b-carousel"> <!-- контейнер, в котором будет карусель -->
<?php if($result > 4){?>
<div class="b-carousel-button-left"></div> <!-- левая кнопка -->
<div class="b-carousel-button-right"></div> <!-- правая кнопка -->
<?php }?>
<div class="h-carousel-wrapper"> <!-- видимая область карусели -->
<div class="h-carousel-items"> <!-- весь набор элементов карусели -->
       <?php foreach($this->related_prod as $k=>$product) {?>
        <?php if ($product->label_id == '6') continue; ?>    
           <div class="b-carousel-block">
<div class="block_item">
        <div class="item_name">
            <a href="<?php print $product->product_link?>"><?php
$str=($product->name);
            //разбиваем на массив
             $arr_str = explode(" ", $str);
            //берем первые 6 элементов
            $arr = array_slice($arr_str, 0, 6);
            //превращаем в строку
            $new_str = implode(" ", $arr);
           // Если необходимо добавить многоточие
            if (count($arr_str) > 6) {
            $new_str .= '...';
            }
            echo $new_str;//Выведет 'Этот текст имеет большое количество пробелов и...'
?></a>
        </div>
        <div class="item_image">
   
            <a href="<?php print $product->product_link?>">               
                <img width="70px" height="70px" src="<?print($product->image);?>">
            </a>
        </div>

   
<?php if ($product->product_old_price > 0){?>
            <div class="old_price"><?php if ($this->config->product_list_show_price_description) echo _JSHOP_OLD_PRICE.": ";?><span><?php echo formatprice($product->product_old_price)?></span></div>
        <?php }?>
        <?php if ($product->_display_price){?>
        <div class="item_price">
            <div class="item_price_1">
<?php if ($product->product_price == '0') { ?>
<span style="font-size:8px;"><?php print 'ДОГОВОРНАЯ ЦЕНА';?></span>
<?php } else {?>
<?php print formatprice($product->product_price);?>
<?php }?>
</div>
<?php if ($product->buy_link){?>
            <a class="button_buy" title="Добавить в корзину <?php
$str=($product->name);
            //разбиваем на массив
             $arr_str = explode(" ", $str);
            //берем первые 6 элементов
            $arr = array_slice($arr_str, 0, 6);
            //превращаем в строку
            $new_str = implode(" ", $arr);
           // Если необходимо добавить многоточие
            if (count($arr_str) > 6) {
            $new_str .= '...';
            }
            echo $new_str;//Выведет 'Этот текст имеет большое количество пробелов и...'
?>" href="<?php echo $product->buy_link?>"></a> &nbsp;
            <?php }?>
        </div>
<div class="cls"></div>
        <?php }?>
<div class="cls"></div>
    </div>
</div>         
       <?php }?>
</div>
</div>     
 </div>
<?php }?>
Скрипт нарыл в интернете. Он работает при нажатии на стрелки прокрутки . Но вот незадача мне еще нужно что бы он запускался при открытии и останавливался когда наводишь на блок с товарами. Нужна помощь.
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Сопутствующие материалы сролером
« Ответ #1 : 29.10.2018, 02:35:05 »
В интернете есть много библиотек скролеров/слайдеров с большим кол-вом настроек, в том числе и автозапуск, остановка при наведении и еще куча настроек...

Подключите одну из них и будет как Вы хотите.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Re: Сопутствующие материалы сролером
« Ответ #2 : 30.10.2018, 09:44:27 »
В интернете есть много библиотек скролеров/слайдеров с большим кол-вом настроек, в том числе и автозапуск, остановка при наведении и еще куча настроек...

Подключите одну из них и будет как Вы хотите.
Да вот эта как раз и заработала . Весь прикол в том что идет конфликт по ходу скриптов хоть и стоит  jQuery Easy. Другие вообще не работают просто.
*

kit2m2

  • Живу я здесь
  • 3370
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Сопутствующие материалы сролером
« Ответ #3 : 30.10.2018, 15:23:11 »
Да вот эта как раз и заработала . Весь прикол в том что идет конфликт по ходу скриптов хоть и стоит  jQuery Easy. Другие вообще не работают просто.
Сайт покажите
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JoomShopping плагин подмены статического текста JoomShopping на материалы Joomla

Автор sergeytolkachyov

Ответов: 6
Просмотров: 1826
Последний ответ 01.03.2024, 13:41:05
от sergeytolkachyov
Вторые сопутствующие товары

Автор katjuha6

Ответов: 13
Просмотров: 1295
Последний ответ 30.08.2018, 18:02:20
от nevigen
Сопутствующие Товары + Слайдер

Автор kadet3000

Ответов: 15
Просмотров: 5028
Последний ответ 21.07.2017, 11:49:56
от kit2m2
Сопутствующие товары в списке товаров?

Автор aleksandrozz

Ответов: 12
Просмотров: 1475
Последний ответ 04.02.2017, 10:21:24
от aleksandrozz
Сопутствующие + дополнительные товары

Автор kvai

Ответов: 12
Просмотров: 2142
Последний ответ 31.10.2016, 15:33:54
от nevigen