форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
fr0x
Продвинутый
 
fr0x's Avatar
Default Во что вы играете?
1

Как сделать такую прелесть?


то что надо делать через доп. поля пользователей, это я понял) только вот какой код пихать в postbit_legacy я незнаю :(

смысл: в своём кабинете вам даётся на выбор 3 игры... cs, cod4, quake3 ; вы ставите галочки в какую(ие) играете и если вы выбрали cs и quake3 (как на скрине) то у вас показывает не прозрачные картинки игр, но если вы не выбрали какуюто игру, то показывается прозрачная иконка.

Кто знает как такую прелесть сделать или реализовать?
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
GiveMeABreak
Эксперт
 
GiveMeABreak's Avatar
Default
1

реализовать можно, но долго
 
 
Red-Devil
Гость
Default

Можно реализовать на подобии "дополнительного поля Пол пользователя"
Возможно)
 
 
GiveMeABreak
Эксперт
 
GiveMeABreak's Avatar
Default
1

вот дам пример, такой код повторять для каждой игры

<if condition="$userinfo['fieldXX']">
<img src="путь_до_картинки_непрозрачной">
</if>
<if condition="!$userinfo['fieldXX']">
<img src="путь_до_картинки_прозрачной">
</if>
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
2

RombI4, сами поля можно добавить через "Дополнительные поля профиля" -- "Флажки (checkboxes) с возможностью выбора нескольких" -- это ты уже понял. Т.е. это сделать сможешь. Пусть эти поля такие: Counter-Strike и Quake III.

Дальше тебе нужно создать и залить иконки. Создать иконки сможешь опять-таки сам. Главное здесь -- дать им правильное название. Оптимальным вариантом для представленных выше примеров будут имена "counter-strike.gif" и "quake_iii.gif", т.е. имя иконки совпадает с именем игры, но пишется маленькими буквами и пробелы заменяются на подчеркивание "_". Заливай эти картинки в папку, например, "images/games".

Теперь нужно разместить отображение доп. поля в постбите. Иди в админку -- Стили и шаблоны -- Управление стилями -- и ищи в нужном стиле шаблон postbit_legacy. В этом шаблоне ищи строки
HTML Code:
			<div id="postmenu_$post[postid]">
				<if condition="$show['profile']">
				<a class="bigusername" href="member.php?$session[sessionurl]u=$post[userid]">$post[musername]</a>
				<script type="text/javascript"> vbmenu_register("postmenu_$post[postid]", true); </script>
				<else />
				$post[musername]
				</if>
			</div>
и сразу после них вставляй
HTML Code:
			<div>$post[fieldX]</div>
только вместо "fieldX" нужно будет указать правильное название доп. поля -- "filed10", "field7" или еще как -- это зависит от номера доп. поля. После этого у тебя сразу за именем будет выводится некое число, которое складывается из номеров выбранных игр, причем номера даются таким образом: 1, 2, 4, 8 и т.д., т.е. степени двойки. Или же будет выводится 0, если ничего не выбрано. Осталось только обработать эти данные.

Теперь идем в админку -- Продукты и модули -- Добавить новый модуль -- и создаем модуль на хуке "postbit_display_complete". Модуль должен выглядеть как-то так:
PHP Code:
$games = array (
    
=> 'Counter-Strike',
    
=> 'Quake III',
);
$post['games'] = array ();
foreach (
$games as $num => $game)
{
    
$image str_replace (' ''_'strtolower ($game));
    
$check = ($post['fieldX'] & $num) ? '' ' style="opacity:0.5;filter:alpha(opacity=50)"';
    
$post['games'][] = '<img src="images/games/' $image '.gif" width="24" height="24" hspace="1" border="0" alt="' $game '"' $check ' />';
}
$post['fieldX'] = join (''$post['games']); 
В этом коде тебе нужно будет подправить массив $games, внеся туда свои игры, изменить "width" и "height" для картинки и указать правильное "fieldX".
 
 
fr0x
Продвинутый
 
fr0x's Avatar
Default
1

Ghost, всё супер! но у меня 3 игры: Counter-Strike, Call of Duty 4 ; Left 4 Dead
получилось у меня только с первыми 2 играми... а 3 автоматически всегда непрозрачная, даже если я её не выбираю...
вот код который модуль)
PHP Code:
$games = array (
    
=> 'CStrike',
    
=> 'COD4',
    
=> 'L4D',
);
$post['games'] = array ();
foreach (
$games as $num => $game)
{
    
$image str_replace (' ''_'strtolower ($game));
    
$check = ($post['field5'] & $num) ? '' ' style="opacity:0.5;filter:alpha(opacity=50)"';
    
$post['games'][] = '<img src="images/games/' $image '.png" width="20" height="20" hspace="1" border="0" alt="' $game '"' $check ' />';
}
$post['field5'] = join (''$post['games']); 
у меня field5




RombI4 добавил 10.06.2009 в 14:24
Всё... вчитался 5 раз в твой пост и сделал)) спасибы! однозначно белый лист пошёл отзыв писать

Last edited by fr0x : 06-10-2009 at 02:24 PM. Reason: Добавлено сообщение
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
2

Quote:
Originally Posted by RombI4 View Post
Всё... вчитался 5 раз в твой пост и сделал
Поправь тогда что ли свой предыдущий пост или напиши, где возникла проблема и что и как поправил, чтобы у других, кого это заинтересует, не возникло проблем Хотя я так думаю, грабли были в
PHP Code:
=> 'L4D'
а нужно было
PHP Code:
=> 'L4D'
я прав?
 
 
fr0x
Продвинутый
 
fr0x's Avatar
Default
1

И так вчитаясь в пост
Quote:
Originally Posted by Ghost View Post
причем номера даются таким образом: 1, 2, 4, 8 и т.д., т.е. степени двойки
я понял, что я сделал не так
у меня был php код:
PHP Code:
$games = array (
    
=> 'CStrike',
    
=> 'COD4',
    
=> 'L4D'
а надо было:
PHP Code:
$games = array (
    
=> 'CStrike',
    
=> 'COD4',
    
=> 'L4D'
В итоге:
PHP Code:
$games = array (
    
=> 'CStrike',
    
=> 'COD4',
    
=> 'L4D',
);
$post['games'] = array ();
foreach (
$games as $num => $game)
{
    
$image str_replace (' ''_'strtolower ($game));
    
$check = ($post['field5'] & $num) ? '' ' style="opacity:0.5;filter:alpha(opacity=50)"';
    
$post['games'][] = '<img src="images/games/' $image '.png" width="20" height="20" hspace="1" border="0" alt="' $game '"' $check ' />';
}
$post['field5'] = join (''$post['games']); 
Бесконечная благодарность Ghost`y за написание этого хака ©
 
 
Worldarena
Простоузер
Default
0

у меня чёто ничего не получается= (
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 10:09 PM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...