[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта

Тема закрыта

Скрипты и коды для юкоз - Форум аццкого кодера » Как сделать... Тема только по сайтам в системе uCoz » Как сделать.... Не сортированные вопросы/ответы на тему ...

Как сделать.... Не сортированные вопросы/ответы на тему ...
[16] likbezz [27.07.2011, 06:27]
Komoff,
Quote (Komoff)
likbezz, а возможно сделать выделение текста в Quote и Code по клику onclick?

Можно.
Точно так же, как и «Как сделать выделение текста в Code по клику?», только добавить ещё и блок цитат (Quote) ...
...
[17] Diana [27.07.2011, 16:27]
Можно ли как то запретить пользователям ставить ссылки в подписи?
Если убрать подпись из поля "регистрация" то она вообще у всех исчезает.А в панели можно запретить простым пользователям BB коды но ссылки они спокойно лепят.Хотелось бы ограничить только группу пользователи.Некоторые регистрируются и пишут пару сообщений - только из за того что ссылка в подписи на их сайт - это конечно удаляется но хотелось бы чтоб это и не появлялось вовсе.
[18] Nemuro_J [05.08.2011, 10:33]
Как реализовать в скрипте "модераторский комментарий" на Форуме подпись модератора? Идея такая:
Code
<?if($PAGE_ID$='threadpage')?>
<script type="text/javascript">
$('td.posttdMessage').each(function(){
$(this).html($(this).html().split('[moder]').join('<fieldset class="moderComment">').split('[/moder]').join('</fieldset>'));
});
</script>
<?endif?>
Этот скрипт при помощи кнопки bb-кода выводит следующую табличку:


Так вот, в табличке хотелось бы вывести подпись модератора, по типу:
Code
<legend style="color:#000000;font-size:7pt;" align="left">Модерация: $_USERNAME$</legend>
, но ни один из условных операторов не подходит, т.к. или выводит имя пользователя, просматривающего страницу, или вообще ничего не выводит surprised
Прикрепления: 5039404.jpg (37.7 Kb)


Сообщение отредактировал Nemuro_J - Пятница, 05.08.2011, 10:35
[19] likbezz [05.08.2011, 16:36]
Nemuro_J, Руками написать.
Или BB-коды переделать под вот такие:
Code
[moder=Likbezz]текст[/moder]

...
[20] Elones [10.08.2011, 22:39]
Имеется поле со списком за счет поля AOL и форме редактирования персональной информации:
Code
<?if($AOL_FL$)?>
<tr id="siM15"><td class="manTd1" id="siM16">$AOL_SIGN$</td>
<td class="manTd2" id="siM17">
<select id="side" class="manFlaSide" name="aol" size="1"  onChange="side(this.value);">
<option value="1">Светлая</option>
<option value="2">Темная</option>
</select>
</td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" />
</td></tr>
<?endif?>

Проблема в том, что опция не запоминается после выбора и сохранения. Например, я выбрал опцию "Светлая", сохранился, решаю снова поменять поле и вижу, что в фокусе по умолчанию осталась 1я опция, а не та, которую я выбирал прежде. К примеру стандартное поле выбора пола запоминается, но через исходный код я не понял чем это объясняется.
Мб есть идеи по этому поводу?


Сообщение отредактировал Elones - Среда, 10.08.2011, 22:41
[21] likbezz [10.08.2011, 22:51]
Elones,
Quote (Elones)
Проблема в том, что опция не запоминается после выбора и сохранения.

А где у вас прописано изменение поля?
У вас его нет.
Поле для AOL имеет вот такой код:
Code
<input type="text" maxlength="30" value="123456789" style="width: 100%;" size="20" name="aol" class="manFlaAOL" id="siF3">

и при изменении значения, изменять нужно параметр «value» ...
Типа так:
Code
<select id="side" class="manFlaSide" name="aol" size="1" onChange="document.getElementById('siF3').value=(this.value);">
<option value="1">Светлая</option>
<option value="2">Темная</option>
</select>

А сам инпут скрыть ....
Типа так:
Code
<script type="text/javascript">document.getElementById('siF3').type='hidden';</script>


Всё вместе, как-то так:

...
Quote (Elones)
Мб есть идеи по этому поводу?

-? ... В смысле?
...

Инфо по теме:
Атрибуты и свойства: реализация, методы и отличия в Internet Explorer
...
[22] Elones [10.08.2011, 23:12]
Quote (likbezz)
А где у вас прописано изменение поля?

Не было. Но и с value я тоже пробовал (убрал наверное из-за безграмотности).

Собственно предложенный вами код выше так же не исправил ситуацию. После очередного захода на страницу редактирования, в фокусе 1я опция, хоть и в данных сохранена 2я.

Вся проблема в том, что данные(значения) то в профиле меняются, но если я, допустим, решу сменить только аватар и при этом не буду повторно выбирать опцию "Темная" (а не "Светлая"), то т.к. "Светлая" по умолчанию весит первая, она и сохранится вместе с аватаром.
И так каждый раз, что либо меня в профиле, приходится вспоминать про это поле, но ведь мы же не переустанавливаем каждый раз дату рождения или пол, меняя другие данные...

Quote (likbezz)
В смысле?

В смысле как исправить ситуацию, как сделать, что бы в поле оставалась заданная опция при очередном редактировании профиля =)

з.ы. на что в принципе влияют id типа "siF3", "siM15" и т.п.? Или это просто то, что остается от стандартного шаблона...


Сообщение отредактировал Elones - Среда, 10.08.2011, 23:39
[23] likbezz [10.08.2011, 23:52]
Elones,
Quote (Elones)
В смысле как исправить ситуацию, как сделать, что бы в поле оставалась заданная опция при очередном редактировании профиля =)

Это уже более конкретный вопрос ... )
- Пропишите условие ... типа:
Code
<?if($AOL_SIGN$='1')?> selected="selected"<?endif?>

... Вообще проблемы не вижу ...

Quote (Elones)
на что в принципе влияют id типа "siF3", "siM15" и т.п.? Или это просто то, что остается от стандартного шаблона...

- «siF3» - это ID инпута, вставляемого системой автоматически, то бишь не редактируемое значение (только скриптом)...
- «siM15» - ID строки в шаблоне, ни на что не влияет.
...
[24] Elones [11.08.2011, 00:11]
Code
<?if($AOL_SIGN$='1')?> select....

Но ведь переменная "$AOL_SIGN$" отвечает только за слово? То есть не понятно как она будет равна "1"....

Добавлено (11.08.2011, 00:11)
---------------------------------------------
Если я правильно понял:
Code
<script type="text/javascript">document.getElementById('siF3').type='hidden';</script>
<select id="side" class="manFlaSide" name="aol" size="1" onChange="document.getElementById('siF3').value=(this.value);">
   <?if($AOL_SIGN$='1')?>
<option selected="selected" value="1">Светлая</option>
<option value="2">Темная</option>
   <?else?>
<option value="1">Светлая</option>
<option selected="selected" value="2">Темная</option>
   <?endif?>
</select>

Не работает =( Тупо теперь во всех случаях 2я опция остается


Сообщение отредактировал Elones - Четверг, 11.08.2011, 00:12
[25] likbezz [11.08.2011, 00:35]
Elones,
Quote (Elones)
Но ведь переменная "$AOL_SIGN$" отвечает только за слово?

Точно - не посмотрел ... ))
Quote (Elones)
Если я правильно понял

Не совсем, я не это имел в виду, но и по другому работать не будет - $AOL_SIGN$ - выводит слово, а $AOL_FL$ - целиком инпут, так что вариант только скриптом - проверять значение скрытого инпута и выбирать селект с этим значением.
... И, кстати, я имел имел в виду что родной инпут остаётся, а не заменяется кодом.
Типа:
Code
<td class="manTd2" id="siM11">$AOL_FL$
<script type="text/javascript">document.getElementById('siF3').type='hidden';</script>
<select id="side" class="manFlaSide" size="1" onChange="document.getElementById('siF3').value=(this.value);">
<option value="">-Выбрать-</option>
<option value="1">Светлая</option>
<option value="2">Темная</option>
<option value="3">Другая</option>
</select>
</td>

- Почему? - потому что мы имеем установленное ранее значение, и не изменяем его до тех пор пока не произошло событие onChange - пока не выбрали другое.
... Но в этом случае, всегда будет по умолчанию значение селекта «-Выбрать-», и, если выбор не совершён, ранее выбранное значение остаётся без изменений.
... Скриптом же можно взять значение из скрытого инпута siF3 и выставить селект в это значение - чисто визуально.
...
[26] Elones [11.08.2011, 00:59]
Да, так работает
Quote (likbezz)
Скриптом же можно взять значение из скрытого инпута siF3 и выставить селект в это значение - чисто визуально.

Хмм.. А если по подробнее?)) Просто не совсем представляю как вытащить скриптом значение...
Просто у меня есть идея типа:
Code
<?if(2)?>Темная<?else?><?if(1)?>Светлая<?endif?><?endif?>
[27] likbezz [11.08.2011, 01:27]
Elones,
Quote (Elones)
Хмм.. А если по подробнее?)

Ну, что-то типа вот этого:
Code
<?if($AOL_FL$)?>
<tr id="siM9"><td class="manTd1" id="siM10">$AOL_SIGN$</td>
<td class="manTd2" id="siM11">$AOL_FL$
<select id="aolSel" class="manFlaSide" size="1" onChange="document.getElementById('siF3').value=(this.value);">
<option value="1">Светлая</option>
<option value="2">Темная</option>
<option value="3">Другая</option>
</select>
<script type="text/javascript">
var obj=document.getElementById('siF3'),opt=document.getElementById('aolSel').options,ind=obj.value;
obj.type='hidden';opt[ind-1].setAttribute('selected','selected');
</script>
</td>
</tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>

Где:
obj,opt,ind - назначаем переменные:
  • obj - скрытому инпуту;
  • opt - элементам списка (массив элементов);
  • ind - установленное ранее значение скрытого инпута;

obj.type='hidden'; - скрывает системный инпут.

opt[ind-1].setAttribute('selected','selected'); - устанавливаем пункту списка с индексом == ранее установленному значению минус 1 (отсчёт идёт с нуля) атрибут selected в значение «selected» - то бишь выбранному по умолчанию.
... Установленное ранее значение не меняется, пока не совершим новый выбор.
...

Quote (Elones)
Просто у меня есть идея типа:
Code
<?if(2)?>Темная<?else?><?if(1)?>Светлая<?endif?><?endif?>

- Нет, такое работать не будет ...
...
[28] Elones [11.08.2011, 02:11]
likbezz, замечательно! Работает как так оно и надо biggrin
Quote (likbezz)
Нет, такое работать не будет

Жаль.. но это я навскидку))
з.ы. Если что, то "темная" и "светлая" в моем случае стороны мира Star Wars biggrin


Добавлено (11.08.2011, 02:11)
---------------------------------------------
Скрипт видимо Opera(11.50) не понимает, сказывается тем, что положение не запоминается визуально(-), однако если опцию не трогать, то она и не изменится (+), так же, не сразу срабатывает смена опций (приходится перебирать).
Но во всех остальных браузерах(фф6, хром, ие9; сафари не проверял, но по сути должен как хром) работает исправно.


Сообщение отредактировал Elones - Четверг, 11.08.2011, 02:19
[29] likbezz [11.08.2011, 06:08]
Elones,
Quote (Elones)
Скрипт видимо Opera(11.50) не понимает, сказывается тем, что положение не запоминается визуально(-), однако если опцию не трогать, то она и не изменится (+), так же, не сразу срабатывает смена опций (приходится перебирать).

Code
<?if($AOL_FL$)?>
<tr id="siM9"><td class="manTd1" id="siM10">$AOL_SIGN$</td>
<td class="manTd2" id="siM11">$AOL_FL$
<select id="aolSel" class="manFlaSide" size="1" onChange="document.getElementById('siF3').value=(this.value);">
<option value="1">Светлая</option>
<option value="2">Темная</option>
<option value="3">Другая</option>
</select>
<script type="text/javascript">
var obj=document.getElementById('siF3'), opt=document.getElementById('aolSel').getElementsByTagName('option'), ind=obj.getAttribute('value');
obj.type='hidden';opt[ind-1].selected='selected';
</script>
</td>
</tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>


- рабочий вариант. Проверено в: IE v7,8; Opera v10, Safari, Chrome ... Firefox ... ヅ ...


...
Прикрепления: aolSel2.txt (0.7 Kb)
[30] Elones [11.08.2011, 16:10]
likbezz, отлично, спасибо! smile


Полная версия сайта