Войти

Все для создания сайта

Начало » Статьи » UcoZ - сервисы » Решения по дизайну.

Замена дизайна форм $LOGIN_FORM$, [SEARCH_FORM] и календаря-[CALENDAR].

Бывают случаи, когда при смене дизайна сайта тот или иной элемент управления не вписывается в общий вид. Скажем, форма входа смотрелась бы лучше не в блочном виде типа пароль ниже логина, а в более приемлемом строчном - логин и рядом пароль. Как известно, вывод на сайте формы входа инициирует код $LOGIN_FORM$, код формы поиска меняется в зависимости от модуля, но он формируется конструктором через код [SEARCH_FORM]. Также рассмотрим подробнее дизайн календаря.

Логично предположить, что при замене глобальных кодов равнозначными обычными(w3c-шными, стандартными неюкозовскими), означающими тот же вывод, мы получим конечный результат тот же. То есть, просматривая html-код уже сформированной страницы сайта мы не найдем $LOGIN_FORM$, а увидим несколько строчек примерно следующего кода:

<form method="POST" name="loginform" 
action="http://YOUR_SITE_URL/index/"> 
Логин: <input type="text" name="user" size="20" style="width:100px" maxlength="25">
Пароль: <input type="password" name="password" size="20" style="width:100px" maxlength="15">
<label for="rem"> <input id="rem" type="checkbox" name="rem" value="1" checked> помнить</label>
<input type="submit" value="Войти »">
<input type="hidden" name="a" value="2"> <input type="hidden" name="redirect" value="0">
</form>
<a class="forRegLink" href="javascript://" onClick="window.open('http://YOUR_SITE_URL/index/5', 'reminder','top=0,left=0,width=300,height=140'); return false;">Забыл пароль</a>
<a class="forRegLink" href="$REGISTER_LINK$">Регистрация</a>
<script type="text/javascript"> document.loginform.redirect.value=window.location.href; </script>

Можно заключить, что за глобальным кодом стоит более развернутый, который формируется и ставится на этапе формирования страницы, - язык, понятный броузеру. Если мы поставим сразу такой уже развернутый код, то хотя прийдется позаботиться о нем самим, но взамен мы получим свободу в отображении элемента на странице.

Итак, вернемся к нашим баранам. Сразу обратим внимание на код YOUR_SITE_URL - помните, его нужно обязательно заменить на адрес вашего сайта.

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

<form method="POST" name="loginform" 
action="http://YOUR_SITE_URL/index/">

Это обязательный код, в котором нужно изменить адрес вашего сайта.

Логин: <input type="text" name="user" size="20" 
style="width:100px" maxlength="25"> 
Пароль: <input type="password" name="password" size="20" style="width:100px" maxlength="15">

Поля для ввода логина и пароля пользователя, вид и надписи можно менять, остаться неизменным должно только - name="user" и name="password".

Далее

<label for="rem">
<input id="rem" type="checkbox" name="rem" value="1" checked>
помнить</label>

Флаг, указывающий, нужно ли поставить пользователю длительный кук (cookies - специальные файлы на стороне пользователя, в которых хранится информация, записываемая командами интернет-ресурсов), чтобы потом ему[пользователю] не пришлось снова вводить пароль. Можно убрать, можно сделать неактивной (т.е. удалить слово "checked").

<input type="submit" value="Войти »">

Кнопка для отправки формы. Можно менять как угодно, можно картинкой сделать и т.д., главное, чтобы тип сохранился (type="submit").

 <input type="hidden" name="a" value="2">
<input type="hidden" name="redirect" value="0">

Это код обязательных скрытых полей формы. Без первого форма вообще работать не будет, а второй нужен для переадресации на страницу, с которой был совершен вход. Эти теги должны обязательно идти перед закрывающим тегом формы </form> (читайте документацию по HTML).

 </form>

Обязательный тег, должен идти после всех описанных выше тегов.

<a class="forRegLink" href="javascript://" 
onClick="window.open('http://YOUR_SITE_URL/index/5',
'reminder','top=0,left=0,width=300,height=140'); 
return false;">Забыл пароль</a> 
<a class="forRegLink" href="$REGISTER_LINK$">Регистрация</a>

Ссылки для регистрации и напоминания пароля, меняются произвольно, можно удалить, если не нужны, но лучше все же чтобы они были (можно почитать статьи по юзабилити).

<script type="text/javascript">
document.loginform.redirect.value=window.location.href;
</script> 

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

Смена дизайна формы поиска([SEARCH_FORM])

В стандартном варианте форма поиска отображается аналогично форме входа - блочно, поле ввода запроса на одной строке а кнопка запроса на следующей. Можно поменять такое положение дел путем применения следующего кода и внедрения его, заметьте, в код каркаса с последующим применением к шаблонам модулей.

%IF($MODULE_ID$=index)%<form method="post" 
style="margin:0px" action="http://YOUR_SITE_URL/news/">
<table border="0" cellspacing="1" class="searchTable">
<tr><td class="searchTd1"><input type="text" 
name="query" maxlength="30" size="20" 
class="queryField" /></td><td align="center" 
class="searchTd2"><input type="submit" class="searchSbmFl"
 value="« Найти »" /></td></tr></table><input type="hidden"
 name="a" value="14" /></form>%ELSE% 
%IF($MODULE_ID$=blog)%
<form method="post" style="margin:0px" action="http://YOUR_SITE_URL/$MODULE_ID$/"> <table border="0" cellspacing="1" class="searchTable"> <tr><td class="searchTd1"><input type="text" name="query" maxlength="30" size="20" class="queryField" /></td> <td align="center" class="searchTd2"><input type="submit" class="searchSbmFl" value="« Найти »" /></td></tr> </table><input type="hidden" name="a" value="13" /> </form>%ELSE%
%IF($MODULE_ID$=faq)%
<form method="post" style="margin:0px" action="http://YOUR_SITE_URL/$MODULE_ID$/"> <table border="0" cellspacing="1" class="searchTable"> <tr><td class="searchTd1"><input type="text" name="query" maxlength="30" size="20" class="queryField" /></td> <td align="center" class="searchTd2"><input type="submit" class="searchSbmFl" value="« Найти »" /></td></tr> </table><input type="hidden" name="a" value="3" /> </form>%ELSE%<form method="post" style="margin:0px" action="http://YOUR_SITE_URL/$MODULE_ID$/"> <table border="0" cellspacing="1" class="searchTable"> <tr><td class="searchTd1"><input type="text" name="query" maxlength="30" size="20" class="queryField" /></td> <td align="center" class="searchTd2"> <input type="submit" class="searchSbmFl" value="« Найти »" /> </td></tr></table><input type="hidden" name="a" value="2" /> </form>
%ENDIF%
%ENDIF%
%ENDIF%

Выше приведен код, который можно вставить в каркас вместо глобального кода [SEARCH_FORM] и получить полноценную форму поиска с произвольным дизайном. Необходимо заменить YOUR_SITE_URL на адрес вашего сайта. Цифры, написанные красным цветом необходимо оставить как есть. Поля и формы form и input(и их атрибут name) также должны быть неизменны, а вот значения атрибутов size и maxlength можно изменять. Расположение их может быть совершенно произвольным, т.е. table можно вообще сменить на div, к примеру. Стили можно тоже менять по желанию. Алгоритм прост, выбираете в конструкторе шаблонов ваш каркас, заменяете глобальный код([SEARCH_FORM] или $LOGIN_FORM$) на равнозначный ему и применяете к шаблонам. Помните, о соответствующем виде нового элемента управления нужно позаботиться самостоятельно.

Календарь

/* Calendar Style */ 
.calmonth {text-align:right; } 
.calwday {border:1px outset; background:#D9D775; width:17px;} 
.calwdayse {border:1px outset; background:#D9D775; width:17px;
font-weight:bold;} 
.calwdaysu {border:1px outset; background:#D9D775; width:17px;
font-weight:bold; color:#FF0000;} 
.calmday {border:1px inset; background:#F5F5F5;} 
.calmdaya {border:1px inset; background:#F5F5F5;
font-weight:bold;} 
.calmdayis {border:1px outset; background:#EFEFEF;} 
.calmdayisa {border:1px outset; background:#EFEFEF;
font-weight:bold;} 
a.calmonthlink:link {text-decoration:none; color:#938D4A;} 
a.calmonthlink:visited {text-decoration:none; color:#938D4A;} 
a.calmonthlink:hover {text-decoration:underline; color:#938D4A;} 
a.calmonthlink:active {text-decoration:underline; color:#000000;} 
a.calmdaylink:link {text-decoration:underline; color:#938D4A;} 
a.calmdaylink:visited {text-decoration:underline; color:#938D4A;} 
a.calmdaylink:hover {text-decoration:underline; color:#000000;} 
a.calmdaylink:active {text-decoration:underline; color:#000000;} 
/* -------------- */

Выше даны классы, использующиеся для оформления вида календаря. Названия их составлены так, чтобы можно было максимально просто разобраться в значении каждого класса. Например, calMday- класс оформления ячейки таблицы, в которую вписывается день месяца. Удобный инструмент для работы со стилями в броузере Mozilla - Web Developer.Если ссылка устарела, найдите в google по названию. Что до IE, то это Microsoft Internet Explorer Developer Toolbar

Если возникли вопросы, можете оставить их в комментариях.



Источник: http://forum.ucoz.ru
Категория: Решения по дизайну. | Добавил: design (15.03.07) | Автор: evra
Просмотров: 22117 | Комментарии: 14 | Рейтинг: 4.2 |
Комментарии
Всего комментариев: 141 2 »
14 17.03.11, 10:12 от Анастасия Ворошина (Missiya)
Здравствуйте, по-поводу дизайна формы поиска. Я вставила код, который вы написали вместо
<!-- <bc> -->$SEARCH_FORM$<!-- </bc> --> в дизайне контейнеров и блоков. Протестировав, заметила, что поиск ищет только по заголовкам, как сделать, чтобы он искал полностью везде, даже в текстах статей нужное слово? Заранее спасибо...

13 20.01.10, 08:07 от Корвус Коракс (Hell_Raven_of_Dark_Realm)
не работает напоминалка пароля - выводит окошко с кодом. как это можно исправить?

12 13.06.09, 18:01 от Райвис (NightFury)
А у меня не работает. Даже без моих внесенных изменений, просто изменяя адрес сайта во всех нужных строчках - не нажимается кнопка ВХОД. Вернее нажимается, но после этого ничего не происходит.

11 04.06.09, 23:21 от Андрей Колеватых (Oco6o_OnaceH_Bac9)
А как изменить кнопку "Найти" или хотя бы ее цвет и цвет шрифта?
Ответ: Смотрите в стилях какой класс отвечает за нее и в .css меняйте так, как нужно.

10 22.02.09, 22:13 от GRiFFoNN
Ой, точно, прошу прощения, не увидел, сколько раз смотрел и не видел в притык "Тонких настроек" biggrin
Спасибо wink

9 22.02.09, 14:52 от GRiFFoNN
И еще один вопрос, когда я захожу в профиль пользователя, и, например, нажимаю на кнопку "новости(6)", мне должно показать материалы, выложенные юзером на сайт, но мне пишет "Данная функция не активизирована администратором сайта". Облазил все настройки, как активировать? Подскажите, пожалуйста. Заранее благодарен smile
Ответ: Нужно выставить галочку "Поиск материалов пользователя". Я писала об этом в статье о личном пространстве - можете глянуть для расширения знаний по принципам работы системы.

8 22.02.09, 10:36 от GRiFFoNN
Здравствуйте, мне хотелось бы иметь у себя на сайте календарь, он есть, но только у модуля "Новости сайта", а календарь нужен для модуля "Каталог статей", тоже с ссылками на материал, который был добавлен в определенную дату, я думаю вы поняли о чем я smile
Как мне приделать тот же календарь, что у новостей к каталогу статей?
Ответ: По всей видимости никак.

7 07.04.08, 04:14 от tomxays
Можно заменить месяцы,и дни недели в замене стандартных надписей )) народ я конечно все понимаю, но так же я понимаю администрацию этого сайта, что настолько глупые вопросы можно и почитать в help))
Ответ: Этот сайт создан для создания ответов, на все вопросы, а замалчивать вопросы - это опасно. Так что задавайте какие угодно вопросы, кроме тех, конечно, ответы на которые Вам и так известны :-)

6 04.11.07, 23:33 от Mussipoos
Скажите,Можно ли удалить календарь,если да, то как? И можно ли на замену поставить часы?
Заранее спасибо
Ответ: Можно, за вывод календаря отвечает глобальная переменная [CALENDAR] (если через конструктор), либо же $NEWS_CALENDAR$, если локально, например, для модуля новости. То есть убираем эту переменную и блок ее содержащий - и календаря нету. Часы ставьте - код пишите нужный и будут часы.

5 11.09.07, 05:56 от Bert Jickty
В этом форуме (forum.ucoz.ru) за подобный вопрос Piterski просто забанил меня. Не понял юмора этого админа. Вроде безобидный вопрос. В чем проблема?
Ответ: Думаю, он отнес этот вопрос к разряду недопустимых, возникающих вследствие невнимательного чтения форума и разбора с системой и ее логикой :-)

1-10 11-14
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]