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

Nikoz

  • Захожу иногда
  • 115
  • 4 / 0
Логотип производителя
« : 04.03.2012, 14:59:36 »
Вот сделал для себя код, при котором выводится картинка из папки  /images/brands/Бренд.jpg

Код
<?php echo'<img src="./images/brands/'.$this->product->mf_name.'.jpg">' ?>

И реализовал у себя:
Код

<?php  /* производитель - начало */
if(VmConfig::get('show_manufacturers', 1) && !empty($this->product->virtuemart_manufacturer_id)) { ?>
<div class="gkblock-4">
<?php
$link = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id='.$this->product->virtuemart_manufacturer_id.'&tmpl=component');
$text = '<img src="./images/brands/'.$this->product->mf_name.'.jpg">';
                   
  if (strtolower(JRequest::getWord('output')) == "pdf"){
echo JHTML::_('link', $link, $text);
} else { ?>

<a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $link ?>"><?php echo $text ?></a>
</div>



<?php } /* производитель */ ?>

Если есть производитель - выводит блок, если нет - нет.


Может кому поможет.. так и не понял как взять картинку производителя из админки
*

olejenya

  • Захожу иногда
  • 218
  • 3 / 0
Re: Логотип производителя
« Ответ #1 : 24.04.2012, 23:59:18 »
Интересует такой вопрос.Но не подходит,так как називаю я картинки стандартно,например бренд1,бренд2.А тайтлы у меня например адидас и найк.От и получается неувязочка((Как бы его вывести по id мануфактуры?Тогда бы запары не было с названиями картинок и мануфактур.Господа продвинуты програмеры помогите реализовать человеческий вывод логотипа)))А то сегодня картинка .png , завтра .jpg а послезавтра  вперемешку(((
*

DNK

  • Осваиваюсь на форуме
  • 23
  • 1 / 0
Re: Логотип производителя
« Ответ #2 : 12.06.2012, 10:51:24 »
 ! У меня не получается прибавить имя производителя к картинке в КАТЕГОРИИ, т.е. на выходе <img src="/САЙТ/images/brands/.jpg"> почему-то mf_name. не плюсуется к .jpg. В карточке товара всё нормально! VM2.0.6
*

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
Re: Логотип производителя
« Ответ #3 : 17.01.2014, 15:29:21 »
Так у меня не работает.
Работает так
Код
	<?php echo '<img src="./images/stories/virtuemart/manufacturer/'.$product->mf_name.'.png">' ?>
Название производителя и картинки должно быть одинаковое.
*

artserge

  • Захожу иногда
  • 118
  • 11 / 0
Re: Логотип производителя
« Ответ #4 : 18.02.2014, 03:34:53 »
Чтоб вывести картинку (логотип) производителя настроенный в админке,  например в карточке товара - я сделал следующее :

В administrator\components\com_virtuemart\models\manufacturer.php  добавил метод

Код
	public function getManufacturerSingle( $manufacturer_id ) {

$mainframe = JFactory::getApplication();
$where = array();
$where[] .= ' `m`.`virtuemart_manufacturer_id` = '. $manufacturer_id;

$where[] .= ' `m`.`published` = 1';

$whereString = '';
if (count($where) > 0) $whereString = ' WHERE '.implode(' AND ', $where) ;
$select = ' `m`.*,`#__virtuemart_manufacturers_'.VMLANG.'`.*, mc.`mf_category_name` ';
$joinedTables = 'FROM `#__virtuemart_manufacturers_'.VMLANG.'` JOIN `#__virtuemart_manufacturers` as m USING (`virtuemart_manufacturer_id`) ';
$joinedTables .= ' LEFT JOIN `#__virtuemart_manufacturercategories_'.VMLANG.'` AS mc on  mc.`virtuemart_manufacturercategories_id`= `m`.`virtuemart_manufacturercategories_id` ';
$groupBy=' ';

$select .= ',mmex.virtuemart_media_id ';
$joinedTables .= 'LEFT JOIN `#__virtuemart_manufacturer_medias` as mmex ON `m`.`virtuemart_manufacturer_id`= mmex.`virtuemart_manufacturer_id` ';
$groupBy=' GROUP BY `m`.`virtuemart_manufacturer_id` ';

$whereString = ' ';
if (count($where) > 0) $whereString = ' WHERE '.implode(' AND ', $where).' ' ;

$ordering = $this->_getOrdering();
return $this->_data = $this->exeSortSearchListQuery(0,$select,$joinedTables,$whereString,$groupBy,$ordering );
}

После этого в  шаблоне вывода ссылки на производителя для карточки товара  templates\shoker\html\com_virtuemart\productdetails\default_manufacturer.php вписал:

после
Код
$text = $this->product->mf_name;

Код
$mmodel = VmModel::getModel('Manufacturer');
$manufacturer = $mmodel->getManufacturerSingle($this->product->virtuemart_manufacturer_id);
$mmodel->addImages($manufacturer);



 и заменил  
Код
if (strtolower(JRequest::getWord('output')) == "pdf") {
echo JHTML::_('link', $link, $text);
    } else {
?>
        <span class="bold"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL')?></span><a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $link ?>"><?php echo $text ?></a>
    <?PHP } ?>

на
Код
	if($manufacturer[0]->file_url_thumb != '') {
echo '<a href="'.$link .'"><img src="/'.$manufacturer[0]->file_url_thumb.'" alt="'.$text.'" title="'.$text.'"/></a>';
} else {
/* Avoid JavaScript on PDF Output */
if (strtolower(JRequest::getWord('output')) == "pdf") {
echo JHTML::_('link', $link, $text);
} else {
?>
<span class="bold"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_DETAILS_MANUFACTURER_LBL')?></span><a class="modal" rel="{handler: 'iframe', size: {x: 700, y: 550}}" href="<?php echo $link ?>"><?php echo $text ?></a>
<?PHP }
} ?>


Если есть назначенная картинка - выведет картинку, если нет - выведет строковую ссылку. Да, я у себя отрубаю ссылки эти на производителей, чтоб они вес страницы не "воровали" - так что правильнее выводить просто текстом производителя или просто картинку, без ссылки, ага )
« Последнее редактирование: 18.02.2014, 04:09:17 от artserge »
*

iliya_art

  • Захожу иногда
  • 132
  • 7 / 0
Re: Логотип производителя
« Ответ #5 : 10.04.2014, 18:39:37 »
artserge, спасибо работает, но при таком варианте при клике по логотипу, открывается в этом же окне, как сделать чтобы открывалось в модальном окне?
*

Иоланта

  • Захожу иногда
  • 166
  • 3 / 0
Re: Логотип производителя
« Ответ #6 : 17.05.2015, 17:25:54 »
а как это сделать в VM3?
*

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
Re: Логотип производителя VirtueMart 3
« Ответ #7 : 15.03.2016, 16:28:57 »
Код
<div class="manufacturer">
<?php
$i = 1;

$mans = array();
// Gebe die Hersteller aus
foreach($this->product->manufacturers as $manufacturers_details) {
//Link to products
$link = JRoute::_('index.php?option=com_virtuemart&view=manufacturer&virtuemart_manufacturer_id=' . $manufacturers_details->virtuemart_manufacturer_id. '&tmpl=component', FALSE);
$name = $manufacturers_details->mf_name;
        $image = $manufacturers_details->images[0];
// Avoid JavaScript on PDF Output
if (!$this->writeJs) {
$mans[] = JHtml::_('link', $link, $name);
} else {
$mans[] = '<a class="manuModal" rel="{handler: \'iframe\', size: {x: 700, y: 850}}" href="'.$link .'">'.$image->displayMediaThumb("",false).'</a>';
}
}
echo implode(', ',$mans);
?>
</div>

для карточки товара VM3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не разрешать добавлять товары пока, не оформишь заказ одного производителя?

Автор Dolphin4ik_1

Ответов: 2
Просмотров: 845
Последний ответ 04.01.2019, 15:53:11
от voland
Вывод названия производителя в списке товаров категории

Автор biaggi32

Ответов: 17
Просмотров: 5295
Последний ответ 26.10.2017, 15:34:12
от gertruda
Как на страницу производителя добавить категории с его товарами VirtueMart 2?

Автор vladsklyar

Ответов: 0
Просмотров: 938
Последний ответ 05.10.2016, 20:06:39
от vladsklyar
Meta decsriction и Meta keyword на странице производителя

Автор Siberex

Ответов: 7
Просмотров: 1402
Последний ответ 14.07.2014, 11:02:43
от zomby6888
Категории товаров одного производителя

Автор jouser

Ответов: 2
Просмотров: 1173
Последний ответ 25.03.2014, 23:01:52
от disflash