Помощник
Здравствуйте, гость ( Вход | Регистрация )
[решено]Помогите исправить Блок случайных новостей |
Loader |
2010-08-09, 15:53
Сообщение
#1
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Собственно, скачал и установил этот блок, в результате у меня такое впечатление сто он неправильно ищет картинку,
здесь: http://pda-kino.net.ru/ можно посмотреть. А именно вместо того чтобы брать постер фильма он берёт иконку скачать и выводит её в блок Я в php не силён, может кто исправит ошибку?
Сообщение отредактировал Loader - 2011-01-22, 22:53 |
|
|
||
Alexander |
2010-08-09, 23:08
Сообщение
#2
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Ай, как нехорошо. Повесим сервак при наличии 500 новостей. Судя по всему берет первую попавшуюся иконку. |
|
|
||
Loader |
2010-08-10, 9:23
Сообщение
#3
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
О Сайте: на 10 августа 2010Фильмов: 259 Страница сгенерирована за 0.268 секунд(ы). Да вроде нет такой тенденции... Сообщение отредактировал Loader - 2010-08-10, 9:24 |
|
|
||
Loader |
2010-08-16, 19:04
Сообщение
#4
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Ещё мнения есть?
Сообщение отредактировал Loader - 2010-08-16, 19:05 |
|
|
||
Loader |
2010-08-21, 18:26
Сообщение
#5
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
В-общем видел такой блок в работе на одном из сайтов, но там изображения вставлены не как объект, а как [IMG]
и он там работает на 100% Тут же ничего сложного, просто прикрутить его к ATTACH нужно! HELP! |
|
|
||
Phoenix84 |
2010-08-21, 18:37
Сообщение
#6
|
|
Любитель Группа: Eleanor user Сообщений: 231 Регистрация: 2010-03-31 Версия системы: RC5 Репутация: нет Всего: нет |
Прошу прощения, не так понял. Там главное RegExp.
Сообщение отредактировал Phoenix84 - 2010-08-21, 19:04 |
|
|
||
azacgrus |
2010-08-21, 19:19
Сообщение
#7
|
|
Любитель Группа: Eleanor user Сообщений: 246 Регистрация: 2008-12-13 Из: Санкт-Петербург Репутация: нет Всего: 12 |
Alexander, как можно по-другому искать случайную запись в базе? Т.к. гавнокод выше мой И да он берёт первую картинку из новости.
|
|
|
||
Phoenix84 |
2010-08-21, 19:23
Сообщение
#8
|
|
Любитель Группа: Eleanor user Сообщений: 231 Регистрация: 2010-03-31 Версия системы: RC5 Репутация: нет Всего: нет |
azacgrus, сделай не по первой картинке, а по первому аттачу. Я бы может и помог, но регэкспы мне недаются никак...
Советую сначала взять количество самих новостей. Потом сделать рандом от 1 до этого числа, а потом просто взять новость этого числа Сообщение отредактировал Phoenix84 - 2010-08-21, 19:37 |
|
|
||
Loader |
2010-08-21, 20:02
Сообщение
#9
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
azacgrus, сделай это ПЛИЗЗЗЗ!!! |
|
|
||
Alexander |
2010-08-21, 23:29
Сообщение
#10
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Самое простое и правильное, но делается в два запроса. 1. Извлекаем общее число новостей из базы. Пишу запросы примерами, ибо некогда.
Это число записываем в переменную $cnt. После этого проводим такую манипуляцию с переменной:
Ну а далее через обычный лимит:
|
|
|
||
azacgrus |
2010-08-22, 0:05
Сообщение
#11
|
|
Любитель Группа: Eleanor user Сообщений: 246 Регистрация: 2008-12-13 Из: Санкт-Петербург Репутация: нет Всего: 12 |
Alexander, до меня потом дошло уже, но всё равно спасибо.
Loader, если будет время, то переделаю. |
|
|
||
Loader |
2010-10-20, 16:53
Сообщение
#12
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Попробовал, и вот результат: Fatal error: Unsupported operand types in /var/www/pdaki192/data/www/pda-kino.net.ru/addons/blocks/block_random_news.php on line 21 Добавлено через 5 минут, 5 секунд: Произошла ошибка При выполнении запроса произошла ошибка: (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$cnt, 1' at line 1 Адрес ошибки: ?[?]. Сохраняйте спокойствие: ошибка записана - админ придет, разберется. Добавлено через 11 минут, 13 секунд: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$cnt, 1' at line 1 Query: SELECT `id`,`url`,`main_cat`,`title`,`text`,`author`,`author_id` FROM `el_news` INNER JOIN `el_news_l` LIMIT $cnt, 1 Line: ? in file ? URL: / Date: 2010-10-20 17:01:01 IP: 92.252.153.89 |
|
|
||
Loader |
2011-01-22, 18:07
Сообщение
#13
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Переделал этот блок по инструкции Александра, осталось добавить вывод картинки из
Цитата <?php if (!defined('CMS')) die('Попытка взлома?'); $limit['name']=45; //Кол-во выводимых сииволов $Mainclass->LoadOptions('module_news',false); $Mainclass->Url->ending=$Mainclass->vars['m_news_ending']; $Mainclass->LoadClass('classes/others/class_categories_l.php'); $Mainclass->Categories_l->url_ending=$Mainclass->vars['m_news_category_ending']; $Mainclass->Categories_l->table_name='news_categories'; $Mainclass->Categories_l->Init(); $ug=$Mainclass->Account->GetUserGroups(); sort($ug,SORT_NUMERIC); $ug=' OR `groups` LIKE \'%,'.implode(',%,',$ug).',%\''; $cnt=$Mainclass->Cache->Get('news_total_',false); if($cnt==false) { $Mainclass->Db->Query('SELECT COUNT(`id`) FROM `f_news` WHERE `status`=1 AND (`groups`=\'\''.$ug.')',__file__,__line__); list($cnt)=$Mainclass->Db->Fetch_row(); $Mainclass->Db->Free(); $Mainclass->Cache->Put('news_total_',$cnt,100,false); } $cnt=mt_rand(0,$cnt-1); $Mainclass->Db->Query('SELECT `id`,`url`,`main_cat`,`title`,`text`,`author`,`author_id` FROM `f_news` INNER JOIN `f_news_l` USING(`id`) WHERE `status`=1 AND (`groups`=\'\''.$ug.') LIMIT '.$cnt.', 1'); $arr=$Mainclass->Db->Fetch_assoc(); $url='news/'.($Mainclass->vars['m_news_long_url'] ? $Mainclass->Categories_l->CategoryUrl($arr['main_cat'],'news_categories',false,false).$arr['url'] : $arr['url']); $whopost=$Mainclass->Login->UserLink($arr['author'],$arr['author_id']); if(strlen($arr['title'])>$limit['name'] && $arr['title']!='') $arr['title'] = Strings::CutStr($arr['title'], $limit['name'], "..."); $content.='<table width="100%" border="0" > <tr valign="middle"> <td><a href="'.$url.'.html"><img src="/images/windowsmoviemaker.png" alt="»" /></a> </td> <td align="left"><h3><a href="'.$url.'.html">'.$arr['title'].'</a></h3></td> </table>'; ?> azacgrus, выручай! Сообщение отредактировал Loader - 2011-01-22, 18:08 |
|
|
||
Loader |
2011-01-22, 19:10
Сообщение
#14
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Как правильно составить regex для preg_match?
Допустим, есть произвольный текст, содержащий в себе:
Как нужно составить preg_match , чтобы извлечь uploads/news/467/turist.jpg Может, Alexander подскажет? PLZ!!! Сообщение отредактировал Loader - 2011-01-22, 19:12 |
|
|
||
peter |
2011-01-22, 20:23
Сообщение
#15
|
|
Заглянувший Группа: Персона нон грата Сообщений: 24 Регистрация: 2010-06-09 Версия системы: RC5 Репутация: нет Всего: нет |
Как правильно составить regex для preg_match? Допустим, есть произвольный текст, содержащий в себе:
Как нужно составить preg_match , чтобы извлечь uploads/news/467/turist.jpg Может, Alexander подскажет? PLZ!!! Мне кажется лучше воспользоваться строковыми функциями - найти вхождение attach= и соответственно концовку " preview=" обезать с таково-то символа по такое-то и получится нужный текст. Попробуй это:
Сообщение отредактировал peter - 2011-01-22, 21:00 |
|
|
||
Alexander |
2011-01-22, 21:07
Сообщение
#16
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
примерно так:
#\[attach=(uploads[a-z0-9-\__.]+)# Сообщение отредактировал Alexander - 2011-01-22, 21:38 |
|
|
||
Loader |
2011-01-22, 22:09
Сообщение
#17
|
|
Профессионал Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: нет Всего: нет |
Работает! Только не {20,100} а {0,100} ! А это не работает Кому надо - прикладываю блок: block_random_news.rar ( 1.15 килобайт ) Скачиваний: 3 Сообщение отредактировал Loader - 2011-01-22, 22:54
Прикрепленные файлы
|
|
|
||
Alexander |
2011-01-23, 3:38
Сообщение
#18
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Я показал лишь пример. Даже скажу причину почему не работает: в перечне символов, забыл / |
|
|
||
peter |
2011-01-23, 16:06
Сообщение
#19
|
|
Заглянувший Группа: Персона нон грата Сообщений: 24 Регистрация: 2010-06-09 Версия системы: RC5 Репутация: нет Всего: нет |
(вдруг будет изображение со стороннего ресурса?) ПС Случайная новость не очень нравиться ботам Сообщение отредактировал peter - 2011-01-23, 16:12 |
|
|
||
Текстовая версия | 0.0398 сек. 11 запросов GZIP включен Сейчас: 2024-03-29, 3:33 |