Перейти к контенту
  • 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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