Вставка нового поля в профиль

Автор sergtmn, 20 ноября 2007, 10:50:25

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

sergtmn

Пример как добавить новое поле в профиль, сделал на примере поля "Авто" с отображением под аватарой:

Предварительно делаем изменения в БД /добавляем новое поле "auto"/
ALTER TABLE smf_members ADD auto text;

открываем: profile.template.php
находим:
<tr>
<td><b>', $txt[227], ':</b></td>
<td>', $context['member']['location'], '</td>
</tr>

после вставляем:
<tr>
<td><b>', $txt[5050], ':</b></td>
<td>', $context['member']['auto'], '</td>
</tr>
находим:
<tr>
<td width="40%"><b>', $txt[227], ': </b></td>
<td><input type="text" name="location" size="50" value="', $context['member']['location'], '" /></td>
</tr>

после вставляем:
<tr>
<td width="40%"><b>', $txt[5050], ': </b></td>
<td><input type="text" name="auto" size="50" value="', $context['member']['auto'], '" /></td>
</tr
/////////////////////////////////////////////////////////////////////////////////////////////////////
открываем: Display.template.php

находим:
if (!empty($settings['show_blurb']) && $message['member']['blurb'] != '')

до него вставляем:

echo 'Авто: ', $message['member']['auto'], ' <br /> ';
/////////////////////////////////////////////////////////////////////////////////////////////////////
открываем: profile.php
находим:
$profile_strings = array(
'websiteUrl', 'websiteTitle',
'AIM', 'YIM',
'location',
после 'location', в этой строке вставляем 'auto'

находим
'location' => !isset($user_profile[$memID]['location']) ? '' : $user_profile[$memID]['location'],

после вставляем
'auto' => !isset($user_profile[$memID]['auto']) ? '' : $user_profile[$memID]['auto'],
находим:
'location' => !isset($_POST['location']) ? '' : stripslashes($_POST['location']),
вставляем:
'auto' => !isset($_POST['auto']) ? '' : stripslashes($_POST['auto']),
//////////////////////////////////////////////////////////////////////////////////////////////////////
открываем Load.php
находим if ($set == 'normal')
{
$select_columns = "

находим в строке mem.location,
после вставляем
    mem.auto,
находим
elseif ($set == 'profile')
{
$select_columns = "
находим в строке mem.location,
после вставляем
    mem.auto,
находим censorText($profile['location']);

после вставляем
censorText($profile['auto']);

находим 'location' => &$profile['location'],
после вставляем
'auto' => &$profile['auto'],
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
открываем index.english.php
находим
$txt[233] = 'Date Registered';
после него вставляем
$txt[5050] ='Auto';
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
открываем index.russian.php
находим
$txt[233] = 'Дата регистрации';
после него вставляем
$txt[5050] ='Авто';

Все!




Mavn

Хех Проще использовать мод Custom profile field.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

sergtmn

может быть и проще, а кому-то может и пригодится :)

RKA KriK

Хм... Видимо это для старой версии... Никто не знает, как для 1.1.4 это сделать?

Солярис

RKA KriK, вышеуказанный мод используйте.

RKA KriK

Да хотелось что-нибудь нативного, а не очередной костыль. Неужели нельзя чтоли теперь? Ставить мод для одной лишней строчки - имхо маразм.

Солярис

Цитата: RKA KriK от 05 мая 2008, 13:05:29
Ставить мод для одной лишней строчки - имхо маразм.
А изобретать велосипед не маразм, когда есть готовое решение?! Тем более, что мод устанавливается в два щелчка мышкой.

Если Вам милее искать более сложные решения (на пустом месте), то Вам это никто не может запретить.

RKA KriK

Цитата: Солярис от 05 мая 2008, 14:52:44
А изобретать велосипед не маразм, когда есть готовое решение?!
Ну в данном случае тут надо к готовому велосипеду прикрутить второй велосипед, когда можно было поменять исходный))

Ладно, уболтали, раз ставить моды теперь в моде, попробую поюзать))

serg_tmn

RKA KriK ты с чего взял, что это не для 1.1.4, как раз таки в нем я и делал

RKA KriK

Цитата: serg_tmn от 05 мая 2008, 17:32:24
RKA KriK ты с чего взял, что это не для 1.1.4, как раз таки в нем я и делал
А я чтот файл profile.template.php найти не могу) Открыл Profile.php, но там не могу найти такие строчки.

Mavn

Themes/default для дефолтовой темы оформления
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

RKA KriK

Цитата: Mavn от 05 мая 2008, 18:33:53
Themes/default для дефолтовой темы оформления
Опа, а что делать, если стоит измененная babylon? Собственно в ней я и искал, но там такого файла нету(

Mavn

тех файлов что нет в вашей теме оформления форум подгружает из дефолтовой темы
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

RKA KriK

Цитата: Mavn от 05 мая 2008, 19:20:45
тех файлов что нет в вашей теме оформления форум подгружает из дефолтовой темы
О! Спасибо огромное, сейчас буду пробовать!

RKA KriK

Цитировать8: Undefined index: linuxdistro
Файл: /home/virtual/forum.linux.uz/Themes/babylon/Display.template.php (main sub template - eval?)
Строка: 305
Не подскажите, в чем накосячил?
Вот та самая 305я строка:
echo 'Дистрибутив: ', $message['member']['linuxdistro'], ' <br /> ';

digger®

Цитата: RKA KriK от 12 мая 2008, 22:14:05
Не подскажите, в чем накосячил?
Вот та самая 305я строка:
echo 'Дистрибутив: ', $message['member']['linuxdistro'], ' <br /> ';
У $message['member']['linuxdistro'] не присвоено никакого значения.

RKA KriK

Цитата: digger от 13 мая 2008, 17:19:59
У $message['member']['linuxdistro'] не присвоено никакого значения.
Прошу прощения, а можно подробней? Я еще в этом плане новичек...


RKA KriK

Цитата: digger от 13 мая 2008, 23:52:46
Откуда взялось это поле?
Хм... Прописал все по инструкции в каждом файле вроде. В мускуль админ базу вроде как добавил. Не знаете, где именно может быть ошибка?

digger®

Цитата: RKA KriK от 13 мая 2008, 23:57:38
Хм... Прописал все по инструкции в каждом файле вроде. В мускуль админ базу вроде как добавил. Не знаете, где именно может быть ошибка?
Если вы, настолько хорошо разбираетесь, чтобы вручную модифицировать файлы форума, то странно слышать от вас такой глупый вопрос.
Если же вы не разбираетесь, то поставьте предназначенный для этого мод и не тратьте время ни свое ни чужое.

RKA KriK

Цитата: digger от 14 мая 2008, 00:04:47
Если вы, настолько хорошо разбираетесь, чтобы вручную модифицировать файлы форума, то странно слышать от вас такой глупый вопрос.
Если же вы не разбираетесь, то поставьте предназначенный для этого мод и не тратьте время ни свое ни чужое.
С пхп плохо знаком, поэтому не понял, в каком файле/строчке нужно присвоить значение, так как думал, что в инструкции все описано точно. Я из-за неопытности, считаю, что значение должно присваиваться у каждого пользователя, в профиле. Мод ставить не могу по некоторым причинам. Время на это потратить могу, чужое же время я не трачу, я всего-лишь прошу помощи.

digger®

Цитата: RKA KriK от 14 мая 2008, 00:14:39
С пхп плохо знаком, поэтому не понял, в каком файле/строчке нужно присвоить значение, так как думал, что в инструкции все описано точно. Я из-за неопытности, считаю, что значение должно присваиваться у каждого пользователя, в профиле. Мод ставить не могу по некоторым причинам. Время на это потратить могу, чужое же время я не трачу, я всего-лишь прошу помощи.
1) Вот это
echo 'Дистрибутив: ', isset($message['member']['linuxdistro']) ? $message['member']['linuxdistro'] : '', ' <br /> ';
уберет данное предупреждение, но оно наверняка вылезет в другом месте.
2) Это вообще не ошибка, а предупреждение и на работу форума оно никак не влияет.
3) Если "С пхп плохо знаком", то неплохо ознакомиться хотя бы с основами, прежде чем пытаться править чужой код.
4) Надеятся что "что в инструкции все описано точно" глупо, потому что там может быть вовсе не точно или то что там точно - в ваших руках становится неточным или то что в одном случае точно - в другом вовсе нет.