Jump to content

Создать Блок вывода последних статей в Блогах (с изображением)

Featured Replies

Posted

Всем привет! 

Существует Стандартный Блок "Последние записи", который выводит настраиваемое количество записей из Блогов.
Хотелось бы добавить в них миниатюру изображения к примеру как желает это Google+ когда публикуешь ссылку на тот же Блог. 

 block.thumb.PNG.ad4ed38fb96fe96579e7b09b    block-1.thumb.PNG.08c7d7e93dbd87dbacd244

 

Такая вот идея. Может кому-то понравится и возьмется за реализацию. 

Edited by AUS

Смотрел - знаний моих не хватает определить переменную. В 3.4 IP.Content содержал список всех доступных переменных для блока, такой функционал в 4.0 ещё не реализовали, и не знаю реализуют ли вообще.

  On 02.06.2015 at 08:53, Respected said:

Смотрел - знаний моих не хватает определить переменную. В 3.4 IP.Content содержал список всех доступных переменных для блока, такой функционал в 4.0 ещё не реализовали, и не знаю реализуют ли вообще.

​Там явно нет переменной с первой картинкой записи в блоге. Нужно из текста регуляркой вытаскивать. Да и у ТС не вижу на форуме Контента.

  • Author

Значит нужно делать скрипт, как я понимаю. 
Ведь к примеру вставляю url в vk или Google+ они находят изображение и добавляют его. 

vkt.thumb.PNG.3ab4498e4e6798e3474ce5b238

Edited by AUS

  On 02.06.2015 at 09:17, AUS said:

Значит нужно делать скрипт, как я понимаю. 
Ведь к примеру вставляю url в vk или Google+ они находят изображение и добавляют его. 

vkt.thumb.PNG.3ab4498e4e6798e3474ce5b238

​У гугла свои алгоритмы. Он почти все сам делает.

  • 3 недели спустя...
  • 1 year later...
  • Author
  On 30.06.2016 at 07:21, Respected said:

Скрины побились, посмотреть бы как сейчас и как нужно

Сейчас данный виджет выглядит вот так:


now.JPG

 

Если взять ссылку на одну из записей Блога и вставить её в VK по получится так:


vk.JPG

А мне нужен некий симбиоз для виджета - примерно вот так что бы выглядело:

mix.jpg

  On 30.06.2016 at 08:10, AUS said:

Я так понимаю механизм oEmbeded надо использовать:


https://habrahabr.ru/post/141303/

 

Перейдите в шаблон blog → front → entry → entryRow и после {{if $orientation == 'horizontal'}} ставьте следующее:

			{{$content = new \DOMDocument;}}
			{{$content->loadHTML( $entry->content() );}}
			{{$src = $content->getElementsByTagName('img')->item(0)->getAttribute('src');}}
			{{\IPS\Output::i()->parseFileObjectUrls( $src );}}
			<a class="ipsAttachLink ipsAttachLink_image" href="{$src}" rel="external nofollow noopener noreferrer" target="_blank" style="display: block; max-width: 400px;" data-ipslightbox><img src="{$src}" class="ipsImage ipsImage_thumbnailed"></a>

Данный код отобразит самую первую картинку из каждой записи блога. За ширину картинки отвечает число 400.

  • Author

@cpt_z3qo вставил код, сохранил, удалил виджет и добавил заново - ни чего не изменилось

код получился таким 

Показать контент

Сори но у меня путь к шаблону немного другой:

blog - front - widgets - entryRow 

Edited by AUS

  • Author

Уточните пожалуйста - ваш код работает только если виджет в подвале или в шапке, а если сбоку вертикально? 

UPDATE: всё догадался, вставил код выше  {{if $orientation == 'horizontal'}}   и тогда в горизонтальном виджете отобразятся картинки 

Edited by AUS

  • Author

Пока эксперементировал с кодом понял обнаружил проблему - смыйлы воспринимаются за изображение и выдаются в качестве первого рисунка :(
Надо как-то исключить смайлы или брать последнюю картинку а не первую.

Ваш код @cpt_z3qo я вставил после строчки 
 

<a href="{$entry->url('getLastComment')}" title='{lang="view_this_entry" sprintf="$entry->_title"}' class='ipsType_medium ipsType_break'>{wordbreak="$entry->name"}</a><br>

и получил во такую картинку:
 

ASC   Almaty Subaru Club.png

  On 01.07.2016 at 04:14, AUS said:

Пока эксперементировал с кодом понял обнаружил проблему - смыйлы воспринимаются за изображение и выдаются в качестве первого рисунка :(
Надо как-то исключить смайлы или брать последнюю картинку а не первую.

Ваш код @cpt_z3qo я вставил после строчки 
 


<a href="{$entry->url('getLastComment')}" title='{lang="view_this_entry" sprintf="$entry->_title"}' class='ipsType_medium ipsType_break'>{wordbreak="$entry->name"}</a><br>

и получил во такую картинку:
 

ASC   Almaty Subaru Club.png

Я извиняюсь, но этой не мой код. мне подсказал администратор запрещённый_сайт.ru

  On 01.07.2016 at 05:32, cpt_z3qo said:

Я извиняюсь, но этой не мой код. мне подсказал администратор запрещённый_сайт.ru

"одного сайта "

  • Author

Предложили такой обработчик что бы исключить смайлы, но что он не завелся 

 

{{$content = new \DOMDocument;}}
{{$content->loadHTML( $entry->content() );}}
{{	$keep_going = true;
	$index_item = 0;
	while($keep_going){
	$src = $content->getElementsByTagName('img')->item($index_item)->getAttribute('src');
	$image = imagecreatefromstring($src);
	$w = imagesx($image);
	$h = imagesy($image);
	if ($w>25 && $h>25)
	$keep_going = false;
	$index_item++;
     }
}}
{{\IPS\Output::i()->parseFileObjectUrls( $src );}}
<a class="ipsAttachLink ipsAttachLink_image" href="{$src}" rel="external nofollow noopener noreferrer" target="_blank" style="display: block; max-width: 223px;" data-ipslightbox><img src="{$src}" class="ipsImage ipsImage_thumbnailed"></a>

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.