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

Статусы пользователей


Бриан

Вопрос

На форуме предлагается создать некую систему статусов:

 

Проездом - 0

Новичок - 5

Кандидат в участники - 25

Участник - 50

Активный участник - 100

Заслуженный участник - 250

Мастер - 500

Гуру - 750

Чародей - 1000

Лорд Волшебник - 1500

Бог - 2000

 

При этом, как я заметил, ещё есть картинки (квадратики, число которых аналогично званию). Так вот, если есть возможность, сделать для статусов такие картинки:

 

Проездом - нет картинки

Новичок - один квадратик

Кандидат в участники - два квадратика

Участник - три квадратика

Активный участник - четыре квадратика

Заслуженный участник - пять квадратиков

Мастер - одна звезда

Гуру - две звезды

Чародей - три звезды

Лорд Волшебник - четыре звезды

Бог - пять звёзд

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

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

  • 0
Я что-то не догнал, в чем ваша проблема. Всё это настраивается в админке.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

И звезды тоже настраиваются?

Если вы имеете в виду загрузку своего рисунка, тогда понятно....или там еще и звезды есть?

Кстати, вопрос в тему, а какого размера должна быть картинка для статуса, ее размер в смысле? Любой?

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

  • 0

значит так.

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

 

в первом случае в нужном месте вставится указанное кол-во файлов style_images/X/pip.gif

 

во втором случае - вставится нужная картинка, которая должна быть размещена в html/team_icons/

то есть если указать там super_user_1.gif, то путь до картинки будет

html/team_icons/super_user_1.gif

 

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

поэтому первый вариант - просто закиньте допкартинки (посмотрите как например сделаны style_images/X/warnN.gif)

 

второй вариант - должно быть несложно модифицировать...[1129140635:1129147613]оказывается, много раз уже подобные вопросы поднимались.

предлагаю, если указаное выше решение не устраивает - сделать поиск, например Поиск по слову: "статус" и связаться с людьми - может кто-то проблему решил, но решил не сообщать. также по темам можно подыскать что-нить на Изе.[1129147613:1129165039]в общем, в бета-версии, наспех, набросал модификацию, чтоб можно было создавать любое кол-во вариантов разноцветности шкалы.

вывода еще не сделал, но в админке это выглядит примерно так: post-4420-1129165008_thumb.jpg

 

если кому нужно - могу выложить для доведения до ума.

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

  • 0

Короче, можете попробовать так...

 

1. sources/Admin/ad_member.php

а) функция titles()

ищем

$DB->query("SELECT macro_replace AS A_STAR FROM ibf_macro WHERE macro_set={$mid['macro_id']} AND macro_value='A_STAR'");

заменяем на

$stars = array();
$DB->query("SELECT macro_value, macro_replace AS A_STAR FROM ibf_macro WHERE macro_set={$mid['macro_id']} AND macro_value LIKE 'A_STAR%'");

чуть ниже находим

$row = $DB->fetch_row();
         $row['A_STAR'] = str_replace( "<#IMG_DIR#>", $mid['img_dir'], $row['A_STAR'] );

заменяем на

while ($row = $DB->fetch_row()) $stars[$row['macro_value']] = str_replace( "<#IMG_DIR#>", $mid['img_dir'], $row['A_STAR'] );

еще ниже обнаруживаем

$img .= $row['A_STAR'];

и заменяем на

$img .= $stars[$r['star_var']];

 

ниже ищем

  $ADMIN->html .= $SKIN->add_td_row( array( "<b>Кол-во значков</b><br>(Или название изображения)" ,
             $SKIN->form_input( "pips" )
             )      );

сразу после ДОБАВЛЯЕМ

  $ADMIN->html .= $SKIN->add_td_row( array( "<b>Тип значка</b><br>(только если в графе выше указано число, а не имя файла)" ,
               $SKIN->form_radio( "star_var", $stars, A_STAR, '')
                  )      );

 

б) функции add_rank() и edit_rank()

ищем

foreach( array( 'posts', 'title', 'pips') as $field )

заменяем на

foreach( array( 'posts', 'title', 'pips', 'star_var') as $field )

ищем

'posts'  => trim($IN['posts']),
'title'  => trim($IN['title']),
'pips'   => trim($IN['pips']),

ДОБАВЛЯЕМ сразу после этого

'star_var'=> trim($IN['star_var']),

 

(напоминаю - эти два действия - в каждой из функций)

 

в) функция rank_setup

ищем

$rank = array( 'posts' => "", 'title' => "", 'pips' => "");

заменяем на

$rank = array( 'posts' => "", 'title' => "", 'pips' => "", 'star_var' => "");

сразу после этого видим

$button = "Добавить статус";
 }

ДОБАВЛЯЕМ после этого

$DB->query("SELECT macro_id, img_dir FROM ibf_skins WHERE default_set=1");
 
 $mid = $DB->fetch_row();
 $stars = array();
 
$DB->query("SELECT macro_value, macro_replace AS A_STAR FROM ibf_macro WHERE macro_set={$mid['macro_id']} AND macro_value LIKE 'A_STAR%'");

   while ($row = $DB->fetch_row()) 
 	$stars[$row['macro_value']] = str_replace( "<#IMG_DIR#>", $mid['img_dir'], $row['A_STAR'] );

ниже ищем

  $ADMIN->html .= $SKIN->add_td_row( array( "<b>Кол-во значков</b><br>(Или название изображения)" ,
             $SKIN->form_input( "pips", $rank['pips'] )
             )      );

ДОБАВЛЯЕМ сразу после этого

$ADMIN->html .= $SKIN->add_td_row( array( "<b>Тип значка</b><br>(имеет значение только если в графе выше указано число, а не имя файла)" ,
         $SKIN->form_radio( "star_var", $stars, $rank['star_var'], '')
            )      );

 

2. sources/Admin/admin_skin.php

 

Находим

	function form_checkbox( $name, $checked=0, $val=1, $js=array() ) {
 
 if ($checked == 1)
 {
 	
 	return "<input type='checkbox' name='$name' value='$val' checked='checked'>";
 }
 else
 {
 	return "<input type='checkbox' name='$name' value='$val'>";
 }
 
}

//+--------------------------------------------------------------------

ДОБАВЛЯЕМ ниже:

  function form_radio($name, $list=array(), $default_val="", $js="") {

 if ($js != "")
 {
 	$js = ' '.$js.' ';
 }

 $html = "";
 
 foreach ($list as $k => $v)
 {
 
 	$checked = '';
 	
 	if ( ($default_val != "") and ($k == $default_val) )
 	{
   $checked = ' checked';
 	}
 	
 	$html .= "<input type='radio' name='$name' value='".$k."'".$checked."> ".$v."  \n";
 }
 
 $html .= "\n\n";
 
 return $html;


}

//+--------------------------------------------------------------------

 

3. sources/Memberlist.php

ищем

$DB->query("SELECT title, id, posts, pips from ibf_titles ORDER BY posts DESC");

заменяем на

$DB->query("SELECT title, id, posts, pips, star_var FROM ibf_titles ORDER BY posts DESC");

чуть ниже ищем

'POSTS'   => $row['posts'],
'PIPS'    => $row['pips'],

сразу после этого ДОБАВЛЯЕМ

'STAR'    => $row['star_var'],

ниже ищем

$member['pips'] .= "<{A_STAR}>";

заменяем на

$member['pips'] .= "<{".$v['STAR']."}>";

 

4. sources/Topics.php

ищем

$DB->query("SELECT id, title, pips, posts from ibf_titles ORDER BY posts DESC");

заменяем на

$DB->query("SELECT id, title, pips, posts, star_var FROM ibf_titles ORDER BY posts DESC");

чуть ниже ищем

'PIPS'    => $i['pips'],
'POSTS' => $i['posts'],

сразу после этого ДОБАВЛЯЕМ

'STAR'    => $i['star_var'],

ниже ищем

$member['member_rank_img'] .= "<{A_STAR}>";

заменяем на

$member['member_rank_img'] .= "<{".$v['STAR']."}>";

 

5. Идем в админку, в SQL-утилиту, отдаем запрос:

ALTER TABLE `ibf_titles` ADD `star_var` varchar(200) NOT NULL default 'A_STAR'

префикс ibf_ при необходимости меняем на свой

 

6. создаем нужные картинки. тут никаких правил нет, но все же лучше придерживаться образца pip.gif - в смысле размеров ;-)

картинки для нашего же удобства скалыдваем в папку style_images/X/, где X - какое-то число, обычно "1".

картинки опять же для удобства называем вариациями на тему pip.gif - вроде pip-2.gif, pipnew.gif ну и так далее.

 

7. В админке идем в Скины -> Макросы - редактирование

ищем макрос A_STAR и по его образу и подобию создаем новые в том же наборе макросов.

Наверху нажимаем кнопку "Добавить макрос"

Ключ макроса должен начинаться с "A_STAR" - а дальше выдумывайте что угодно на тему латинских букв, цифр, символов "-", "_"

К примеру, A_STAR-2, A_STAR_NEW и т.д.

Значение макроса можно скопировать со стандартного A_STAR

Там это

<img src='style_images/<#IMG_DIR#>/pip.gif' border='0'  alt='*' />

соответственно, нужно заменить название файла ("pip.gif") и можно значение alt

 

вот вроде бы и всё.

В итоге должно получиться что-то вроде этого:

post-4420-1129274698_thumb.jpg

post-4420-1129274831_thumb.jpg

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

  • 0

Song, пасиба :D

меня обычно тоже лень одолевает, ну когда-то же она должна отдыхать ;)

лучше, если не лень, прогляди плз код - я в себе не уверен...

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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