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

Отдельный вывод картинки и текста в полной новости DLE


     17.09.2011    Общие вопросы по PHP, Хаки    9447

вопрос
Здравствуйте! Как реализовать вывод отдельных частей новости в полной новости.
Мне нужно выводить отдельным тегом картинку новости и отдельным тегом сам текст.
Без дополнительных полей.

Ответил: yackers


Давно уже есть решение данной проблемы. Хак вроде был от toxx если я не ошибаюсь . ЗЫ - Автор не я.

редактируем - /engine/modules/show.full.php

Ищем:
$tpl->compile( 'content' );


Выше вставляем

//////////////////IMGES/////////////////
$sql_poster = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}' LIMIT 2" );    
$poster = $db->get_row($sql_poster);

if ($poster['images'] != "") {
$scrsList = explode('|||',$poster['images']);
        $scrs = '';
        $cntscrs = 6;
        $ai = 0;
    
        foreach ($scrsList as $scr)
        {

            $ai++;
            $scr = trim($scr);
            $poster_temp = explode("/",$scr);
            $poster_name = $poster_temp[1];
            $poster_data = substr($scr,0,8);
            if ($ai<=$cntscrs) {
            $scrs .= '<div class="posters"><a href="'. $config ['http_home_url'] . 'uploads/posts/'.$poster_data.''.$poster_name.'"><img src="'. $config ['http_home_url'] . 'uploads/posts/'.$poster_data.$poster_name.'"></a></div>'; } else {
             $scrs .= '';
            }
}
        unset($scrsList);
        if (!empty($poster['images'])) {
            $scrall= $scrs;}
$tpl->set ( '{poster}', $scrall);
} else $tpl->set ( '{poster}', "" );
/////////////////END////////////////


Таким образом мы отделили текст от картинки. В шаблоне используй тег {poster} для вывода всех картинок из новости.

Далее небольшой трюк.

Текст новости как был тег {full-story} так и останется.

Далее в fullstory.tpl в начало шаблона вставляем

<style type="text/css" media="all"> 
.short_story img {  display:none; }</style>


Вот и все Картинки тегом {poster} текст тегом {full-story}
Отредактировал 9-10-2011, 11:25 - ПафНутиЙ
Причина: Перенёс из стола заказов.

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

names
4 | 4

names - 17 сентября 2011 11:04 - Юзер

Мне нужно без дополнительных полей. Знаю, что в файле show.full.php надо править. Я не силен в php, поэтому не знаю, что именно там править.

ПафНутиЙ
1064

3394 | 2433

ПафНутиЙ - 17 сентября 2011 11:29 - Админ

Думаю такой вариант будет платным. Перенёс в стол заказов.

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

Sander
1125

1637 | 1204

Sander - 18 сентября 2011 02:36 - Эксперт

Сделаем за скромное вознаграждение.
icq: 404037556

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

nowheremany
192

1659 | 1292

nowheremany - 18 сентября 2011 22:01 - Эксперт

https://dle-faq.ru/faq/phpquest/418-kartinka-iz-dop-polya-modulya-lenta-rekomentduemyh-novostey.html#comment-id-1420

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

yackers
34

51 | 49

yackers - 9 октября 2011 03:11 - Юзер

Уже давно есть бесплатное решение. Перенесите в раздел факю не могу запостить коммент слишком длинный :(

pazitiv
2 | 2

pazitiv - 29 января 2012 11:50 - Юзер

Здравствуйте!
У меня такой вопросик...
Можно тегу {poster} задать параметры width и height? ну и + выравнивание.

yackers
34

51 | 49

yackers - 6 февраля 2012 12:32 - Юзер

Средствами css куда логичнее и быстрее будет

объединяешь теги {poster} в
<div class="posters"> </div>
к примеру

и в своем css

.posters img {  height:80px; width:80px; }


и т.д.

kovalenko3331
3

129 | 88

kovalenko3331 - 6 февраля 2012 17:30 - Юзер

Друзья, а не лучше ли будет воспользоватся хаком от все того же yackers, _https://dle-faq.ru/faq/phpquest/1279-teg-text-dlya-shablona-short-story.html так как в этом случае и тег {full-story} остается как полная новость и есть отдельные теги для постера и текста. Или я что-то нет так понял...

VooDoo
3

31 | 18

VooDoo - 9 февраля 2012 03:28 - Юзер

Такой вопрос: у меня на сайте есть новости и посты с картинками и текстом, часто вставленным между ними. Я хочу для новостей отдельный шаблон для полной новости сделать на основе этого хака.

Возможно ли это реализовать, используя только в шаблоне новостей

<style type="text/css" media="all">
.short_story img { display:none; }</style>

и {poster} с {full-story}

а в шаблоне других разделов, как обычно, только {full-story}?

yackers
34

51 | 49

yackers - 9 февраля 2012 10:42 - Юзер

Конечно возможно в fullstory.tpl

[category=X]текст[/category]
Предназначен для вывода текста если пользователь находится в X категории. Где X это ID вашей категории. Допустимо перечислять категории через запятую


Обворачивате css стиль и теги {poster} в [category=x] и все они будут выводится только в определенных категориях!!!

VooDoo
3

31 | 18

VooDoo - 9 февраля 2012 12:10 - Юзер

Большое спасибо

ramzesrz
6 | 2

ramzesrz - 20 мая 2012 21:50 - Юзер

Проьовал этот скрипт на dle 9.3 не корректно работает, картинку выводит нормально тегом {poster} а текст как выводил с картинкой так и выводит без изменений кто может помоч напишите

может я не туда ставлю
<style type="text/css" media="all">
.short_story img { display:none; }</style>

promax
29

182 | 174

promax - 20 мая 2012 22:03 - Юзер

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

hatchees
65 | 74

hatchees - 17 апреля 2013 15:29 - Юзер

А как сделать так, что бы скрипт выводил только одну картинку, а не все?

hatchees
65 | 74

hatchees - 17 апреля 2013 16:06 - Юзер

уже решил
        $sql_poster = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}' LIMIT 2" );    
        $poster = $db->get_row($sql_poster);

        if ($poster['images'] != "") {
        $sara = explode('|||',$poster['images']);
    
      
        if (!empty($poster['images'])) {
            $scrall= '<a href="' . $full_link . '"><img src="/timthumb.php?src=http://hatchees.ru/uploads/posts/'.$sara[0].'&w=620&zc=1"></a>';}
        $tpl->set ( '{poster}', $scrall);
        } else $tpl->set ( '{poster}', "" );
        
        $tpl->compile( 'content' );

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

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