ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Дополнительные поля в анкете

 

596
Сергей @Князь_Пипецкий
Решил повозиться с анкетой.
Немного расширить её в плане личной контактной информации пользователей.

Не совсем получилось, если честно 😀
Прошу совета.

1. Добавил несколько полей соц.сетей - "мой мир", "вконтакте", "одноклассники"

Покажу на одном примере:

Мой мир:

В шаблоне "настройки"

<td><tr><td><img src=/serhio64/img/pics/mailru.png /></td>
<td>Мой мир</td>
<td><input type=text name=mailru class=text value=%field6%></td></tr>

В шаблоне "анкета"

<tr><td><img src=/serhio64/img/pics/mailru.png /></td>
<td>Мой мир</td><td><script>document.write(mailru);</script></td></tr>

Результат:
Поля в настройках и анкете конечно же появляются, но, не сохраняют введенные адреса. После ввода в настройках адреса "мой мир" в анкете показывается пустое поле.

2. Решил сделать отображение браузера в анкете. (Что бы иной раз муторно не выпытывать у пользователей, у которых разные проблемы в чате)
Механизм аналогичный "Флаги стран".

В настройках

<td><tr><td><img src=/serhio64/img/pics/browser.png /></td>
<td>Браузер</td>
<td><script>if('%field1%'==1) ;print='<select name=browser>';print+='<option value=->-</option>'; print+='<option value=IE>IE</option><option value=Chrome>Chrome</option><option value=Firefox>Firefox</option><option value=Opera>Opera</option><option value=Maxthon>Maxthon</option><option value=Avant>Avant</option>';print+='</select>';document.write(print);</script></td></tr>

В анкете


<tr><td><img src=/serhio64/img/pics/browser.png /></td>
<td>Мой браузер</td>
<td><script language="JavaScript" type="text/javascript">
browser='%field1%';
if (browser == "") document.write("<img src='/serhio64/img/pics/browser.png' title='Не выбрано' alt='Не выбрано'>");
else document.write("<img src='/serhio64/img/pics/" + browser + ".png' title='" + browser + "' alt='" + browser + "'>");</script>&nbsp;</td></tr>

Результат - при выборе в настройках из селектора какого либо браузера - в анкете все равно отображается "не выбрано"

Хотя флаги стран работают, не так как хотелось, но работают. (не запоминается выбор страны, то есть каждый раз, когда вносишь изменения в настройки - нужно снова выбирать страну)


Если кому-то интересно - посмотрите, подскажите пожалуйста?

p.s. - С браузерами разобрался 😀 нашел косяк, исправил. Выделенное - вместо browser изменил на номер поля field1.

Отредактировано Князь_Пипецкий - 04.11.2012
1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

1. Добавил несколько полей соц.сетей - "мой мир", "вконтакте", "одноклассники"
Покажу на одном примере:
Мой мир:
В шаблоне "настройки"
<td><tr><td><img src=/serhio64/img/pics/mailru.png /></td>
<td>Мой мир</td>
<td><input type=text name=mailru class=text value=%field6%></td></tr>

В шаблоне "анкета"
<tr><td><img src=/serhio64/img/pics/mailru.png /></td>
<td>Мой мир</td><td><script>document.write(mailru);</script></td></tr>

Результат:
Поля в настройках и анкете конечно же появляются, но, не сохраняют введенные адреса. После ввода в настройках адреса "мой мир" в анкете показывается пустое поле.

1. А если так?
<input type="text" name="field6" class="text" value="%field6%">
и
<script>document.write('%field6%');</script>
2. А если посетитель пользуется разными браузерами?

596
Сергей @Князь_Пипецкий
Все равно пустое поле..... 🙁
В настройках адрес запомнился, в анкете не отображается ссылка.

И, попутно еще впросец.

Когда открываешь настройки - там флаг страны и браузер в селекторе: " - "

А надо, что бы там было выбранное ранее.

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

Отредактировано Князь_Пипецкий - 04.11.2012
1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

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

Почему-то мне кажется, что здесь кавычки забыли
<script>document.write('%field6%');</script>

596
Сергей @Князь_Пипецкий
Поставил с кавычками

<tr><td><img src=/serhio64/img/pics/mailru.png /></td>
<td>Мой мир</td><td><script>document.write("%field6%");</script></td></tr>

В поле анкеты отображается текстом, а %home% ссылкой (причем без кавычек)

1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

Поставил с кавычками

<tr><td><img src=/serhio64/img/pics/mailru.png /></td>
<td>Мой мир</td><td><script>document.write("%field6%");</script></td></tr>

В поле анкеты отображается текстом, а %home% ссылкой (причем без кавычек)

А выше нет кода, который переводил бы %home% в home?
Что-нибудь типа
if('%home%'=='-') var home='%home%';
else home='<a href=%home% target=_blank>%home%</a>';

поставьте рядом для все полей со ссылками такой же код и будут гиперссылки.

596
Сергей @Князь_Пипецкий
Есть конечно. Я уже сообразил....и добавил туда:

if('%field6%'=='-') field6='%field6%';
else field6='<a href=%field6% target=_blank>%field6%</a>';

Однако в анкете все равно текст

Отредактировано Князь_Пипецкий - 04.11.2012
1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

Есть конечно. Я уже сообразил....и добавил туда:

if('%field6%'=='-') field6='%field6%';
else field6='<a href=%field6% target=_blank>%field6%</a>';

Однако в анкете все равно текст

а здесь конечно же оставили
<td>Мой мир</td><td><script>document.write("%field6%");</script></td></tr>
вместо
<td>Мой мир</td><td><script>document.write(field6);</script></td></tr>

596
Сергей @Князь_Пипецкий
BETEPAH пишет:

Князь_Пипецкий пишет:

Есть конечно. Я уже сообразил....и добавил туда:

if('%field6%'=='-') field6='%field6%';
else field6='<a href=%field6% target=_blank>%field6%</a>';

Однако в анкете все равно текст

а здесь конечно же оставили
<td>Мой мир</td><td><script>document.write("%field6%");</script></td></tr>
вместо
<td>Мой мир</td><td><script>document.write(field6);</script></td></tr>

Действительно 😀 теперь все ок. Благодарю за помощь.

Остался вопрос с селектором по выбору браузера.
Не запоминает выбор в настройках.
Вернее не так.
После того, как сделаешь выбор, сохраняешь настройки. В анкете все отображается правильно.
А вот если снова открываешь настройки - в селекторе стоит " - " (вместо выбранного ранее) и получается что, если нужно что-то изменить, то приходится заново выбирать и браузер. В противном случае прежний его выбор не сохранится.

Отредактировано Князь_Пипецкий - 04.11.2012
1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

Остался вопрос с селектором по выбору браузера.
Не запоминает выбор в настройках.
Вернее не так.
После того, как сделаешь выбор, сохраняешь настройки. В анкете все отображается правильно.
А вот если снова открываешь настройки - в селекторе стоит " - " (вместо выбранного ранее) и получается что, если нужно что-то изменить, то приходится заново выбирать и браузер. В противном случае прежний его выбор не сохранится.

Ну, проблема скорее всего та же самая. Следите за соответствием name и value.

596
Сергей @Князь_Пипецкий
Возможно.
Но, .....

Анкета:

<tr><td><img src=/serhio64/img/pics/browser.png /></td>
<td>Мой браузер</td>
<td><script language="JavaScript" type="text/javascript">
browser='%field1%';
if (browser == "") document.write("<img src='/serhio64/img/pics/browser.png' title='Не выбрано' alt='Не выбрано'>");
else document.write("<img src='/serhio64/img/pics/" + browser + ".png' title='" + browser + "' alt='" + browser + "'>");</script>&nbsp;</td></tr>

Настройки
<td><tr><td><img src=/serhio64/img/pics/browser.png /></td>
<td>Браузер</td>
<td><script>if('%field1%'==1) ;print='<select name=field1>';print+='<option value=->-</option>'; print+='<option value=IE>IE</option><option value=Chrome>Chrome</option><option value=Firefox>Firefox</option><option value=Opera>Opera</option><option value=Maxthon>Maxthon</option><option value=avant>Avant</option><option value=Chromium>Chromium</option><option value=Safari>Safari</option><option value=Yandex>Yandex</option><option value=Netscape>Netscape</option>';print+='</select>';document.write(print);</script></td></tr>

Value - только в настройках, и оно соответствует выбору.
Name - в этих кодах только здесь(выделено).

Тут что-то другое.
Когда в селекторе выбираешь пол - он сохраняется в том же селекторе.
Ни браузеры, ни флаги стран (сделаны на одном и том же коде) - не сохраняются.

Отредактировано Князь_Пипецкий - 05.11.2012
596
Сергей @Князь_Пипецкий
Кстати, пока возился с анкетами и настройками - еще один глюк выявил.
В настройках ставлю галочку в бокс "отображать в анкете" в поле "e-mail" - но в анкете не отображается и галочка там сбрасывается.
Это только у меня такое?

1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

Кстати, пока возился с анкетами и настройками - еще один глюк выявил.
В настройках ставлю галочку в бокс "отображать в анкете" в поле "e-mail" - но в анкете не отображается и галочка там сбрасывается.
Это только у меня такое?

У всех, по-моему.

596
Сергей @Князь_Пипецкий
BETEPAH пишет:

Князь_Пипецкий пишет:

Кстати, пока возился с анкетами и настройками - еще один глюк выявил.
В настройках ставлю галочку в бокс "отображать в анкете" в поле "e-mail" - но в анкете не отображается и галочка там сбрасывается.
Это только у меня такое?

У всех, по-моему.

Так может и выбор в селекторе по этому не сохраняется? Что-то я не нашел там.......нестыковок.

Хотя...в селекторе выбора пола и даты рождения данные сохраняются.
Странно.

Отредактировано Князь_Пипецкий - 05.11.2012
1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

BETEPAH пишет:

Князь_Пипецкий пишет:

Кстати, пока возился с анкетами и настройками - еще один глюк выявил.
В настройках ставлю галочку в бокс "отображать в анкете" в поле "e-mail" - но в анкете не отображается и галочка там сбрасывается.
Это только у меня такое?

У всех, по-моему.

Так может и выбор в селекторе по этому не сохраняется?

Нет, не поэтому. При прорисовке селектора пола там выставляется атрибут selected. Ничего не мешает вам сделать так же.
Что-то типа такого
<td><tr><td><img src=/serhio64/img/pics/browser.png /></td><td>Браузер</td><td>
<script>
var browsers = ['IE', 'Chrome', 'Firefox', 'Opera', 'Maxthon', 'Avant', 'Chromium', 'Safari', 'Yandex', 'Netscape'];
var print = '';
var field1 = '%field1%'
for (i = 0, len = browsers.length; i < len; i++) {
var sel = (browsers[i] == field1) ? 'selected' : '';
print += '<option value="' + browsers[i] + '" ' + sel + '>' + browsers[i] + '</option>'
}
if (print) print = '<select name=field1><option value=->-</option>' + print + '</select>';
document.write(print);
</script>
</td></tr>

Работа кода в песочнице - **********

Отредактировано BETEPAH - 05.11.2012
596
Сергей @Князь_Пипецкий
BETEPAH пишет:

Князь_Пипецкий пишет:

BETEPAH пишет:

У всех, по-моему.

Так может и выбор в селекторе по этому не сохраняется?

Нет, не поэтому. При прорисовке селектора пола там выставляется атрибут selected. Ничего не мешает вам сделать так же.
Что-то типа такого
<td><tr><td><img src=/serhio64/img/pics/browser.png /></td><td>Браузер</td><td>
<script>
var browsers = ['IE', 'Chrome', 'Firefox', 'Opera', 'Maxthon', 'Avant', 'Chromium', 'Safari', 'Yandex', 'Netscape'];
var print = '';
var field1 = '%field1%'
for (i = 0, len = browsers.length; i < len; i++) {
var sel = (browsers[i] == field1) ? 'selected' : '';
print += '<option value="' + browsers[i] + '" ' + sel + '>' + browsers[i] + '</option>'
}
if (print) print = '<select name=field1><option value=->-</option>' + print + '</select>';
document.write(print);
</script>
</td></tr>

Работа кода в песочнице - **********

Да, я обратил конечно внимание что у селекторов "пол" и "браузер" разная конструкция.

Однако в этом варианте не совсем удобно. Ибо в селекторе приходится писать варианты выбора латиницей, так как эти названия привязаны к именам файлов соответствующих картинок.
А картинки с кириллическими именами не отображаются.

В случае с браузерами - это не так важно.
Но я подобным образом переделал флаги стран. С одной стороны удобно - не нужно каждый раз выбирать раз уж selected
С другой стороны - в селекторе стран английские названия.
Из двух зол выбрал то, то не так близко 😀
То есть поставил ваш вариант.
Спасибо огромное!
И не лень же вам со мной возиться 😀


Но, остался открытым вопрос с отображением в анкете email.
Сравнил со стандартным вариантом настроек - никакой разницы:

<td><tr><td><img src=/serhio64/img/pics/E-mail.png /></td>
<td>Email</td>
<td><input type=text name=email class=text value='%email%'><br>
(при смене Email укажите старый пароль)<br>
<script>
if('%emailview%'==1) sel='checked'; else sel='';
print='<input type=checkbox name=emailview '+sel+'> - отображать в анкете<br>';
document.write(print);
if('%subscribe%'==1) sel='checked'; else sel='';
print='<input type=checkbox name=subscribe '+sel+'> - подписаться на рассылку';
document.write(print);
</script></td></tr>

Вот же, выделено checked - должно запоминать, но сбрасывает выбранное значение.
Если честно - раньше не обращал внимания. Может оно и не работало.
А может как то связано с переменами в движке?

Отредактировано Князь_Пипецкий - 05.11.2012
1007
BETEPAH @BETEPAH
Князь_Пипецкий пишет:

Но, остался открытым вопрос с отображением в анкете email.

https://vmeste.eu/forum?pid=300097#p300097

596
Сергей @Князь_Пипецкий
BETEPAH пишет:

Князь_Пипецкий пишет:

Но, остался открытым вопрос с отображением в анкете email.

https://vmeste.eu/forum?pid=300097#p300097

вопрос снят 😀