Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Хаки Как в похожие новости вывести картинку из дополнительного поля

Как в похожие новости вывести картинку из дополнительного поля


     30.08.2011    Хаки    3131

вопрос
Есть красивый хак вывода похожих новостей в две колонки. Нашел здесь _http://tutweb.ru/dle/dle_hak/2157-vyvod-poxozhix-novostej-v-2-kolonki-s-kartinkoj-i-opisaniem.html
Как в похожие новости вывести картинку из дополнительного поля


У меня на сайте ссылка на картинку в новости (_http://сайт.ru/uploads/posts/2011-06/15948368232_dvoinik.jpg) вставляется из дополнительного поля [xfvalue_kartinka].

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

Сейчас вставляется заглушка nothumb.gif

Т.е в дополнительном поле [xfvalue_kartinka] так:
Как в похожие новости вывести картинку из дополнительного поля


в шаблонах fullstory и shortstory так:
Как в похожие новости вывести картинку из дополнительного поля

Ответил: rashpil


Найти:

SELECT id, title, date, category, alt_name, short_story, flag FROM


Заменить на:

SELECT id, title, date, category, alt_name, short_story, xfields flag FROM


Найти:

preg_match('|<img(.*) src="([^"]*)"[^>]*>|is', $related['short_story'], $pts);
$thumba_parts = pathinfo($pts[2]);
if($pts[2]){
$pictitle = stripslashes( $related['title'] );
$pic = $thumba_parts['dirname'].'/'.$thumba_parts['basename'];
$wide = str_replace('thumbs/', "", $pic);
if(file_exists($wide)) $preview = "<a href=\"$wide\" onclick=\"return hs.expand(this)\"><img src=\"$pic\" width=\"70px\"; alt=\"$pictitle\" title=\"$pictitle\"></a>";
else $preview = "<img src=\"$pic\" width=\"70px\"; alt=\"$pictitle\" title=\"$pictitle\">";
}
else $preview = "<img style=\"border: medium none;\" src=\"{THEME}/images/nothumb.gif\" width=\"70px\" height=\"70px\">";
$related['short_story'] = preg_replace("/\[attachment=[[:digit:]]*\&#93;/si","",stripslashes($related['short_story']
));
$related['short_story'] = preg_replace("/<!--*-->/si","",$related['short_story']);
$related['short_story'] = strip_tags($related['short_story']);
if( strlen( $related['short_story'] ) > 106 ) $related['short_story'] = substr( $related['short_story'], 0,260 ) . " ...";

$iz++;
if($iz%2==0) {
    $z_s = "<tr>";
    $z_e = "";
} else {
    $z_s = "";
    $z_e = "</tr>";
}

$buffer .= $z_s.'<td><table width="95%" border="0" cellpadding="5" cellspacing="2" style="border-bottom: 1px dotted #8D8D8D;">
<tr>
<td width="100" height="100" align="center" valign="middle">'.$preview.'</td>
<td width="91%" valign="top" style="padding-left: 7px; padding-bottom: 7px;"><br><strong><a href="'.$full_link.'">'.stripslashes( $related['title']).'</a></strong><br
>
'.stripslashes($related['short_story']).'</td>
</tr>
</table></td>'.$z_e;


Заменить на:

$title = stripslashes( $related['title'] );
$xfieldsdata = xfieldsdataload( $related['xfields'] );
$pic = $xfieldsdata['kartinka'];
if(file_exists($pic))
    $preview = "<img src=\"$pic\" width=\"70px\"; alt=\"$title\" title=\"$title\">";
else
    $preview = "<img style=\"border: medium none;\" src=\"{THEME}/images/nothumb.gif\" width=\"70px\" height=\"70px\">";
    
$related['short_story'] = preg_replace("/\[attachment=[[:digit:]]*\&#93;/si","",stripslashes($related['short_story']
));
$related['short_story'] = preg_replace("/<!--*-->/si","",$related['short_story']);
$related['short_story'] = strip_tags($related['short_story']);
if( strlen( $related['short_story'] ) > 106 ) $related['short_story'] = substr( $related['short_story'], 0,260 ) . " ...";

$iz++;
if($iz%2==0) {
    $z_s = "<tr>";
    $z_e = "";
} else {
    $z_s = "";
    $z_e = "</tr>";
}

$buffer .= $z_s.'<td><table width="95%" border="0" cellpadding="5" cellspacing="2" style="border-bottom: 1px dotted #8D8D8D;">
<tr>
<td width="100" height="100" align="center" valign="middle">'.$preview.'</td>
<td width="91%" valign="top" style="padding-left: 7px; padding-bottom: 7px;"><br><strong><a href="'.$full_link.'">'.stripslashes( $related['title']).'</a></strong><br>
'.stripslashes($related['short_story']).'</td>
</tr>
</table></td>'.$z_e;


Выполнять эти действия в качестве правки версии по той ссылке.

Комментарии пользователей (16)

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 30 августа 2011 22:04 - Админ

Вообще конечно хак так себе, возможно просто не люблю таблицы))) но помоему функция работы с картинками тоже не оч....

Каков вопрос - таков и ответ. Просто помните об этом.

nowheremany
193

1660 | 1292

nowheremany - 31 августа 2011 06:33 - Эксперт

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

Благодарность принимаю тут Связь

rashpil
33

232 | 182

rashpil - 31 августа 2011 10:15 - Эксперт

Данные в доп поле какие? Чисто ссылка на картинку или уже тегами какими-то обыграно? По больше бы информации...

А вообще, проще то наверное выкинуть регулярку и по элементу массива доп поля уже вызвать картинку. Опишите пожалуйста подробнее формат ввода картинки в доп поле и если я вечером буду добрый, открою секрет решения этого вопроса :)

nowheremany
193

1660 | 1292

nowheremany - 31 августа 2011 10:55 - Эксперт

Таки какая разница то... Если решение в лоб то preg_math или explode

Благодарность принимаю тут Связь

rashpil
33

232 | 182

rashpil - 31 августа 2011 13:49 - Эксперт

Так ежели ссылка на картинку в одном дополнительном поле и не разбавлена всяким дерьмом, то регулярка или explode тут не к чему. Тут уже в цикле дописать что-то вроди: $xfieldsdata = xfieldsdataload( $related['xfields'] ); и спокойно вызвать при обработке данные из доп поля как-то так: $xfieldsdata['xf_name']; И всё fellow

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 31 августа 2011 13:50 - Админ

Это при условии, что в поле просто ссылка ))))

Каков вопрос - таков и ответ. Просто помните об этом.

rashpil
33

232 | 182

rashpil - 31 августа 2011 14:23 - Эксперт

А вот что в поле, я и пытался выяснить у автора вопроса)

rusork
10 | 10

rusork - 31 августа 2011 14:58 - Юзер

В дополнительное поле вставляется ссылка вида _http://сайт.ru/uploads/posts/2011-06/15948368232_dvoinik.jpg и все (я об этом упоминал в вопросе).

rusork
10 | 10

rusork - 31 августа 2011 15:11 - Юзер

***Комментарий удален***

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 31 августа 2011 15:15 - Админ

дополнил вопрос.

Каков вопрос - таков и ответ. Просто помните об этом.

rusork
10 | 10

rusork - 31 августа 2011 20:06 - Юзер

Попробовал заменить. Не работает.

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

rashpil
33

232 | 182

rashpil - 31 августа 2011 21:04 - Эксперт

SELECT id, title, date, category, alt_name, short_story, xfields, flag FROM

rusork
10 | 10

rusork - 31 августа 2011 21:47 - Юзер

Ничего не изменилось.

greshnikk
1 | 1

greshnikk - 16 сентября 2011 00:48 - Юзер

Ну так что, все таки кто нибудь знает как вывести картинку из доп поля?? Плиз ответте!!

promax
29

182 | 174

promax - 30 сентября 2011 20:04 - Юзер

Поднимем тему winked

promax
29

182 | 174

promax - 21 октября 2011 19:23 - Юзер



Кто нить может помочь , вывести картинку с дополнительного поля "poster" .
В поле ссылка ,сделал все как в ответе не работает ((
И как сделать вывод кол-ва коментарий и просмотров новости

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы