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

изменения вывода аватаров к 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 года спустя...

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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