X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> [DLE] Вывести картинки из полной новости
taxi2008
taxi2008
Topic Starter сообщение 23.6.2012, 21:51; Ответить: taxi2008
Сообщение #1


Старожил
******

Группа: Active User
Сообщений: 2034
Регистрация: 29.7.2008
Из: Нефтекамск
Поблагодарили: 470 раз
Репутация:   114  


Добрый вечер!
Собственно, нужно вывести картинки из полной новости в краткую на DLE 9.6
На 9.2 выводил таким хаком (увы на 9.6 уже неработает):
Развернуть/Свернуть
1) Открываем engine/modules/show.full.php

Находим:
$news_found = TRUE;


и выше добавляем:

if ( $row['full_story'] != '' ) {
    preg_match_all( '/src="([^"]{1,300})"/si', $row['full_story'], $resultImg );
    if ( $resultImg ) {
        foreach ( $resultImg[1] as $val ) {
            $countImg++;
            $val = str_replace( 'thumbs/', '', $val );
            
            $nameImg = end( explode( '/', $val ) );
            $valThumb = str_replace( $nameImg, 'thumbs/' . $nameImg, $val );
            
            $tpl->set( '{src' . $countImg . '}', $val );
            $tpl->set( '{src' . $countImg . 't}', $valThumb );
            $hte_full = $row['full_story'];
        }
    }
}


2) Открываем index.php

Находим:
$tpl->load_template ( 'main.tpl' );


и ниже добавляем:

if ( $dle_module == 'showfull' && $hte_full != '' ) {
    preg_match_all( '/src="([^"]{1,300})"/si', $hte_full, $resultImg );
    if ( $resultImg ) {
        $countImg = 0;
        foreach ( $resultImg[1] as $val ) {
            $countImg++;
            $val = str_replace( 'thumbs/', '', $val );
            
            $nameImg = end( explode( '/', $val ) );
            $valThumb = str_replace( $nameImg, 'thumbs/' . $nameImg, $val );
        
            $tpl->set( '{src' . $countImg . '}', $val );
            $tpl->set( '{src' . $countImg . 't}', $valThumb );
        }
    }
}


----------------------------------------------------------
{src1} - ссылка на большую фотку
{src1t} - ссылка на уменьшенную


Подскажите, как подправить хак для DLE 9.6

ps: в долгу не останусь
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
hybrid
hybrid
сообщение 23.6.2012, 22:38; Ответить: hybrid
Сообщение #2


Завсегдатай
*****

Группа: Active User
Сообщений: 649
Регистрация: 29.6.2010
Поблагодарили: 127 раз
Репутация:   23  


taxi2008, этот вариант не подходит?

20. Для шаблонов вывода краткой и полной новости (shortstory.tpl и fullstory.tpl) добавлены новые теги: {image-x}, который выводит URL картинок находящихся в новости, где x это номер картинки в новости, например {image-1} выведет URL первой картинки в новости, [image-x] текст [/image-x] которые выводят текст, указанный в них только в случае если картинка с номером X присутствует в новости.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
taxi2008
taxi2008
Topic Starter сообщение 23.6.2012, 23:03; Ответить: taxi2008
Сообщение #3


Старожил
******

Группа: Active User
Сообщений: 2034
Регистрация: 29.7.2008
Из: Нефтекамск
Поблагодарили: 470 раз
Репутация:   114  


Сейчас картинки находяться в поле полной новости, а данное выше - выводит, если картинки находятся в поле краткой новости.
{image-x} неработает для поля полной новости, к сожелению!

Сообщение отредактировал taxi2008 - 23.6.2012, 23:04
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Сергуня
Сергуня
сообщение 24.6.2012, 2:06; Ответить: Сергуня
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 284
Регистрация: 13.4.2008
Из: Подгорица
Поблагодарили: 48 раз
Репутация:   11  


Решение до безумности банально.

Открываете engine/modules/show.short.php и находите строку:

} else    $tpl->set( '{short-story}', "<div id=\"news-id-" . $row['id'] . "\" style=\"display:inline;\">" . $row['short_story'] . "</div>" );

Опосля вставляете:

$text = substr( stripslashes (strip_tags($row['short_story'], '<a><b><i><u><br></a><span>')), 0,999 )."...";        
$shortnews = $row['short_story'];
$noimage = "АДРЕСС ИЗОБРАЖЕНИЯ, ЕСЛИ ОТСУТСТВУЕТ В ПУБЛИКАЦИИ";
if (preg_match_all( '#<img[^>]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total))
foreach( $total[2] as $shortnews )
{
$tpl->set( '{imgshort}',$shortnews);
} else {
$tpl->set( '{imgshort}',$noimage);
}
$tpl->set( '{text}',$text);

Вывод картики shortstory.tpl:

<a href="{imgshort}" onclick="return hs.expand(this)">
<img src="{imgshort}" align="left" alt="{title}" title="{title}" style="margin-left: 2px; border: none;" border="0" width="ВАШЕ ЗНАЧЕНИЕ" height="ВАШЕ ЗНАЧЕНИЕ"></a>

Вывод текста в том же shortstory.tpl:

{text}


upd: Прошу прощения, написал чепуху ибо сразу не понял сути. Како принцип вывода из краткой в полную? Все картинки? Одну? Пять? Почему бы просто не скопировать их из полной новости? Или нужно чтобы для уже добавленных публикаций тоже работало?

Сообщение отредактировал Сергуня - 24.6.2012, 2:13


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
taxi2008
taxi2008
Topic Starter сообщение 24.6.2012, 11:50; Ответить: taxi2008
Сообщение #5


Старожил
******

Группа: Active User
Сообщений: 2034
Регистрация: 29.7.2008
Из: Нефтекамск
Поблагодарили: 470 раз
Репутация:   114  


Обьясню по другому, т.к. многие не поняли..
Есть нынче макрос {image-x} так? Он выводит картинки, если они присутствуют в поле короткой новости
Мне же, нужен точно тоже самое, но чтобы он мог выводить картинки из поля полной новости

Вот код макроса, однако изменить его сам не смог:
if (stripos ( $tpl->copy_template, "{image-" ) !== false) {

                $images = array();
                preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $row['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_count=0;
                    foreach($images as $url) {
                        $i_count++;
                        $tpl->copy_template = str_replace( '{image-'.$i_count.'}', $url, $tpl->copy_template );
                        $tpl->copy_template = str_replace( '[image-'.$i_count.']', "", $tpl->copy_template );
                        $tpl->copy_template = str_replace( '[/image-'.$i_count.']', "", $tpl->copy_template );
                    }
    
                }


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) VDS4YOU.COM – VPS / VDS серверы в России. Новости, акции, скидки.
Качественный и надежный хостинг с очень низкими ценами.
12 vds4you 2480 Сегодня, 14:26
автор: vds4you
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыОцените сайт "бизнес, новости, право". В чем проблема?
22 Merzuka 3139 Сегодня, 12:15
автор: nikolay_web
Горячая тема (нет новых ответов) Крупные новостные (СМИ) площадки, Яндекс Новости, Google News, анонсы, хорошая посещаемость.
45 NastyaLanPR 16771 Сегодня, 11:49
автор: NastyaLanPR
Горячая тема (нет новых ответов) Регистрация Вашего сайта (профиля,DLE сайты,подписи на форумах,постинг Тиц 10> , ПР 1>)
312 kaartes 112834 Вчера, 12:07
автор: avega
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
156 contex1 70806 Вчера, 0:06
автор: AnnaProf


 



RSS Текстовая версия Сейчас: 23.5.2018, 23:33
Дизайн