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

Флаги стран в анкетах- обсуждение реализации

 

596
Сергей @Князь_Пипецкий
В теме "Платные заказы......" обсуждалась возможность реализовать функцию вывода флагов стран (не важно куда, в анкету, иконкой в никлист, в лог сообщений при входе).
Но, насколько я понял определение страны по IP-адресу и вывод картинки - это только на сервере можно сделать.
У меня появилась идея как сделать вывод флагов без определеня IP, а из анкеты. Правда идея сырая, требует участия опытных умельцев.
Суть идеи:
1. Пользователь при регистрации, или позже в настройках указывает свою страну.
Для этого можно использовать готовый скрипт от Q-Tec вот отсюда https://vmeste.eu/forum?pid=230583#p230583

Страны в выплывающем меню для анкеты
от Q-Tec

<script>if('%land%'==1) ;print='<select name=land>';print+='<option value=->-</option>';print+='<option value=Albania>Albania</option><option value=Andorra>Andorra</option><option value=Austria>Austria</option><option value=Belarus>Belarus</option><option value=Belgium>Belgium</option><option value=Bosnia and Herzegovina>Bosnia and Herzegovina</option><option value=Bulgaria>Bulgaria</option><option value=Croatia>Croatia</option><option value=Czech Republic>Czech Republic</option><option value=Denmark>Denmark</option><option value=Estonia>Estonia</option><option value=Finland>Finland</option><option value=France>France</option><option value=Germany>Germany</option><option value=Greece>Greece</option><option value=Hungary>Hungary</option><option value=Iceland>Iceland</option><option value=Ireland>Ireland</option><option value=Italy>Italy</option><option value=Latvia>Latvia</option><option value=Liechtenstein>Liechtenstein</option><option value=Lithuania>Lithuania</option><option value=Luxembourg>Luxembourg</option><option value=Macedonia>Macedonia</option><option value=Malta>Malta</option><option value=Moldova>Moldova</option><option value=Monaco>Monaco</option><option value=Netherlands>Netherlands</option><option value=Norway>Norway</option><option value=Poland>Poland</option><option value=Portugal>Portugal</option><option value=Romania>Romania</option><option value=Russia>Russia</option><option value=San Marino>San Marino</option><option value=Slovakia>Slovakia</option><option value=Slovenia>Slovenia</option><option value=Spain>Spain</option><option value=Sweden>Sweden</option><option value=Switzerland>Switzerland</option><option value=Ukraine>Ukraine</option><option value=United Kingdom>United Kingdom</option>';print+='</select>';document.write(print);</script>

2. Создаем папку с картинками флагов.

Вот тут вопрос - можно ли каким то образом связать страну, выбранную пользователем, и отображенную в анкете и картинку флага?

3. Вероятно нужен скрипт вытягивающий из поля анкеты %land% название страны и связывающий её с картинкой флага по имени файла (Russia из анкеты и Rissia.png из папки с картинками)


Или попробовать приспособить вот это:

В анкете создаем поле "Флаг страны" со скриптом

<tr><td>Флаг страны</td><td><script language="JavaScript" type="text/javascript">

flag='%land%';
/* берем информацию из поля анкеты "Страна" */

if (flag<=""){document.write("");} /* если пользователь не выбрал вообще никакую страну - поле пустое" */

else if(Russia>=document.write("<img src='img/flags/48/Russia.png' title='Россия' alt='Россия'>");
else if(Ukraine>=document.write("<img src='img/flags/48/Ukraine.png' title='Украина' alt='Украина'>");
else if(Belarus>=document.write("<img src='img/flags/48/Belarus.png' title='Беларусь' alt='Беларусь'>");
else if(Kazakhstan>=document.write("<img src='img/flags/48/Kazakhstan.png' title='Казахстан' alt='Казахстан'>");
/* и так каждую страну,пока не надоест" */
</script>&nbsp;</td></tr>


Понимаю, что в данном варианте придется поработать ручками, внося в скрипт как можно больше стран, но ведь Q-Tec не поленился же?
Как то так?
Копировать отсюда скрипт для экспериментов смысла нет, ибо я умышленно написал построчно, чисто для обсуждения и анализа.
Для применения его придется собирать в блокноте сплошняком.

Отредактировано Князь_Пипецкий - 27.10.2012
1390
Ванья @ВанькаRU
Князь_Пипецкий, так-же не забывать:

Россия, Раша, Росия, Ру, Расия и т.д. - для дегенератов.
Это действительно исходя из IP только делать. Скрипт такой зродовый - это глупо и не выход.

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

Князь_Пипецкий, так-же не забывать:

Россия, Раша, Росия, Ру, Расия и т.д. - для дегенератов.
Это действительно исходя из IP только делать. Скрипт такой зродовый - это глупо и не выход.

Согласен, громоздкая конструкция.

По поводу "Раша, Расея, Расия" - у так называемых дегенератов не будет возможности корявить язык, там же селектор выбора.

Я все же попробую этот вариант, если вообще он будет работать.
Для начала можно не загромождать его экзотическими странами типа Буркина-Фасо или Мадагаскар.
Основной контингент чатлан (а их совсем немного) я знаю откуда заходят.
Так что .....стран будетне более 10.
По мере необходимости можно что-то добавлять.

2615
Сергей @Pegass
хм, это же парсить анку надо - да ну нафиг такой геморрой)))
В отдельном чате страну из анки в информер и всего-то делов)))

596
Сергей @Князь_Пипецкий
Отдельный чат когда то еще будет.....если будет. Пока сомневаюсь, надо ли мне.....
Попробовал все таки поставить у себя эту хренотень.
Правда пришлось кое что переписать:
<tr><td>Флаг страны</td><td><script language="JavaScript" type="text/javascript">flag='%land%';if (flag<=""){document.write("");}else if(flag="Russia")document.write("<img src='img/flags/48/Russia.png' title='Россия' alt='Россия'>"); else if(flag="Ukraine")document.write("<img src='img/flags/48/Ukraine.png' title='Украина' alt='Украина'>");else if(flag="Belarus")document.write("<img src='img/flags/48/Belarus.png' title='Беларусь' alt='Беларусь'>");else if(flag="Kazakhstan")document.write("<img src='img/flags/48/Kazakhstan.png' title='Казахстан' alt='Казахстан'>");</script>&nbsp;</td></tr>

Не совсем понимаю что с этим скриптом происходит.
1. Выбираю себе в настройках страну "Украина"
2. В анкете появляется в поле "страна" - Ukraine (так вроде и должно быть)
3. в поле "Флаг страны" - Показывает российский флаг а в title показывает - Россия

Странно 🙁

Отредактировано Князь_Пипецкий - 27.10.2012
3173
Николай @grom
по ip тоже не тема)) я на всех сайтах в том числе 2ip.ru из швеции, как и 300000 моих соотечественников кто пользуется tele2

596
Сергей @Князь_Пипецкий
<tr><td>Государственный флаг</td><td><script language="JavaScript" type="text/javascript">
flag='%land%';
xflag=flag.substr(1,2,3,4);
if (xflag=""){document.write("<img src='/serhio64/img/flags/48/default.png' title='Не выбрано' alt='Не выбрано'>");}
else if(xflag="Ukraine")document.write("<img src='/serhio64/img/flags/48/Ukraine.png' title='Украина' alt='Украина'>");
else if(xflag="Russia")document.write("<img src='/serhio64/img/flags/48/Russian.png' title='Россия' alt='Россия'>");
else if(xflag="Belarus")document.write("<img src='/serhio64/img/flags/48/Belarus.png' title='Беларусь' alt='Беларусь'>");
else if(xflag="Kazakhstan")document.write("<img src='/serhio64/img/flags/48/Kazakhstan.png' title='Казахстан' alt='Казахстан'>");
</script>&nbsp;</td></tr>

Сделал так. Заметил симптом - скрипт выводит в поле "флаг" в анкету картинку и титл из первой строчки.
То есть первой идет Украина - какую бы страну не выбрал в настройках - все равно показывает украинский флаг и титл.
Хотя в поле "Страна" - выводит правильно.
Видимо нужно как-то иначе прописать условие выбора?

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

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

У меня и поставлен селектор от Q-Tec
Ибо, если вводить название страны вручную - будет то,о чем писал Ванька - Расия, Раша и пр. и тогда уж точно ничего из этого поля не выведешь.

Отредактировано Князь_Пипецкий - 27.10.2012
20090
Dimitry @Dimitry
Страны в настройках анкеты можно разрешить выбирать, а не писать, сделать select.
После чего сделать массив соответствий
var country=new Array();
country['Россия']="RU.gif";
...

ну и конечно ненадо забывать что много запросов ажаксом вредно мпчату и грозит баном фаервола.

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

Страны в настройках анкеты можно разрешить выбирать, а не писать, сделать select.
После чего сделать массив соответствий
var country=new Array();
country['Россия']="RU.gif";
...

ну и конечно ненадо забывать что много запросов ажаксом вредно мпчату и грозит баном фаервола.

Про массив я уже думал, даже черновичек заготовил.
Но, не смог сообразить как привязать этот массив к выводу картинок в анкету.
По этому пошел по пути, описанному выше.

А по поводу запросов - причин для волнения нет. У меня в чате пользователей совсем немного, а одновременно сидят не более 5-10 человек.

Отредактировано Князь_Пипецкий - 27.10.2012
2970
удалён @Foggy
**********, многое уже решено

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

**********

Туда без регистрации не войти 😀
А Аккаунта у меня там нет, не заводил 😀

2970
удалён @Foggy
Тогда процитирую под хайдом:
Показать текст

596
Сергей @Князь_Пипецкий
Это мне вряд ли поможет. Создать таблицу в базе данных mysql ??? А дальше то что?
Тут проблема именно с выводом ....то есть картинки к названию страны привязал, а вот сам скриптец капризничает.
Условие выбора не выпрлняется 🙁

596
Сергей @Князь_Пипецкий
Все, вопрос решен.

Вот этот скрипт у меня работает. При выборе в настройках своей страны - показывает в анкете государственный флаг выбранной страны:

<tr><td>Государственный флаг</td><td><script language="JavaScript" type="text/javascript">
flag='%land%';
if (flag==""){document.write("<img src='/serhio64/img/flags/48/default.png' title='Не выбрано' alt='Не выбрано'>");}
else if(flag=="Ukraine")document.write("<img src='/serhio64/img/flags/48/Ukraine.png' title='Украина' alt='Украина'>");
else if(flag=="Russia")document.write("<img src='/serhio64/img/flags/48/Russian.png' title='Россия' alt='Россия'>");
else if(flag=="Belarus")document.write("<img src='/serhio64/img/flags/48/Belarus.png' title='Беларусь' alt='Беларусь'>");
else if(flag=="Kazakhstan")document.write("<img src='/serhio64/img/flags/48/Kazakhstan.png' title='Казахстан' alt='Казахстан'>");
</script>&nbsp;</td></tr>

Тему можно закрывать, или удалять 😀 на усмотрение хозяев 😀

1007
BETEPAH @BETEPAH
Можно сделать проще
if (flag == "") document.write("<img src='/serhio64/img/flags/48/default.png' title='Не выбрано' alt='Не выбрано'>");
else document.write("<img src='/serhio64/img/flags/48/" + flag + ".png' title='" + flag + "' alt='" + flag + "'>");

Все равно у вас название файла и обозначение страны в %land% совпадают.

Отредактировано BETEPAH - 27.10.2012
2970
удалён @Foggy
Я об **********. Нужно скачать **********. Там есть методы скрепления флага с названием. И далее оперировать списком стран из массива в js файле. Сам файл можно посмотреть **********. Это проще, чем прописывать список стран ручками, по-моему.

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

Можно сделать проще
if (flag == "") document.write("<img src='/serhio64/img/flags/48/default.png' title='Не выбрано' alt='Не выбрано'>");
else document.write("<img src='/serhio64/img/flags/48/" + flag + ".png' title='" + flag + "' alt='" + flag + "'>");

Все равно у вас название файла и обозначение страны в %land% совпадают.

Спасибо огромное!
Вы меня спасли от многочасовой рутинной писанины, чреватой ошибками!!!!

2970
удалён @Foggy
Что-то мне присралось у себя сделать иначе, выкладываю и своё решение:
Показать текст

В настройках - селектор с выбором из списка стран (255 штук), в анкете - страна и флаг.

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

Что-то мне присралось у себя сделать иначе, выкладываю и своё решение:
Показать текст

В настройках - селектор с выбором из списка стран (255 штук), в анкете - страна и флаг.

Красивое решение 😀 Но, для меня это еще сложно.......я только учусь 😀

Отредактировано Князь_Пипецкий - 27.10.2012