Помощник
Здравствуйте, гость ( Вход | Регистрация )
Блок 4 в 1, Файл обновлен: 11 Aug 2009 |
Гость_SHAKA1_* |
2009-08-11, 11:46
Сообщение
#1
|
|
Гости |
Блок 4 в 1
Версия: 1.0.0 Раздел: Бесплатные дополнения Описание: Блок позволяет вывести последние Файлы, Новости, Вопросы, Комментарии с Вашего сайта. Все настройки производятся в файле block_new_on_site.php Установка: залить файл block_new_on_site.php в папку addons/blocks, добавить блок в админ панели. Посмотреть файл Подтверждение SHAKA1, от 11.8.2009, 17:46 Сообщение отредактировал SHAKA1 - 2009-08-11, 12:19 |
|
|
||
Mr-X |
2009-11-20, 10:02
Сообщение
#2
|
|
Eleanor temp USER Группа: Пользователи Сообщений: 202 Регистрация: 2009-10-21 Из: Forumz Репутация: нет Всего: нет |
Было бы неплохо иметь такой блок, но из двух потребностей, последние новости и последние комментарии
|
|
|
||
Loader |
2010-10-09, 18:51
Сообщение
#3
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Пользуюсь данным модулем, но проблема в том что если комментарий оставляют не к новости, а к опросу, то в логи пишется такая ошибка:
Цитата Notice: Undefined index: voting Line: 23 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 17:21:17 IP: 92.252.139.5 Notice: Undefined index: url Line: 35 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 17:21:17 IP: 92.252.139.5 Notice: Undefined index: voting Line: 23 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 17:21:27 IP: 92.252.139.5 Notice: Undefined index: url Line: 35 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 17:21:27 IP: 92.252.139.5 Помогите это исправить! PLZ !!! |
|
|
||
Phoenix84 |
2010-10-09, 19:20
Сообщение
#4
|
|
Любитель Группа: Eleanor user Сообщений: 231 Регистрация: 2010-03-31 Версия системы: RC5 Репутация: нет Всего: нет |
Ты его редактировал?
просто ошибок таких в жанных строках нет, там просто нет таких слов |
|
|
||
Loader |
2010-10-09, 21:00
Сообщение
#5
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
В-общем сделал вывод комментариев из блока Опросов, всё работает, но всё равно постоянно теперь пишет ошибку такую:
Цитата Notice: Undefined index: voting Line: 23 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 20:54:25 IP: 92.252.139.5 Notice: Undefined index: voting Line: 23 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 20:55:31 IP: 213.87.86.85 Notice: Undefined index: voting Line: 23 in file /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_new_comments_on_site.php URL: / Date: 2010-10-09 20:55:41 IP: 92.252.139.5 Окончательный код такой: Цитата <?php if (!defined('CMS')) die('Попытка взлома?'); $limit['comment']=6; //Кол-во выводимых комментариев $strip['comment']=200; //Кол-во символов в выводимом комментарии $cache='0'; //1-вкл кэш, 0-выкл кэш if ($cache=='1' && $Mainclass->Cache->Get('block_new_comments_on_site',false)) $content .=$Mainclass->Cache->Get('block_new_comments_on_site',false); else { $mas['news']=$comment=''; $mass['count']['news']=$c=0; $comments=$Mainclass->Db->Query('SELECT c.`id`, c.`mid`, c.`m_value`, c.`text`, m.`name` FROM `el_comments` AS c LEFT JOIN `el_modules` AS m ON c.`mid`=m.`id` ORDER BY `date` DESC LIMIT '.$limit['comment'].'',__file__,__line__); while($arrcom=$Mainclass->Db->Fetch_assoc($comments)) { $arrcom['text']=strip_tags($arrcom['text']); if(strlen($arrcom['text'])>$strip['comment'] && $arrcom['text']!='') $arrcom['text'] = "".substr($arrcom['text'], 0, $strip['comment'])."..."; $com[$arrcom['id']]['module']=$arrcom['name']; $com[$arrcom['id']]['id']=$arrcom['m_value']; $com[$arrcom['id']]['text']=$arrcom['text']; $mas[$arrcom['name']] .="".$arrcom['m_value'].","; } krsort($com); foreach ($mas as $mod=>$mc) $uniq[$mod]=implode(',', array_unique(explode(',', substr($mc, 0, -1)))); foreach ($uniq as $module=>$ids) { if ($module=='news' && $uniq['news']!='') { $news=$Mainclass->Db->Query('SELECT `id`, `url`, `title` FROM `f_news` INNER JOIN `f_news_l` USING(`id`) WHERE `id` IN ('.$ids.') LIMIT '.$limit['comment'].'',__file__,__line__); while($arrn=$Mainclass->Db->Fetch_assoc($news)) {foreach ($com as $cid=>$arr) {if ($arr['module']=='news' && $arrn['id']==$arr['id']) {$com[$cid]['url']='<img src="/images/com.png" alt="»" align="left" /> <a href="/news.html">Фильмы</a> - <a href="/news/'.$arrn['url'].'.html#comment_'.$cid.'" title="'.$arrn['title'].'">'.$arrn['title'].'</a> <br> '.$com[$cid]['text'].' ';}}}} if ($module=='voting' && $uniq['voting']!='') { $voting=$Mainclass->Db->Query('SELECT `id`, `url`, `title` FROM `f_voting` INNER JOIN `f_voting_l` USING(`id`) WHERE `id` IN ('.$ids.') LIMIT '.$limit['comment'].'',__file__,__line__); while($arrn=$Mainclass->Db->Fetch_assoc($voting)) {foreach ($com as $cid=>$arr) {if ($arr['module']=='voting' && $arrn['id']==$arr['id']) {$com[$cid]['url']='<img src="/images/com.png" alt="»" align="left" /> <a href="/voting.html">Опросы</a> - <a href="/voting/'.$arrn['url'].'.html#comment_'.$cid.'" title="'.$arrn['title'].'">'.$arrn['title'].'</a> <br> '.$com[$cid]['text'].' ';}}}} } foreach ($com as $cid=>$conf) {if ($conf['text']!='') $comment .='<tr><td>'.$conf['url'].'</td></tr>';} $content .='<span style="font-size:12pt;line-height:100%"><center>Последние комментарии к фильмам:</center></span><br /> <style>.tabst {margin:0px;}table.tabstyle td, table.tabstyle th {border: 0px #ffffff;}table.tabstyle th {background: #ffffff;color: #000000;font-size: 12px;}table.tabstyle tr.tabletrline {background-color: #ffffff;text-align:left;}</style> <div class="tabst"><table width="100%" class="tabstyle" border="0" cellspacing="1"> '.$comment.' </table></div><br><hr><br>'; if ($cache=='1') $Mainclass->Cache->Put('block_new_comments_on_site',$content,86400,false); } ?> Как бы теперь и от этой ошибки на 23 строке избавиться?А? UPD: Плюс надо вывести имя прокомментировавшего (желательно) Сообщение отредактировал Loader - 2010-10-09, 22:01 |
|
|
||
Loader |
2010-10-09, 22:01
Сообщение
#6
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Ошибки исправил, остался вопрос как вывести имя прокомментировавшего! ПОМОГИТЕ!!!
И почему запрос выглядит так: Цитата $comments=$Mainclass->Db->Query('SELECT c.`id`, c.`mid`, c.`m_value`, c.`text`, m.`name` FROM `el_comments` Почему все параметры с. , а "name" идёт m.`name` ??? В таблице el_comments есть поле "name" с именем прокомментировавшего, как его "взять"? Сообщение отредактировал Loader - 2010-10-09, 22:03 |
|
|
||
Maximkaboom |
2010-10-10, 9:48
Сообщение
#7
|
|
Опытный Группа: Eleanor user Сообщений: 766 Регистрация: 2010-04-08 Версия системы: RC5 Репутация: нет Всего: 1 |
m.`name` это имя самого модуля берется не из таблицы el_comments а из таблицы el_modules
ну и собственно, что бы вывести имя прокомментировавшего изначально нужно в запросе к базе данных указать c.`name` |
|
|
||
Loader |
2010-10-10, 17:45
Сообщение
#8
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Да я это понял! Когда я пытаюсь взять эту таблицу c.`name`, то её значение получается как раз имя модуля а не имя прокомментировавшего! Как тут быть?
Знающие люди в PHP , подскажите как обработать поле "name"? Вот кусок кода: Цитата $comments=$Mainclass->Db->Query('SELECT c.`id`, c.`mid`, c.`m_value`, c.`name`, c.`text`, m.`name` FROM `el_comments` AS c LEFT JOIN `el_modules` AS m ON c.`mid`=m.`id` ORDER BY `date` DESC LIMIT '.$limit['comment'].'',__file__,__line__); while($arrcom=$Mainclass->Db->Fetch_assoc($comments)) { $arrcom['text']=strip_tags($arrcom['text']); if(strlen($arrcom['text'])>$strip['comment'] && $arrcom['text']!='') $arrcom['text'] = "".substr($arrcom['text'], 0, $strip['comment'])."..."; $com[$arrcom['id']]['module']=$arrcom['name']; $com[$arrcom['id']]['id']=$arrcom['m_value']; $com[$arrcom['id']]['text']=$arrcom['text']; $mas[$arrcom['name']] .="".$arrcom['m_value'].","; } krsort($com); foreach ($mas as $mod=>$mc) $uniq[$mod]=implode(',', array_unique(explode(',', substr($mc, 0, -1)))); foreach ($uniq as $module=>$ids) { if ($module=='news' && $uniq['news']!='') { $news=$Mainclass->Db->Query('SELECT `id`, `url`, `title` FROM `f_news` INNER JOIN `f_news_l` USING(`id`) WHERE `id` IN ('.$ids.') LIMIT '.$limit['comment'].'',__file__,__line__); while($arrn=$Mainclass->Db->Fetch_assoc($news)) {foreach ($com as $cid=>$arr) {if ($arr['module']=='news' && $arrn['id']==$arr['id']) {$com[$cid]['url']='<img src="/images/com.png" alt="»" align="left" /> <a href="/news.html">Фильмы</a> - <a href="/news/'.$arrn['url'].'.html#comment_'.$cid.'" title="'.$arrn['title'].'">'.$arrn['title'].'</a> <br> '.$com[$cid]['text'].' ';}}}} if ($module=='voting' && $uniq['voting']!='') { $voting=$Mainclass->Db->Query('SELECT `id`, `url`, `title` FROM `f_voting` INNER JOIN `f_voting_l` USING(`id`) WHERE `id` IN ('.$ids.') LIMIT '.$limit['comment'].'',__file__,__line__); while($arrn=$Mainclass->Db->Fetch_assoc($voting)) {foreach ($com as $cid=>$arr) {if ($arr['module']=='voting' && $arrn['id']==$arr['id']) {$com[$cid]['url']='<img src="/images/com.png" alt="»" align="left" /> <a href="/voting.html">Опросы</a> - <a href="/voting/'.$arrn['url'].'.html#comment_'.$cid.'" title="'.$arrn['title'].'">'.$arrn['title'].'</a> <br> '.$com[$cid]['text'].' ';}}}} Сообщение отредактировал Loader - 2010-10-13, 16:01 |
|
|
||
Loader |
2010-10-12, 11:34
Сообщение
#9
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Ну что, разве никто не знает?
Понимаю что это просто, но сам не могу пока разобраться... |
|
|
||
user |
2010-10-12, 12:13
Сообщение
#10
|
|
Новичок Группа: Eleanor user Сообщений: 50 Регистрация: 2010-01-12 Версия системы: RC5 Репутация: нет Всего: 1 |
Я тоже пыталсясделать блок последних коментариев. Пробывал этот 4в1 править неполучилось. Еще есть админке последнии коментарии, то так и неразобрался.
|
|
|
||
Loader |
2010-10-12, 12:24
Сообщение
#11
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
А ты сюда зайди: http://pda-kino.net/ и посмотри, получилось у меня или нет! Дело в другом: хочу выводить имя прокомментировавшего рядом с комментарием и вот именно это пока не получается! |
|
|
||
user |
2010-10-12, 12:55
Сообщение
#12
|
|
Новичок Группа: Eleanor user Сообщений: 50 Регистрация: 2010-01-12 Версия системы: RC5 Репутация: нет Всего: 1 |
Loader
Чтобы посмотреть надо зарегистрироватся. Надо попраить чуть твой код вместо f_ сделать prefix_ Еще мне пришлось кодировку менять так как мой сервак каказябил кирилицу в коде. Как добавить ник незнаю. Но я чуть поправил твой код и у меня все работает. Спасибо.
Прикрепленные файлы
|
|
|
||
Loader |
2010-10-12, 13:17
Сообщение
#13
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Видимо это опечатка, потом я всё это поправил. Вот сейчас с ником мучаюсь. |
|
|
||
Loader |
2010-10-13, 16:21
Сообщение
#14
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
В-общем, насколько я понял при существующем запросе с использованием "LEFT JOIN" имени прокомментировавшего никак не вывести, так как таблица с именем перезаписывается таблицей с названием модуля.
Цитата $comments=$Mainclass->Db->Query('SELECT c.`id`, c.`mid`, c.`m_value`, c.`name`, c.`text`, m.`name` FROM `el_comments` AS c LEFT JOIN `el_modules` AS m ON c.`mid`=m.`id` ORDER BY `date` DESC LIMIT '.$limit['comment'].'',__file__,__line__); Этот запрос для этого нужно переделывать с использованием подзапроса, вроде бы так. HELP! Сообщение отредактировал Loader - 2010-10-13, 16:22 |
|
|
||
Alexander |
2010-10-15, 23:30
Сообщение
#15
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Loader, ничего не надо переделывать. Используйте алиасы:
|
|
|
||
Текстовая версия | 0.0476 сек. 12 запросов GZIP включен Сейчас: 2024-09-24, 10:52 |