Помогите с кодом DLE

Василич#
На сайте с 10.03.2009
Offline
111
1346

Здравствуйте ! Есть такая ситуация, картинки загружаются в доп. поле с помощью хака от nowheredev .

Соответственно значение [xfvalue_поле] такое для этих полей, куда загружается:

<!--TBegin:ссылка на полную картинку|-->
<a href="ссылка на полную картинку" rel="highslide" class="highslide">
<img src="ссылка на уменьшеную копию" alt="тайтл картинки" title="тайтл картинки"></a><!--TEnd-->

Теперь самое главное, как отдельным тегом, например [xfvalueorig_имя поля] вывести ссылку на полную картинку ?

Обшуршал весь интернет, сначала сделал в showfull.php тэгом {imagelarge-x}, где выборку брал не из full_story, а из xfields, немного переделав {fullimage-x} : https://pastebin.com/Pf6nP29b , но вот незадача, если картинка в конкретное доп. поле не загружена, то берёт следующую где загружена и, соответственно мне такое не подходит.

Заранее очень благодарен, если кто поможет.

bmw-power.com.ua (https://bmw-power.com.ua)
Василич#
На сайте с 10.03.2009
Offline
111
#1

Копаю мне кажется туда, взял функцию {fullimage-x}, пытаюсь её переделать. Беру данные из xfields, теперь вопрос, как заставить брать именно картинки для каждого конкретного поля ?

т.е. {fullimage_поле-x} ?

if (stripos ( $tpl->copy_template, "{fullimage-" ) !== false) {

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

foreach($data as $url) {
$info = pathinfo($url);
if (isset($info['extension'])) {
if ($info['filename'] == "spoiler-plus" OR $info['filename'] == "spoiler-plus" ) continue;
$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++;
$tpl->copy_template = str_replace( '{fullimage-'.$i.'}', $url, $tpl->copy_template );
$tpl->copy_template = str_replace( '[fullimage-'.$i.']', "", $tpl->copy_template );
$tpl->copy_template = str_replace( '[/fullimage-'.$i.']', "", $tpl->copy_template );
}

}

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

}
MT
На сайте с 17.01.2017
Offline
22
#2


$xfdata = xfieldsdataload($row['xfields']);

if (preg_match('#<!--TBegin:(.+?)\|-->#', $xfdata['xfname'], $matches)) {
echo $matches[1];
}
Василич#
На сайте с 10.03.2009
Offline
111
#3

MikeTheRaven, большое спасибо ! А собственно, куда это вставить ?

Мне бы это дело еще шаблонизировать...

по типу:

{fullimage_pole1-x} (т.е. будут браться ссылки на картинки из поля "pole1"

{fullimage_pole2-x} (т.е. будут браться ссылки на картинки из поля "pole2" и т.д.

MT
На сайте с 17.01.2017
Offline
22
#4
Василич#:
MikeTheRaven, большое спасибо ! А собственно, куда это вставить ?

С такими вопросами проще всего будет вставить в рамочку и повесить на стену. А затем нанять программиста, который всё настроит под ваши нужды.

oxg
На сайте с 08.08.2011
Offline
218
oxg
#5
MikeTheRaven:
С такими вопросами проще всего будет вставить в рамочку и повесить на стену. А затем нанять программиста, который всё настроит под ваши нужды.

с такими ответами проще идти на Х. й

и не писать ничего😒

по делу тут надо видеть код и доп поля.

Прокси IPv6 Россия (http://proxy-ipv6.ru/proxy_ipv6.html) /32 сеть, каждый IP в отдельной /48 сети Прокси IPv4 (http://proxyk.ru/proxy-russia.html) более 160 подсетей А,B,C Прокси для Инстаграм (http://proxy-ipv6.ru/instagram-proxy.html)
Василич#
На сайте с 10.03.2009
Offline
111
#6

Уже разные вариации перепробовал, голова квадратная... :(

---------- Добавлено 14.06.2017 в 23:21 ----------

oxg, собственно сам код функции я сбросил выше, который пытаюсь переделать. На данный момент он работает лишь так:

когда указываю {fullimage-1},{fullimage-2},{fullimage-3} и т.д. оно берёт со всех доп. полей по порядку где есть картинки.

Мне нужно чтобы {fullimage_поле-1..(и т.д.) брал картинки только с поля, который я указываю, по аналогии с xfvalue_поле

Сам код рабочий, только мне нужно в шаблоне принудительно указывать, с какого поля брать из базы, а не из всего $row['xfields']

---------- Добавлено 14.06.2017 в 23:10 ----------

UPD:

Понял, как брать выборку из конкретного поля, но незнаю, как это применить в шаблонизаторе:

if (stripos ( $tpl->copy_template, "{fullimage-" ) !== false ) {

$xfdata = xfieldsdataload($row['xfields']);
$images = array();
preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $xfdata['поле'], $media);
$data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);

foreach($data as $url) {
$info = pathinfo($url);
if (isset($info['extension'])) {
if ($info['filename'] == "spoiler-plus" OR $info['filename'] == "spoiler-plus" ) continue;
$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++;
$tpl->copy_template = str_replace( '{fullimage-'.$i.'}', $url, $tpl->copy_template );
$tpl->copy_template = str_replace( '[fullimage-'.$i.']', "", $tpl->copy_template );
$tpl->copy_template = str_replace( '[/fullimage-'.$i.']', "", $tpl->copy_template );


}

}

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

}



---------- Добавлено 14.06.2017 в 23:32 ----------

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

preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $xfdata[$imgvalue], $media);

Как передать данные из доп. поля {fullimage_данные=1} в $imgvalue ?

Насколько я понял, что то в этой строке надо добавить:

$tpl->copy_template = str_replace( '{fullimage-'.$i.'}', $url, $tpl->copy_template );

но ума, что добавить именно, не хватает :(

Василич#
На сайте с 10.03.2009
Offline
111
#7

Помогите, пожалуйста, или за финансовое вознаграждение...

MT
На сайте с 17.01.2017
Offline
22
#8

Вон деловой тип выше отписался. Обратись к нему, он тебе бесплатно всё сделает.

Василич#
На сайте с 10.03.2009
Offline
111
#9

Двигаюсь с шаблонизатором

$tpl->copy_template = str_replace( '{imagelarge-'.$i.'-'.$imgvalue.'}', str_replace('thumbs/','',$url), $tpl->copy_template );

Как указать здесь что $imgvalue - это мои введенные данные в шаблоне ?

---------- Добавлено 15.06.2017 в 14:07 ----------

MikeTheRaven:
Вон деловой тип выше отписался. Обратись к нему, он тебе бесплатно всё сделает.

Да что же Вы так :) Благодаря именно Вам, пол пути уже сделано.

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