Перейти к содержанию
Форум поддержки пользователей VamShop

Картинки в новостях на главной


Рекомендуемые сообщения

После доработки в новостях на главной будет отображаться первая найденная картинка из новости.

Простое решение тут: http://gsi.kiev.ua/articles/42-vamshop-dorabotka-novostey.html

Ссылка на сообщение
Поделиться на другие сайты
  • 5 months later...

Спасибо

Картинки в новостях на главной странице

После доработки модуль Новости на главной странице будет выводить помимо текста новости еще и первую найденную картинку (иконку) из новости. Проверено на версии VAM Shop 1.62.

Файл /includes/modules/news.php

После строки

while ($one = vam_db_fetch_array($query,true)) {

добавляем следующий код:

$qI=0; $qIcon='';

if ($qI=strpos($one['content'],'src="')) {

$qI=$qI+5;

$qIcon=substr ($one['content'] , $qI);

$qI=strpos($qIcon,'"');

$qIcon='<img class="newsImagePreview" src="'.substr ($qIcon, 0,$qI).'" alt="Image" />';

}

После кода

$module_content[]=array(

'NEWS_HEADING' => $one['headline'],

'NEWS_CONTENT' => $one['content'],

'NEWS_ID' => $one['news_id'],

добавляем строку

'NEWS_ICON' =>$qIcon,

Файл /templates/ваш_шаблон/latest_news_default.html

Перед строкой

{$module_data.NEWS_CONTENT|vam_truncate:$smarty.const.MAX_DISPLAY_LATEST_NEWS_CONTENT:" ..."}

вставляем строку

{$module_data.NEWS_ICON}

Файл стилей /templates/ваш_шаблон/stylesheet.css

Добавить строку

img.newsImagePreview {float: left; padding: 3px 5px 3px 0; width: 80px !important;}

Готово!

Теперь в Вашем интернет-магазине на VAM Shop для каждой превьюшки новости выводится своя картинка (изображение из текста новости). Размер иконки и отступы вы можете изменить в файле стилей (стиль img.newsImagePreview).

Автор доработки -

gsi.kiev.ua

Ссылка на сообщение
Поделиться на другие сайты
  • 11 months later...

Интересный код, работает. Но есть одно но, если в новости стоит видеоролик, он его воспринимает как картинку и пытается безуспешно вывести.

Просходит это потому, как я понимаю, что определяется картинка через src

Пока писал, нашел решение, как это поправить. Вторую и третью строку делаем так:


if ($qI=strpos($one['content'],'img src="')) {
$qI=$qI+9;
[/CODE]

Тогда берется именно картинка.

Ссылка на сообщение
Поделиться на другие сайты
  • 6 months later...

Да не плохо Спасибо. Только вот проблема почему то после добавление все работает вот только страничка виснуть начала при прокрутки тормозит на ГЛАВНОЙ. 

Ссылка на сообщение
Поделиться на другие сайты
  • 4 years later...

Нет, по умолчанию так не выводятся картинки.

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

Но будет страшно выглядеть, если новостей много и тексты везде длинные.

Удалить обрезание текста можно в /templates/шаблон/boxes/box_latest_news.html

Поменяв:

{$module_data.NEWS_CONTENT|vam_truncate:$smarty.const.MAX_DISPLAY_LATEST_NEWS_CONTENT:" ..."}

например на:

{$module_data.NEWS_CONTENT}

 

Ссылка на сообщение
Поделиться на другие сайты
  • 4 months later...
5 часов назад, NewRus сказал:

Добрый вечер.

Внес всю информацию как указано в инструкции. ничего не вывелось(((

версия 1.87

Что то поменялось?

Спасибо!

Здравствуйте!

Имеется в виду, что добавили код, что выше указан?!

Судя по поду, он просто вытаскивает картинку из содержимого новости.

Вы в сами новость картинку добавили?!

Вывод должео быть по центру на главной странице, в блоке Новости, не сбоку.

Ссылка на сообщение
Поделиться на другие сайты
В 18.10.2017 at 09:44, VaM сказал:

Здравствуйте!

Имеется в виду, что добавили код, что выше указан?!

Судя по поду, он просто вытаскивает картинку из содержимого новости.

Вы в сами новость картинку добавили?!

Вывод должео быть по центру на главной странице, в блоке Новости, не сбоку.

Все, разобрался.

все работает! 

Спасибо большое!

Ссылка на сообщение
Поделиться на другие сайты
  • 1 year later...

А если немножечко описанный код изменить, то в теге alt у изображения будет выводиться не "Image" (что по сути, всё-таки, костыль), а содержимое тега alt у выводимой из новости картинки.

$query = vamDBquery($sql);
while ($one = vam_db_fetch_array($query,true)) {
$qI=0; $qIcon=''; $qA=1; $qAlt;
if ($qI=strpos($one['content'],'src="')) {
$qI=$qI+5;
$qIcon=substr ($one['content'] , $qI);
$qI=strpos($qIcon,'"');
if ($qA=strpos($one['content'],'alt="')) {
$qA=$qA+5;
$qAlt=substr ($one['content'] , $qA);
$qA=strpos($qAlt,'"');  }
$qIcon='<img class="news leftimg" src="'.substr ($qIcon, 0,$qI).'" alt="'.substr ($qAlt, 0,$qA).'"   />';
}

Писал скорее интуитивно, чем со знанием дела. Не знаю, всё ли тут корректно, но работает.

Ссылка на сообщение
Поделиться на другие сайты
6 часов назад, retroman сказал:

А если немножечко описанный код изменить, то в теге alt у изображения будет выводиться не "Image" (что по сути, всё-таки, костыль), а содержимое тега alt у выводимой из новости картинки.


$query = vamDBquery($sql);
while ($one = vam_db_fetch_array($query,true)) {
$qI=0; $qIcon=''; $qA=1; $qAlt;
if ($qI=strpos($one['content'],'src="')) {
$qI=$qI+5;
$qIcon=substr ($one['content'] , $qI);
$qI=strpos($qIcon,'"');
if ($qA=strpos($one['content'],'alt="')) {
$qA=$qA+5;
$qAlt=substr ($one['content'] , $qA);
$qA=strpos($qAlt,'"');  }
$qIcon='<img class="news leftimg" src="'.substr ($qIcon, 0,$qI).'" alt="'.substr ($qAlt, 0,$qA).'"   />';
}

Писал скорее интуитивно, чем со знанием дела. Не знаю, всё ли тут корректно, но работает.

Раз работает, значит нормально.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...