Для большенства задач сервисы(модули) католог сайтов, файлов и объявлений предоставляют достаточное кол-во полей для заполнения. Включить поля и сделать их обязательными можно в настройках данного сервиса. Переименовать названия полей можно в разделе "Замена стандартных надписей". Если же требуется еще поля или необходимо создать более сложную форму чем форма из текстовых полей, то действуем следующим способом:
Создаем дополнительную форму в шаблоне "Добавления/редактирования материала":
Code
<form name="newform">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td width="35%">Название поля 1</td><td><input name="pole1" type="text" id="pole1" style="width:250px;"></td></tr>
<tr><td width="35%">Название поля 2</td><td><input name="pole2" type="text" id="pole2" style="width:250px;"></td></tr>
</table>
</form>
Количество, название и тип полей зависит от конкретной задачи. Выше приведен только пример. Все дополнительные поля мы будем сохранять в поле "Краткий текст", так что он должен быть включен в настройках и не использоваться по назначению, также настройте необходимое кол-во символов для этого поля. Обводим основную форму в именованный объект и добавляем новую кнопку сохранения материала:
Code
<div id="form_st">$BODY$</div>
<input name="ok" value="- Добавить -" type="button" onClick="if(sub_ok()) openery();" style="width:150px; font-weight:bold;">
Пишем скрипт для обработки:
Code
<script>
//Удаление лишнее из основной формы
document.addform.brief.parentNode.parentNode.style.display='none';
e=document.all.form_st.getElementsByTagName("TR");
e[e.length-1].style.display='none';
if(document.addform.cid) {
document.all.ok.value="- Изменить -";
//Распределяем запомненное в поле Кратий текст" по нашим полям
list = document.addform.brief.value.split ('|');
document.newform.pole1.value=list[0];
document.newform.pole2.value=list[1];
}
function sub_ok() {
document.addform.brief.value=document.newform.pole1.value+'|'+document.newform.pole2.value;
return true;
}
</script>
Здесь предоставлена сама идея создания дополнительных полей. Без знаний джаваскрипта писать его безсмысленно.