Перейти к контенту

изменения вывода аватаров к 1 аперля.


Рекомендуемые сообщения

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-ой коннект к БД открыть и делать этот запрос другим коннектом. Ну или конечно с такой же формулировкой наплевать на возможные баги :D

Ссылка на комментарий
Поделиться на других сайтах

покажи свой SQL запрос

SELECT avatar, avatar_size
FROM `ibf_members` WHERE avatar_size != ''
ORDER BY rand( )

 

 

И куда ты его всписывал в topic.php или в functions.php ?

Пробовал оба варианта.

 

 

Song

У меня сначала была идея одним запросом получить массив аватарок, сортированных в случайном порядке, и в процессе формирования сообщений топика брать из массива другие аватарки.

Не получилось: "функция вне класса" или элемент массива почему-то оказывается пустым; скорее всего я куда-то не туда ставил запрос.

Тогда попробовал делать запрос внутри цикла, но не знал про фокус с новым коннектом с новым именем переменной.

Ссылка на комментарий
Поделиться на других сайтах

Как вариант: аватрки можно можно перемешать же и без 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)];

 

и получаем желаемое

Ссылка на комментарий
Поделиться на других сайтах

и получаем желаемое

Идея понравилась.

В 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'];

Ссылка на комментарий
Поделиться на других сайтах

Запчасть с считыванием диры с авками в массив убираем в инициализацию что бы она один раз прошла

а в parse_member дергаем уже готовый массивчик

можно еще кинуть массив в файл или в память на постоянкку

Ссылка на комментарий
Поделиться на других сайтах

  • 6 месяцев спустя...
Классная идей-ка с аватарами! =) Очень понравилось =) А больше нет никаких прикольных эффектов на эту же тему?
Ссылка на комментарий
Поделиться на других сайтах

  • 2 года спустя...

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.