function listen() { $pathInfo = Apu::fetchPath(); $className = String::camelize("_".$pathInfo["class"]."_action"); reset($GLOBALS["CFG_ACTION"]->NS); foreach ($GLOBALS["CFG_ACTION"]->NS as $ns) { Apu::import($ns.'/'.$className.".php"); } $action = new $className($pathInfo["method"]); $action->listen(); }
<?php Apu::import("/action/Action.php"); Apu::import("/db/Select.php"); Apu::import("/todo/dao/UserDao.php"); class BaseUserAction extends Action { function pre() { parent::pre(); BaseUserAction::checkLogin(); } function checkLogin() { $user = UserDao::loginUserName(); if (empty($user)) { Apu::redirect("login"); } } } ?>
<?php Apu::import("/action/BaseAction.php"); Apu::import("/db/DB.php"); Apu::import("/db/Select.php"); class BenchmarkAction extends BaseAction { function doIndex() { header('Content-type: text/plain'); echo "Hello World\n"; } function doUsedb() { header('Content-type: text/plain'); echo "Hello World\n"; $result = DB::query(new Select("logs")); foreach($result as $row) { $a[] = $row; } $result = DB::query(new Select("lookups")); foreach($result as $row) { $a[] = $row; } } } ?>
<?php Apu::import("/action/JsonAction.php"); Apu::import("/Test.php"); class RpcAction extends JsonAction { var $_md; function doIndex() { $modules = array(); reset($GLOBALS['CFG_RPC']->MODULES); while (list($moduleKey,$moduleCfg) = each($GLOBALS['CFG_RPC']->MODULES)) { try { $clazz = new ReflectionClass($moduleCfg->NAME); $module["name"] = $moduleCfg->NAME; while (list(,$methodCfg) = each($moduleCfg->METHODS)) { $methodRef = $clazz->getMethod($methodCfg); $parameterCfgs = $methodRef->getParameters(); $parameters = array(); $args = array(); while(list(,$param) = each($parameterCfgs)) { $parameters[] = $param->getName(); $args[] = "'ps[]=' + ".$param->getName(); } $parameters[] = '__callback'; $method = array(); $method["name"] = $methodCfg; $method["parameters"] = implode(', ', $parameters); $method["args"] = implode(" + '&' + ", $args); $module["methods"][] = $method;
<?php Apu::import("/action/Action.php"); class JsonAction extends Action { var $json; function post() { echo JSON::encode($this->json); } } ?>
<?php Apu::import("/dao/BaseDao.php"); class UserDao extends BaseDao { } ?>
<?php Apu::import("/db/DB.php"); Apu::import("/db/MysqlDriver.php"); Apu::import("/db/Exp.php"); Apu::import("/db/Query.php"); class Insert extends Query { var $value; function __construct($table, $value, $schema = "DEFAULT") { parent::__construct($table, $schema); $this->value = $value; } function valueString() { reset($this->meta); $values = array(); while(list(,$meta) = each($this->meta)) { $value = Bean::get($this->value, String::camelize($meta["name"])); $values[] = $this->escape($value, $meta["name"]); } return implode(', ', $values); } function sql() { $sql = sprintf("insert into %s(%s) values(%s)", $this->tableString(), $this->fieldString(), $this->valueString()); return $sql; } } ?>
<?php Apu::import("/action/BaseAction.php"); class BenchmarkCaseAction extends BaseAction { function doIndex() { ?> <style> body, table, tr, th, td { font-family: Lucida Console; font-size: 11px; } </style> <?php $iteration = 10; $urls = array(); $urls[] = 'http://codeigniter.dev.ku/benchmark/'; $urls[] = 'http://todo.dev.ku/benchmark/'; $urls[] = 'http://cakephp.dev.ku/benchmarks'; $this->_benchmark($urls, $iteration); echo '<br/><br/>'; $urls = array(); $urls[] = 'http://codeigniter.dev.ku/benchmark/usedb/'; $urls[] = 'http://todo.dev.ku/benchmark/usedb/'; $urls[] = 'http://cakephp.dev.ku/benchmarks/usedb/'; $this->_benchmark($urls, $iteration); } function _benchmark($urls, $iteration) { $result = array(); echo "<table border=\"1\" width=\"100%\">\n<tr>\n<th>x</th>\n"; reset($urls); foreach ($urls as $url) {
<?php Apu::import("/message/Msg.php"); Apu::import("/common/String.php"); Apu::import("/common/Session.php"); Apu::import("/util/Bean.php"); define("ACTION_SCOPE", "ACTION"); abstract class BaseAction extends BaseClass { var $method; var $_time; function __construct($method) { $this->method = $method; } function save($key) { Session::save(ACTION_SCOPE, $this->$key, get_class($this).".$key"); } function fetch($key) { $value = Session::load(ACTION_SCOPE, get_class($this).".$key"); Bean::set($this, $key, $value); return $value; } function remove($key = null) { if ($key == null) { $key = get_class($this); } else { $key = get_class($this).".$key";
<?php Apu::import("/action/BaseUserAction.php"); class TaskAction extends BaseUserAction { // var $validation = "/todo/action/login/LoginAction_validation.php"; function doIndex() { $select = new Select("tasks"); $list = DB::query($select); $_REQUEST["list"] = $list; Apu::dispatch("/todo/faces/task/task_list.php"); } function doAdd() { Apu::dispatch("/todo/faces/task/task_add.php"); } } ?>
<? Apu::import("/util/Format.php"); ?> <? Apu::import("/tag/FormTag.php"); ?> <script type="text/javascript" src="<?=Apu::base()?>/themes/prototype.js"></script> <script type="text/javascript" src="<?=Apu::base()?>/themes/apu.js"></script> <script type="text/javascript" src="<?=Apu::theme()?>/init.js"></script> <script type="text/javascript"> var LookupList = { search : function(evt) { var obj = Event.element(evt); $('searchFrame').toggle(); LookupList.move(obj); }, move: function(obj) { if ($('searchFrame').visible()) { Position.absolutize($('searchFrame')); var position = Position.positionedOffset(obj); $('searchFrame').style.top = position[1] + obj.getHeight() + 5; $('searchFrame').style.left = position[0] + obj.getWidth() + 8 - $('searchFrame').getWidth(); } }, close: function(evt) { var obj = Event.element(evt); var frameId = obj.readAttribute("frameId"); $(frameId).toggle(); }, clear: function(evt) { var obj = Event.element(evt); document.forms[0]["list.filter.type"].value = ""; document.forms[0]["list.filter.code"].value = ""; document.forms[0].submit(); },
<?php Apu::import("/message/Msg.php"); class Locale extends BaseClass { function lang($lang = null) { if ($lang == null) { $sessionLang = Session::load(MSG_SCOPE, "lang"); if (empty($sessionLang)) { Session::save(MSG_SCOPE, Locale::_defaultBrowserLang(), "lang"); } return Session::load(MSG_SCOPE, "lang"); } else { Session::save(MSG_SCOPE, $lang, "lang"); } } function _defaultBrowserLang() { $langs = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $langs = explode(",", $langs); reset($langs); while (list($key, $lang) = each($langs)) { $lang = explode(";", $lang); $lang = $lang[0]; $lang = explode("-", $lang); return $lang[0]; } } } ?>
<?php Apu::import("/action/JsonAction.php"); class LogAction extends JsonAction { var $message; function doIndex() { $result = new stdClass(); $result->message = $this->message; $this->json = $result; } } ?>
<?php Apu::import("/action/BaseUserAction.php"); Apu::import("/todo/action/menu.php"); class MenuAction extends BaseUserAction { function doIndex() { reset($GLOBALS["MENU"]); $menus = array(); while (list($id, $menu) = each($GLOBALS["MENU"])) { $menu["name"] = $id; MenuAction::insertMenu($menus, ltrim($id, 'menu.'), $menu); } $_REQUEST["menu"] = $menus; $date = new Date(); $_REQUEST["date"] = $date->__toString(); Apu::dispatch("/todo/faces/menu/menu.php"); } function insertMenu(&$menus, $id, $menu) { $pos = strpos($id, '.'); if ($pos != false) { MenuAction::insertMenu($menus[substr($id, 0, $pos)]["children"], substr($id, $pos + 1), $menu); } else { $menus[$id] = $menu; } } } ?>
<?php Apu::import("/common/Locale.php"); function Msg_formatCallback($matches) { $result = $GLOBALS['Msg_formatParam'][$matches[1]]; if ($result == null) { $result = $matches[0]; } return $result; } define("MSG_SCOPE", "MSG"); class Msg extends BaseClass { function save($messages, $scope = "global") { Session::save(MSG_SCOPE, $messages, $scope); } function fetch($scope = "global") { return Session::load(MSG_SCOPE, $scope); } function remove($scope = "global") { Session::remove(MSG_SCOPE, $scope); } function init() { $lang = Locale::lang(); if ($GLOBALS["CFG_APU"]->DEBUG) { Session::remove(MSG_SCOPE, "lang"); }
<?php Apu::import("/db/Insert.php"); Apu::import("/db/Update.php"); Apu::import("/db/Delete.php"); Apu::import("/log/Log.php"); Apu::import("/common/Date.php"); define("DB_SCOPE", "DB"); class DB extends BaseClass { function connect($schema = "DEFAULT") { $driver = $GLOBALS["CFG_DB"]->CON[$schema]->DRIVER; $result = Bean::invoke(String::camelize('_'.$driver.'_driver'), "connect", array($schema)); return $result; } function query($query, $schema = "DEFAULT") { if ($query instanceof Query) { Log::debug($query->sql(), __FILE__, __LINE__); } else { Log::debug($query, __FILE__, __LINE__); } $driver = $GLOBALS["CFG_DB"]->CON[$schema]->DRIVER; $result = Bean::invoke(String::camelize('_'.$driver.'_driver'), "query", array($query, $schema)); return $result; } function unique($query, $schema = "DEFAULT") { if ($query instanceof Query) { Log::debug($query->sql(), __FILE__, __LINE__); } else {
<?php Apu::import("/action/BaseAction.php"); Apu::import("/action/Validatable.php"); Apu::import("/action/Populatable.php"); Apu::import("/json/JSON.php"); Apu::import("/validation/Validation.php"); abstract class Action extends BaseAction implements Validatable, Populatable { var $messages; var $validation; var $serverDatas; function __construct($method) { parent::__construct($method); $this->messages = array(); } function validate() { if (empty($this->validation)) { return; } Validation::validate($this); } function populate() { $scope = $GLOBALS["CFG_ACTION"]->SCOPE; $scopeVars = Bean::get('$'.$scope); while (list($key, $var) = each($scopeVars)) { if ($scope == "_REQUEST" || $scope == "_POST" || $scope == "_GET") { $key = str_replace("_", ".", $key); }
<?php Apu::import("/action/BaseUserAction.php"); Apu::import("/todo/dao/LookupDao.php"); class LookupAction extends BaseUserAction { var $validation = "/todo/action/LookupAction_validation.php"; var $lookup; var $id; var $list; function doSort() { $sort = $this->sort; $this->fetch("list"); if ($this->list["sort"]["key"] == $this->sort) { if ($this->list["sort"]["order"] == "ASC") { $this->list["sort"]["order"] = "DESC"; } else { $this->list["sort"]["order"] = "ASC"; } $this->list["sort"]["key"] = $this->sort; } else { $this->list["sort"]["order"] = "ASC"; $this->list["sort"]["key"] = $this->sort; } $this->save("list"); Apu::redirect("lookup"); } function doSearch() { $this->lookup = $this->list["filter"];