mr.8pa4 1 Опубликовано: 24 декабря 2011 Рассказать Опубликовано: 24 декабря 2011 (изменено) сайта в сетевой локации лицензия http://dle-news.ru/user/mr.8pa4/ есть модуль вывода популярных новостей из определённой категории ... сам работает отлично ... только вот одно но вставляю дополнительное поле (в нём картинка) путь к ней пишется но каряво вставляет " как это исправить ? ... заранее спасибо. <img src=""http://сайт.b...4581_419633.jpg"" border=""0"" width=""120"" height=""170"" tooltip=""{title}""> УСТАНОВКА: 1.) Открываем файл /engine/cache/.htaccess и заменяем две написанных там строчки на: Order Deny,Allow #Deny from all <Files *.tmp> Deny from all </Files> <Files ".(jpg|gif|png)$"> Allow from all </Files> 2.) Создаём файл films_top.php записываем в него ниже написанное и загружаем engine/modules на сервер . МОДУЛЬ: <?php if ( ! defined('DATALIFEENGINE') ) { die( "Hacking attempt!" ); } ------------------------------------------*/ /****************** НАСТРОЙКИ МОДУЛЯ *************************/ //----------------------------------------// //!!!!!ОБЯЗАТЕЛЬНАЯ ПЕРЕМЕННАЯ УКАЗЫВАЕМАЯ В СТРОКЕ ПОДКЛЮЧЕНИЯ!!!!(для кеширования каждого блока в отдельности) &block_num=1 - число или текст, особой разницы нет, главное что бы было уникально для каждого блока, из значения этой же переменной будет составляться id блока с новостями. //----------------------------------------// if(!is_numeric($day)) $day = 7; //Временной период для отбора новостей (дни). Например если нужно вывести новости за неделю - укажите 7. if(!is_string($top_cat)) $top_cat = "14"; //Категории, из которых брать новости.(перечислять через чёрточку). if(!is_numeric($news_num)) $news_num = 30; //Сколько будем брать новостей для топа. if(!is_string($top_field)) $top_field = "mini_poster"; //Указываем тут имя дополнительного поля, из которого будет выводиться ссылка на картинку (или ещё чтонибудь). if(!is_string($showcomments)) $showcomments = ""; //Показывать количество комментариев к новости. if(!is_numeric($title_length)) $title_length = 300; //Кол-во символов в заголовке if(!is_numeric($story_length)) $story_length = 0; //Кол-во символов в описании if(!is_string($img_show)) $img_show = ""; //Если поставить yes - будет брать картинку из новости. Если не нужна оставить пустым. if(!is_numeric($t_img_w)) $t_img_w = 120; //Ширина картинки if(!is_numeric($t_img_h)) $t_img_h = 170; //Высота картинки //Строка подключения модуля может выглядить примерно вот так ... где &block_num=1 это уникальное значение для переменной block_num, цифры или буквы, разницы нет. {include file="engine/modules/films_top.php?&block_num=1"} /*************Дальше не нужно ничего трогать *****************/ $config['allow_cache'] = "yes"; $adv_top = dle_cache("adv_top_".$block_num, $config['skin']); if( !$adv_top ) { //начало кода модуля $tooday = date ('Y-m-d H:i:s', $_TIME); //Определяем сегодняшний день $news_day = " AND date <= '$tooday'"; //Запрет вывода новости на не наступившую дату. if ($day) $news_day .= "AND date > '$tooday' - INTERVAL {$day} DAY"; //Если задан параметр $day - берём новости за указанный промежуток $top_categ = str_replace('-', '|', $top_cat); //заменяем чёрточки на палочки :-) $show_cat = ""; //По умолчанию выводим все категории if ($top_cat) $show_cat = "AND category regexp '[[:<:]]($top_categ)[[:>:]]'"; //Если задан параметр $top_cat - берём новости только из определённых категорий $tb = $db->query("SELECT id, category, title, short_story, xfields, comm_num, date, flag, alt_name FROM ".PREFIX."_post WHERE approve {$show_cat} {$news_day} ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,".$news_num); while ($row = $db->get_row($tb)) { $t_comm_num =""; //по умолчанию не выводим информацию о количестве комментариев if ($showcomments) {$t_comm_num = '('.$row['comm_num'].')';} //Если задан параметр $showcomments - показываем в скобках кол-во комментариев к новости //обработка допполей -> $xf_t_val = ""; if ($top_field){ $xfieldsdata = xfieldsdataload( $row['xfields'] ); $xf_t_val = $xfieldsdata[''.$top_field.'']; } // <- обработка допполей $t_title = stripslashes($row['title']); $full_title = $t_title; if( strlen( $t_title ) > $title_length ) $t_title = substr( $t_title, 0, $title_length ) . " ..."; //--обрезка заголовка $t_story = strip_tags(str_replace(array('<br>','<br />')," ",$row['short_story'])); //-- замена переносов на пробелы if( strlen( $t_story ) > $story_length ) $t_story = substr( $t_story, 0, $story_length ) . " ..."; //--обрезка содержания //формирование ссылки на новость -> $row['category'] = intval( $row['category'] ); if( $config['allow_alt_url'] == "yes" ) { if( $row['flag'] and $config['seo_type'] ) { if( $row['category'] and $config['seo_type'] == 2 ) { $t_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html"; } else { $t_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html"; } } else { $t_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html"; } } else { $t_link = $config['http_home_url'] . "index.php?newsid=" . $row['id']; } // < - формирование ссылки на новость $image = ""; //по умолчанию не выводим картинку if ($img_show) { //Если задан параметр $img_show - будет браться первая картинка из shortstory и обрезаться через crop до заданных размеров preg_match("#<img.+?src=['\"](.+?)[']#is", $row['short_story'], $match); if($match[1]){ $dir = ROOT_DIR . '/engine/cache/'; $file_name = strtolower ( basename ( $match[1] )); $file_name = $t_img_w."x".$t_img_h."_".$file_name; if (!file_exists($dir.$file_name)) { require_once ENGINE_DIR . '/classes/thumb.class.php'; $thumb = new thumbnail( $match[1] ); $thumb->crop( $t_img_w, $t_img_h ); $thumb->save( $dir . $file_name ); } $image = '<div class="t_image"><img src="'.$config['http_home_url']."engine/cache/".$file_name.'" alt="'.$ttl.'" /></div>'; }else $image = '<div class="t_image"><img src="{THEME}/images/nothumb.gif" alt="'.$ttl.'" width="'.$t_img_w.'" height="'.$t_img_h.'" /></div>'; //Если в новости нет картинки - будет выводиться "заглушка" } $top_adv .= $image.'<div class="t_news"><h5><a href="'.$t_link.'" title="'.$full_title.'">'.$t_title.'</a> '.$t_comm_num.'</h5><div class="t_story">'.$t_story.'</div>'.$xf_t_val.'</div>'; }; if ($top_adv == "") { $adv_top = '<div id="top_block_'.$block_num.'">По указанному критерию материалов нет</div>'; //Если по заданным критериям нет ни одной новости - будет выведено это сообщение. } else { $adv_top = '<div id="top_block_'.$block_num.'">'.$top_adv.'</div>'; } create_cache("adv_top_".$block_num, $adv_top, $config['skin'] ); } echo $adv_top; ?>[/php] Изменено 24 декабря 2011 пользователем mr.8pa4 Цитата Ссылка на сообщение Поделиться на других сайтах
mr.8pa4 1 Опубликовано: 25 декабря 2011 Рассказать Опубликовано: 25 декабря 2011 Автор тема закрыта нашел проблему и теперь всё работает если кого то интересует ... данный модуль ... пишите расскажу и помогу Цитата Ссылка на сообщение Поделиться на других сайтах
studio-1 0 Опубликовано: 7 января 2012 Рассказать Опубликовано: 7 января 2012 Меня интересует... Цитата Ссылка на сообщение Поделиться на других сайтах
D0Gmatist 1 Опубликовано: 20 июля 2012 Рассказать Опубликовано: 20 июля 2012 //обработка допполей -> $xf_t_val = ""; if ($top_field){ $xfieldsdata = xfieldsdataload( $row['xfields'] ); $xf_t_val = $xfieldsdata[''.$top_field.'']; } // <- обработка допполей //обработка допполей -> $xf_t_val = ""; if ($top_field) { $xfieldsdata = xfieldsdataload($row['xfields']); $xf_t_val = str_replace('\"', '', $xfieldsdata[$top_field]); //$xf_t_val - это переменная, возвращающая значение дополнительного поля } // <- обработка допполей Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.