Значит так. У меня в профиле кажись присутствуют. Можете посмотреть.
1. Создаем доп. поле
Название*: Подарки и призы
Тип поля*: Текстовое
Добавить это поле и на страницу регистрации?* Нет
Сделать это поле обязательным для заполнения?* Нет
Скрыть это поле в профиле?* Нет
Поле может быть отредактировано пользователем?* Да
* - обязательно должно быть чёткое соответсвие, особенно Название, без него выводиться не будет.
2. Редактируем шаблон: Profile View Sections -> Member Profile Page
В самый верх добавляем это:
<script language='Javascript' type='text/javascript'>
function PrintPresents(fieldName,fieldValue) {
if (fieldName == "Подарки и призы") {
if (fieldValue != "<i>Нет информации</i>") {
var nValue = new Array;
var NValueF = new Array;
var k = 0;
nValue = fieldValue.split("|");
document.write('<tr><td colspan="2" width="100%"><table class="tableborder" cellspacing="1" cellpadding="4" valign="top" width="100%"><tr><td class="maintitle" colspan="5">Подарки и призы. Всего ',(nValue.length - 1),'.</td></tr><tr>');
for( i = 0 ; i < (nValue.length - 1); i++ ) {
k++;
if ( k == 6 ) {
k = 0;
document.write('</tr><tr>')
}
NValueF = nValue[i].split("][");
document.write('<td align="center" valign="center" class="row4"><b>',NValueF[0],'</b></br><a title="',NValueF[1],'" href="',NValueF[3],'"><img id="imgP',i,'" src="',NValueF[2],'" border="0" /></td>');
}
document.write('</tr></table></td></tr>');
}
else {
document.write('<tr><td class="row3" valign="top"><b>',fieldName,'</b></td><td align="left" class="row1">Подарков и призов нет.</td></tr>')
}
}
else {
document.write('<tr><td class="row3" valign="top"><b>',fieldName,'</b></td><td align="left" class="row1">',fieldValue,'</td></tr>')
}
}
</script>
Сохраняем
3. Редактируем шаблон Profile View Sections -> Custom Field
Вместо того что там есть, вставляем это:
<script>PrintPresents("$title","$value")</script>
Раньше там было (если вернуть захотите):
<tr><td class="row3" valign='top'><b>$title</b></td><td align='left' class='row1'>$value</td></tr>
4. Редактируем шаблон User Control Panel Section -> Profile Form: Custom Profile Text Input
Вставляем в самый низ это:
Дополнение: Если вы хотите чтобы у вас в топике было видно количество подарков, то в шаблон Topic View -> Post entry под аватару (ищите сами) вставляем это:
<script language=JavaScript1.2 type=text/javascript>
presents = "{$author['field_X']}";
var aPresents = new Array;
aPresents = presents.split('|');
if (aPresents.length != 1 ) {
document.write('Подарки и призы: <b>',(aPresents.length - 1),'</b>.');
}
else {
document.write('<center>Подарков и призов нет.</center>');
}
</script>
Или, если вы хотите что б под надписью отображались маленькие пиктограммы с изображением, то вставляете код:
<script language=JavaScript1.2 type=text/javascript>
presents = "{$author['field_X']}";
var aPresents = new Array;
aPresents = presents.split('|');
if (aPresents.length != 1 ) {
document.write('Подарки и призы: <b>',(aPresents.length - 1),'</b>.');
document.write('</br>');
var NValueF = new Array;
var k = 0;
for( i = 0 ; i < (aPresents.length - 1); i++ ) {
NValueF = aPresents[i].split("][");
document.write('<img width="13" height="13" id="imgP',i,'" src="',NValueF[2],'" border="0" />');
}
}
else {
document.write('<center>Подарков и призов нет.</center>');
}
</script>
Вот собственно все. Только вместо X во всех скриптах вставляйте номер этого доп. поля. (номер доп. поля можно узнать в АЦ -> Пользователи и группы -> Дополнительные поля профиля, смотреть в колонку "Переменная Topic View".
Теперь заходите в админку, находите нужного пользователя и в поле "Подарки и призы" добавляете подарок в таком виде:
Название - то что будет написано над миниатюрой
Описание - будет в подсказке, когда наведут на миниатюру.
Миниатюра - если вы к примеру дарите БОЛЬШУЮ открытку и не хотите что б весь профиль был в одной вашей картинке, то вы делаете миниатюрку - маленькую картинку, и в дальнейшем используете на неё ссылку, а если не хотите то можете вместо миниатюры поставить ссылку на обычную картинку
Полная картинка - сама картинка/открытка/подарок.
Красным веделены знаки, которые должны быть обязательно, на каждый приз ровно столько, сколько написано. И в описаниях и названиях подарков не использовать эти знаки! не ][ и не |. Иначе будет ошибка.
Дополнение:
Если на страничках неотображаются подарки проверьте:
Экономия CPU -> Разрешить отображение дополнительных полей профиля в темах? -> ДА
Отредактировано Grin (2006-11-15 22:11:58)