| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
4ept 25.05.2008 17:33 / 25.05.2008 17:45
Сейчас я пытаюсь сделать достаточно простую вещь:@greeting[]
Клиент
@body_main[]
^oSql.server{
^rem{ *** создаем объект класса auth *** }
$auth[^auth::init[$cookie:CLASS;$form:fields;$.csql[$oSql]]]
^if(def $form:[auth.logout] || (def $form:[auth.logon] && $auth.is_logon)){
^rem{ *** при logon/logout делаем external redirect на себя *** }
$response:location[http://${env:SERVER_NAME}^request:uri.match[\?.*][]{}?^math:random(100)]
}
^rem{ *** устанавливаем антикеширующие заголовки *** }
^auth.setExpireHeaders[]
^if(!$auth.is_logon){
^rem{ *** если пользователь не залогинен - выводим форму для логина *** }
^auth.htmlFormLogon[
$.target_url[./]
]
^if(def $form:[auth.logon]){
<p>Забыли пароль?<br />Воспользуйтесь <a href="/_auth_forgot.html">данной формой</a> для того чтобы установить себе новый пароль.</p>
}
}
^if($auth.is_logon){
^rem{ *** информация о пользователе *** }
<p>
<b>Информация о пользователе:</b><br />
Логин: $auth.user.name<br />
Email: $auth.user.email<br />
Состоит в группах: ^auth.user.groups.menu{$auth.user.groups.name}[, ]<br />
Дата регистрации: $auth.user.dt_register<br />
Дата последнего логина: $auth.user.dt_logon
</p>
}{
<p>Последний раз подключался пользователь: $auth.last_name</p>
}
^rem{ *** выводим форму для логаута. если пользователь не залогинен форма показана не будет *** }
^auth.htmlFormLogout[$.target_url[./]]
}
#свиснуто из файла _auth_profile.html
$client[^cl::load[]] #мой классauto.p @USE
/class/Erusage.p
/class/MySqlComp.p
/class/auth.p
/class/cl.p
###########################################################################
@auto[]
$SQL.connect-string[mysql://p3test@localhost/p3test]
$oSql[^MySqlComp::create[$SQL.connect-string;
$.bDebug(true)
$.sCacheDir[$CACHE_DIR/_sql]
]]
#end @auto[]
###########################################################################
@postprocess[sBody][repl;tmp]
$result[$sBody]
#...your postprocess code here if needed...
^getSQLStat[$oSql]
^rusage[]
#end @postprocess[]
###########################################################################
# log SQL statistics to file
@getSQLStat[oSql][oSqlLog]
^if(def $oSql && !in "/admin/"){
^use[/class/SqlLog.p]
$oSqlLog[^SqlLog::create[$oSql]]
^oSqlLog.log[
$.iQueryTimeLimit(500)
$.iQueriesLimit(25)
$.iQueryRowsLimit(3000)
^if(def $form:mode && ^form:tables.mode.locate[field;debug]){
^rem{ *** for ?mode=debug collect all queries info and store it to separate file *** }
$.sFile[$DATA_DIR/sql.txt]
$.bAll(1)
}{
^rem{ *** by default we log only pages with potential problems *** }
$.sFile[$DATA_DIR/sql.log]
}
]
}
$result[]
#end @getSQLStat[]
###########################################################################
@rusage[sMessage]
^if(!in "/admin/"){
^Erusage:log[
$.sFile[$DATA_DIR/rusage.log]
$.sMessage[$sMessage]
]
}
$result[]
#end @rusage[]cl.p @CLASS
cl
@load[]
^use[/class/MySql.p]
$tUser[^oSQL.table{
SELECT id, name
FROM user
WHERE name LIKE 'admin'
}]
@show[]
ID: $tUser.id
Name: $tUser.name