Song Опубликовано 8 Апреля 2008 Жалоба Поделиться Опубликовано 8 Апреля 2008 FatCat Topics.php: $oq = $DB->query( "SELECT p.*, m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_ name,m.icq_number, if ( ! $DB->get_num_rows($oq) ) { if ($first >= $ibforums->vars['display_max_posts']) //------------------------------------- // Format and print out the topic list //------------------------------------- $post_count = 0; // Use this as our master bater, er... I mean counter. while ( $row = $DB->fetch_row($oq) ) { Но вообщем-то конечно плохое решение добавлять в функцию, которая вызывается как обработка из многих мест запрос.Может всплыть впоследствии множество глюков. Если речь только о 1-ом апреля (один раз в год) можно 2-ой коннект к БД открыть и делать этот запрос другим коннектом. Ну или конечно с такой же формулировкой наплевать на возможные баги Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 8 Апреля 2008 Жалоба Поделиться Опубликовано 8 Апреля 2008 покажи свой SQL запросSELECT avatar, avatar_size FROM `ibf_members` WHERE avatar_size != '' ORDER BY rand( ) И куда ты его всписывал в topic.php или в functions.php ?Пробовал оба варианта. SongУ меня сначала была идея одним запросом получить массив аватарок, сортированных в случайном порядке, и в процессе формирования сообщений топика брать из массива другие аватарки.Не получилось: "функция вне класса" или элемент массива почему-то оказывается пустым; скорее всего я куда-то не туда ставил запрос.Тогда попробовал делать запрос внутри цикла, но не знал про фокус с новым коннектом с новым именем переменной. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 8 Апреля 2008 Жалоба Поделиться Опубликовано 8 Апреля 2008 Как вариант: аватрки можно можно перемешать же и без SQL-запроса (пишу на примере 2.0.х) файл topics.php в parse_member после global $ibforums, $std, $DB; вставляем $avdir = dir($ibforums->vars['upload_dir']); while($func=$avdir->read()) { if(substr($func, 0, 3) == "av-") { $avlist .= "$func "; } } closedir($avdir->handle); $avlist = explode(" ", $avlist); $avcolvo=count($avlist)-1; $member['avatar_location'] = $avlist[mt_rand(0,$avcolvo)]; и получаем желаемое Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 8 Апреля 2008 Жалоба Поделиться Опубликовано 8 Апреля 2008 и получаем желаемоеИдея понравилась.В 1.х: $avdir = dir($ibforums->vars['upload_dir']); while($func=$avdir->read()) { if(substr($func, 0, 3) == "av-") { $avlist .= "$func ";// } } closedir($avdir->handle); $avlist = explode(" ", $avlist); $avcolvo=count($avlist)-1; $member['avatar'] = $avlist[mt_rand(0,$avcolvo)]; $member['avatar'] = "upload:".$member['avatar']; Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 8 Апреля 2008 Жалоба Поделиться Опубликовано 8 Апреля 2008 Запчасть с считыванием диры с авками в массив убираем в инициализацию что бы она один раз прошлаа в parse_member дергаем уже готовый массивчикможно еще кинуть массив в файл или в память на постоянкку Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Leo_Skywalker Опубликовано 21 Октября 2008 Жалоба Поделиться Опубликовано 21 Октября 2008 Классная идей-ка с аватарами! =) Очень понравилось =) А больше нет никаких прикольных эффектов на эту же тему? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
rinich Опубликовано 1 Апреля 2011 Жалоба Поделиться Опубликовано 1 Апреля 2011 АП! А какие-нибудь штучки для трёшки у кого-нибудь есть в запасе? )) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Ph-A Опубликовано 1 Апреля 2011 Жалоба Поделиться Опубликовано 1 Апреля 2011 April Fools CSS3 Trickery 1.0.0 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
rinich Опубликовано 1 Апреля 2011 Жалоба Поделиться Опубликовано 1 Апреля 2011 Спасибо ) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.