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

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

 
Ответить в данную темуНачать новую тему
> Блок 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="&raquo;" align="left" /> &nbsp; <a href="/news.html">Фильмы</a> &nbsp;- &nbsp; <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="&raquo;" align="left" /> &nbsp; <a href="/voting.html">Опросы</a> &nbsp;- &nbsp; <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="&raquo;" align="left" /> &nbsp; <a href="/news.html">Фильмы</a> &nbsp;- &nbsp; <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="&raquo;" align="left" /> &nbsp; <a href="/voting.html">Опросы</a> &nbsp;- &nbsp; <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

Репутация:   нет  
Всего: нет


Цитата (user @ 2010-10-12, 12:13)
Я тоже пыталсясделать блок последних коментариев. Пробывал этот 4в1 править неполучилось. Еще есть админке последнии коментарии, то так и неразобрался.


А ты сюда зайди: http://pda-kino.net/ и посмотри, получилось у меня или нет! :)
Дело в другом: хочу выводить имя прокомментировавшего рядом с комментарием и вот именно это пока не получается!
Перейти в начало страницы
+Цитировать сообщение
user
сообщение 2010-10-12, 12:55
Сообщение #12
Новичок
Иконка группы

Группа: Eleanor user
Сообщений: 50
Регистрация: 2010-01-12
Версия системы: RC5

Репутация:   нет  
Всего: 1


Loader
Чтобы посмотреть надо зарегистрироватся.
Надо попраить чуть твой код вместо f_ сделать prefix_
Еще мне пришлось кодировку менять так как мой сервак каказябил кирилицу в коде.
Как добавить ник незнаю.
Но я чуть поправил твой код и у меня все работает. Спасибо.

Прикрепленные файлы
Прикрепленные файлы  блок_коментарии.rar ( 57.7 килобайт ) Скачиваний: 7
 
Перейти в начало страницы
+Цитировать сообщение
Loader
сообщение 2010-10-12, 13:17
Сообщение #13
Профессионал
Иконка группы

Группа: Eleanor user
Сообщений: 1 161
Регистрация: 2010-04-19

Репутация:   нет  
Всего: нет


Цитата (user @ 2010-10-12, 12:55)
Loader
Надо попраить чуть твой код вместо f_ сделать prefix_
Еще мне пришлось кодировку менять так как мой сервак каказябил кирилицу в коде.
Как добавить ник незнаю.
Но я чуть поправил твой код и у меня все работает. Спасибо.


Видимо это опечатка, потом я всё это поправил. Вот сейчас с ником мучаюсь.
Перейти в начало страницы
+Цитировать сообщение
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! :help:

Сообщение отредактировал Loader - 2010-10-13, 16:22
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2010-10-15, 23:30
Сообщение #15
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Loader, ничего не надо переделывать. Используйте алиасы:

$comments=$Mainclass->Db->Query('SELECT c.`id`, c.`mid`, c.`m_value`, c.`name`, c.`text`, m.`name` `mname` 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__);
Перейти в начало страницы
+Цитировать сообщение
Diego
сообщение 2010-10-16, 9:07
Сообщение #16
Любитель
Иконка группы

Группа: Eleanor user
Сообщений: 298
Регистрация: 2008-12-13
Из: Ярославль

Репутация:   нет  
Всего: 14


as забыл по-моему
Перейти в начало страницы
+Цитировать сообщение
Loader
сообщение 2010-10-16, 10:52
Сообщение #17
Профессионал
Иконка группы

Группа: Eleanor user
Сообщений: 1 161
Регистрация: 2010-04-19

Репутация:   нет  
Всего: нет


Ничего он не забыл, всё на уровне!
Вот спасибо, всё сделал как хотел!

Сообщение отредактировал Loader - 2010-10-16, 11:00
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0522 сек.    11 запросов    GZIP включен    Сейчас: 2021-06-13, 8:49