[DLE 9.6] Изменить парсер картинок для макроса {image-x}

timirov
На сайте с 15.11.2010
Offline
104
2084

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

В данный момент, макрос {image-x} работает при условии, что картинка находиться в поле короткой новости. Подскажите пожалуйста, как сделать, чтобы макрос работал для поля полной новости?

Код отвечающий за макрос нашел в show.short.php:

if (stripos ( $tpl2->copy_template, "{image-" ) !== false) {


$images = array();
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['short_story'], $media);
$data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);

foreach($data as $url) {
$info = pathinfo($url);
if (isset($info['extension'])) {
$info['extension'] = strtolower($info['extension']);
if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) array_push($images, $url);
}
}

if ( count($images) ) {
$i=0;
foreach($images as $url) {
$i++;
$tpl2->copy_template = str_replace( '{image-'.$i.'}', $url, $tpl2->copy_template );
$tpl2->copy_template = str_replace( '[image-'.$i.']', "", $tpl2->copy_template );
$tpl2->copy_template = str_replace( '[/image-'.$i.']', "", $tpl2->copy_template );
}

}

$tpl2->copy_template = preg_replace( "#\[image-(.+?)\](.+?)\[/image-(.+?)\]#is", "", $tpl2->copy_template );
$tpl2->copy_template = preg_replace( "#\\{image-(.+?)\\}#i", "{THEME}/dleimages/no_image.jpg", $tpl2->copy_template );

}

В строке:

preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['short_story']

пробывал заменить на:

preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['full_story']

К сожелению работать нехочет

Буду благодарен за помощь!

G
На сайте с 12.04.2008
Offline
101
#1
timirov:
Добрый вечер!
В данный момент, макрос {image-x} работает при условии, что картинка находиться в поле короткой новости. Подскажите пожалуйста, как сделать, чтобы макрос работал для поля полной новости?

Код отвечающий за макрос нашел в show.short.php:
if (stripos ( $tpl2->copy_template, "{image-" ) !== false) {


$images = array();
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['short_story'], $media);
$data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);

foreach($data as $url) {
$info = pathinfo($url);
if (isset($info['extension'])) {
$info['extension'] = strtolower($info['extension']);
if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png')) array_push($images, $url);
}
}

if ( count($images) ) {
$i=0;
foreach($images as $url) {
$i++;
$tpl2->copy_template = str_replace( '{image-'.$i.'}', $url, $tpl2->copy_template );
$tpl2->copy_template = str_replace( '[image-'.$i.']', "", $tpl2->copy_template );
$tpl2->copy_template = str_replace( '[/image-'.$i.']', "", $tpl2->copy_template );
}

}

$tpl2->copy_template = preg_replace( "#\[image-(.+?)\](.+?)\[/image-(.+?)\]#is", "", $tpl2->copy_template );
$tpl2->copy_template = preg_replace( "#\\{image-(.+?)\\}#i", "{THEME}/dleimages/no_image.jpg", $tpl2->copy_template );

}

В строке:
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['short_story']

пробывал заменить на:
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $related['full_story']

К сожелению работать нехочет
Буду благодарен за помощь!

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

Продажа сайтов (/ru/forum/866932) под Amazon и AdSense
timirov
На сайте с 15.11.2010
Offline
104
#2

Прочтите внимательнее:

В данный момент, макрос {image-x} работает при условии, что картинка находиться в поле короткой новости

Т.е. если картинки есть в поле краткой новости - то мы можем с помощью данного макроса вывести и в shortstory и fullstory, НО если картинки находяться в поле полной новости - то данный макрос не работает, т.к. скрипт обрабатывает только поле короткой новости.

Мне нужно изменить это, чтобы обрабатывал поле полной новости

Фома
На сайте с 10.11.2006
Offline
600
#3

timirov, я так понимаю, это когда добавляешь картинки в короткую новость, но в короткой выводится только первая img, а полный набор выводится превьюшками в полной новости?

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

Аренда апартаментов на Тенерифе (http://las-americas.ru/).
G
На сайте с 12.04.2008
Offline
101
#4

У меня выводит и из полной новости. Но правил файл немного, без проблем работает.

timirov
На сайте с 15.11.2010
Offline
104
#5
У меня выводит и из полной новости. Но правил файл немного, без проблем работает.

Выложите пожалуйста, где подправить, чтобы скрипт выдирал картинки из поля полной новости

bratoz
На сайте с 11.09.2009
Offline
143
#6

нашли решение???

Аренда ссылок ad*lt (http://links.izibit.net/public/sites), со старых трастовых сайтов 18+(2-8 лет)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий