Этим типом шаблона представляется главная страница раздела. Не содержит своих специальных данных и обычно используется для вывода формы авторизации, если пользователь не авторизирован, либо приветствия.
<h1>Авторизация</h1> {if !$auth->isLogin()} {* Если пользователь не авторизирован. *} <form name="loginform" method="post"> <table> <tr> <td width="80">Логин:</td> <td><input type="text" name="login" size="15" maxlength="20"></td> </tr> <tr> <td width="80">Пароль:</td> <td><input type="password" name="password" size="15" maxlength="20"></td> </tr> </table> <br> <input type="checkbox" name="auto" checked>Входить автоматически<br> {submit caption="Войти"}<br> <li><a href="{$system.sectionlink}remember.html">Забыли пароль?</a></li> <li><a href="{$system.sectionlink}register.html">Регистрация</a></li> {hidden name="action" value="login"} </form> {else} {* Если авторизирован, то приветствие и меню личного кабинета. *} <form name="logoutform" method="post"> Добро пожаловать, {$auth.data.name}<br> <li><a href="{$system.sectionlink}anketa.html">Личные данные</a></li> {if $options.usebalance} <li><a href="{$system.sectionlink}balance.html">Личный счет</a></li> {/if} <br> {submit caption="Выйти"} {hidden name="action" value="logout"} </form> {/if}
Этот тип шаблона используется для страницы регистрации пользователя. Есть набор обязательных полей, а так же набор дополнительных анкетных данных, которые настраиваются в соответствующем редакторе. Поля для ввода дополнительных полей можно формировать путем обхода специального массива, либо непосредственно в шаблоне.
Ассоциированный массив записей с данными о дополнительном наборе полей у формы. Ключом каждой записи является идентификатор поля, а сами записи представляют собой массив с ключами:
Массив данных для начальных значений формы (аналог value в записях $fields). По сути является копией $_POST, поэтому при выводе важно защищать значения с помощью escape.
Содержит значение, которое может быть использовано в скрытом поле captcha, если форму регистрации необходимо сделать без ввода контрольных цифр на рисунке.
Принимает значение истина, если пользователь ошибся при вводе контрольных цифр на рисунке.
<h1>Регистрация</h1> {* Возможные ошибки при регистрации. *} {if $errors.captcha} <div class="box"><font color="red">Неверно введены контрольные цифры, попробуйте еще раз.</font></div> {/if} {if $errors.emptyemail} <div class="box"><font color="red">Не указан email.</font></div> {/if} {if $errors.doublelogin} <div class="box"><font color="red">Пользователь с таким логином уже существует, попробуйте другой.</font></div> {/if} {* Скрипт валидации формы. *} {literal} <script type="text/javascript"> function valid_form(form) { if(form.name.value.replace(/\s+/, '').length==0) { alert("Пожалуйста, заполните имя."); return false; } if(!/^[a-zA-Z0-9_\-@.]+$/i.test(form.login.value)) { alert("Пожалуйста, корректно заполните логин."); return false; } if(form.login.value.length<3) { alert("Пожалуйста, укажите логин не короче 3х символов."); return false; } if(form.password.value.replace(/\s+/, '').length==0) { alert("Пожалуйста, заполните пароль."); return false; } if(form.password.value!=form.password2.value) { alert("Пожалуйста, повторите ввод пароля."); return false; } if(form.email.value.replace(/\s+/, '').length == 0 ) { alert("Пожалуйста, укажите email"); return false; } if(/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/i.test(form.email.value) || !/^\S+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z0-9]+)(\]?)$/i.test(form.email.value)) { alert("Пожалуйста, правильно заполните email"); return false; }{/literal} {foreach from=$fields item=field} {if $field.fill=="Y" && $field.type!="bool" && $field.type!="select"} if(form.{$field.field}.value.replace(/\s+/, '').length==0) {literal}{{/literal} alert("Пожалуйста, заполните поле '{$field.name}'"); return false;{literal}}{/literal} {/if} {/foreach} {literal} if(form.captcha.value.replace(/\s+/, '').length<4) { alert('Пожалуйста, укажите код на картинке.'); return false; } return true; } </script> {/literal} <form method="post" onsubmit="return valid_form(this)" enctype="multipart/form-data"> Ваше имя:<b>*</b><br> {editbox name="name" max=50 width="50%" text=$form.name}<br> Логин:<b>*</b><br> {editbox name="login" max=20 width="20%" text=$form.login}<br> Пароль:<b>*</b><br> <input name="password" type="password" value="{$form.password|escape}" maxlength="50" style="width:20%"><br> Пароль еще раз:<b>*</b><br> <input name="password2" type="password" value="{$form.password2|escape}" maxlength="50" style="width:20%"><br> Ваш e-mail:<b>*</b><br> {editbox name="email" max=50 width="20%" text=$form.email}<br> {if $options.useavatara} Аватара:<br> <input type="file" name="image"><br> {/if} {foreach from=$fields item=field} {if $field.type=="string"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> {editbox name=$field.field max=$field.length text=$field.value width="40%"}<br> {elseif $field.type=="int" || $field.type=="float"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> {editbox name=$field.field max=10 width=60 text=$field.value}<br> {elseif $field.type=="bool"} <br><input type="checkbox" name="{$field.field}"{if $field.value=='Y'} checked{/if}> {$field.name}<br> {elseif $field.type=="text"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> {textarea name=$field.field rows=$field.property text=$field.value}<br> {elseif $field.type=="select"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> <select name="{$field.field}"> {if $field.fill=="N"}<option value="0">Не выбрано</option>{/if} {html_options options=$field.options selected=$field.value} </select><br> {elseif $field.type=="file" || $field.type=="image"} {$field.name}:<br> <input type="file" name="{$field.field}"><br> {/if} {/foreach} <br> {captcha style="float:right"} Введите код на рисунке: {editbox name="captcha" max=4 width="50"}<br> <br> {submit caption="Регистрация"} {hidden name="action" value="register"} </form>
Этот тип шаблона используется для страницы личных данных пользователя, которые он может изменить. Есть набор обязательных полей, а так же набор дополнительных анкетных данных, которые настраиваются в соответствующем редакторе. Поля для ввода дополнительных полей можно формировать путем обхода специального массива, либо непосредственно в шаблоне.
Ассоциированный массив записей с данными о дополнительном наборе полей у формы. Формат аналогичен описанному выше.
Массив данных для начальных значений формы (аналог value в записях $fields).
<h1>Личные данные</h1> {* Скрипт валидации формы. *} {literal} <script type="text/javascript"> function valid_form(form) { if(form.name.value.replace(/\s+/, '').length==0) { alert("Пожалуйста, заполните имя."); return false; } if(form.email.value.replace(/\s+/, '').length == 0 ) { alert("Пожалуйста, укажите e-mail"); return false; } if(/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/i.test(form.email.value) || !/^\S+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z0-9]+)(\]?)$/i.test(form.email.value)) { alert("Пожалуйста, правильно заполните e-mail"); return false; }{/literal} {foreach from=$fields item=field} {if $field.fill=="Y" && $field.type!="bool" && $field.type!="select"} if(form.{$field.field}.value.replace(/\s+/, '').length==0) {literal}{{/literal} alert("Пожалуйста, заполните поле '{$field.name}'"); return false;{literal}}{/literal} {/if} {/foreach} {literal} return true; } </script> {/literal} <form method="post" onsubmit="return valid_form(this)" enctype="multipart/form-data"> Ваше имя:<b>*</b><br> {editbox name="name" max=50 width="50%" text=$form.name}<br> Ваш логин: <b>{$form.login}</b><br> Пароль (если хотите сменить):<br> <input name="password" type="password" maxlength="50" style="width:20%"><br> Пароль еще раз:<br> <input name="password2" type="password" maxlength="50" style="width:20%"><br> Ваш e-mail:<b>*</b><br> {editbox name="email" max=50 width="20%" text=$form.email}<br> {if $options.useavatara} Автара:<br> {if $form.idimg>0}{image id=$form.idimg}<br>Заменить:<br>{/if} <input type="file" name="image" style="width:40%"><br> {/if} {foreach from=$fields item=field} {if $field.type=="string"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> {editbox name=$field.field max=$field.length text=$field.value width="40%"}<br> {elseif $field.type=="int" || $field.type=="float"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> {editbox name=$field.field max=10 width=60 text=$field.value}<br> {elseif $field.type=="bool"} <br><input type="checkbox" name="{$field.field}"{if $field.value=="Y"} checked{/if}> {$field.name}<br> {elseif $field.type=="text"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> {textarea name=$field.field rows=$field.property text=$field.value}<br> {elseif $field.type=="select"} {$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}<br> <select name="{$field.field}"> {if $field.fill=="N"}<option value="0">Не выбрано</option>{/if} {html_options options=$field.options selected=$field.value} </select><br> {elseif $field.type=="image"} {$field.name}:<br> {if $field.value>0} {image id=$field.value height=80 popup=true}<br> <input type="checkbox" name="{$field.field}_del">Удалить<br> Заменить:<br> {/if} <input type="file" name="{$field.field}"><br> {elseif $field.type=="file"} {$field.name}:<br> {if $field.value>0} {download id=$field.value}<br> <input type="checkbox" name="{$field.field}_del">Удалить<br> Заменить:<br> {/if} <input type="file" name="{$field.field}"><br> {/if} {/foreach} <br> {submit caption="Сохранить"} {hidden name="action" value="save"} </form>
Этот тип шаблона содержит данные о личном счете пользователя и архив всех операций с ним.
Массив с данными пользователя, состоит из ключей:
Полное имя пользователя.
Полное имя пользователя.
Email пользователя.
Дата и время регистрации в формате UTC.
Дата и время последнего визита в формате UTC.
Количество визитов.
Название группы к которой принадлежит пользователь, если используется плагин "Группы пользователей".
Числовой идентификатор изображения (лого/аватар).
Текущий баланс пользователя.
Значение дополнительного анкетного поля.
Наименование валюты, в которой ведется счет.
Массив записей с данными о приходных операциях. Каждая запись состоит из ключей:
Дата совершения операции в формате UTC.
Сумма операции.
Описание операции.
Объект постраничной навигации для приходных операций.
Сумма всех приходных операций.
Массив записей с данными о расходных операциях. Формат записей аналогичен приходным операциям.
Объект постраничной навигации для расходных операций.
Сумма всех расходных операций.
<h1>Личный счет.</h1> <p>Текущий баланс: {$user.balance} {$valute}</p> <h3>Приходные операции:</h3> {if $in} <table border="1"> <tr> <th>Дата</th> <th>Описание</th> <th>Сумма</th> </tr> {section name=i loop=$in} <tr> <td>{$in[i].date|date_format:"%d.%m.%Y %T"}</td> <td>{$in[i].description}</td> <td>{$in[i].sum}</td> </tr> {/section} </table> {object obj=$in_pager} <p>Всего: {$sumin} {$valute}</p> {else} <p>Нет</p> {/if} <h3>Расходные операции:</h3> {if $out} <table border="1"> <tr> <th>Дата</th> <th>Описание</th> <th>Сумма</th> </tr> {section name=i loop=$out} <tr> <td>{$out[i].date|date_format:"%d.%m.%Y %T"}</td> <td>{$out[i].description}</td> <td>{$out[i].sum}</td> </tr> {/section} </table> {object obj=$out_pager} <p>Всего: {$sumout} {$valute}</p> {else} <p>Нет</p> {/if}
Этот шаблон не содержит специальных данных, используется для вывода формы восстановления пароля.
<h1>Восстановление пароля</h1> {if $errors.remember} <p><font color="red">Указанный логин/email отсутствует в нашей базе. Попробуйте еще раз.</font></p> {/if} <form method="post"> Логин или email:<br> {editbox name="login"} {submit caption="Восстановить"} {hidden name="action" value="remember"} </form>
Этот тип шаблона используется для вывода сообщений после основных операций.
Идентификатор определяющий тип сообщения, может принимать значения:
<h1>Сообщение</h1> {if $message=="register_ok"} <p>Регистрация прошла успешно!</p> {elseif $message=="register_activate"} <p>Регистрация прошла успешно. Вам отправлено письмо со ссылкой для активации аккаунта.</p> {elseif $message=="register_wait"} <p>Регистрация прошла успешно. В ближайшее время администратор активирует ваш аккаунт.</p> {elseif $message=="activate_ok"} <p>Активация прошла успешно!</p> {elseif $message=="activate_error"} <p>Ошибка активации!</p> {elseif $message=="remember_ok"} <p>Ваш новый пароль выслан на e-mail.</p> {/if}
Этот тип шаблона используется для детальной страницы пользователя на сайте.
Массив с данными пользователя, формат аналогичен описанному выше.