NobuNobu
nobun****@users*****
2007年 4月 30日 (月) 16:36:32 JST
Index: xoops2jp/html/modules/pm/class/AbstractDeleteAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/class/AbstractDeleteAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:32 2007 +++ xoops2jp/html/modules/pm/class/AbstractDeleteAction.class.php Mon Apr 30 16:36:32 2007 @@ -0,0 +1,24 @@ +<?php +/** + * @package pm + * @version $Id: AbstractDeleteAction.class.php,v 1.1.4.1 2007/04/30 07:36:32 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +require_once XOOPS_MODULE_PATH . "/pm/class/AbstractEditAction.class.php"; + +class Pm_AbstractDeleteAction extends Pm_AbstractEditAction +{ + function isEnableCreate() + { + return false; + } + + function _doExecute() + { + return $this->mObjectHandler->delete($this->mObject); + } +} + +?> Index: xoops2jp/html/modules/pm/class/AbstractEditAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/class/AbstractEditAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:32 2007 +++ xoops2jp/html/modules/pm/class/AbstractEditAction.class.php Mon Apr 30 16:36:32 2007 @@ -0,0 +1,93 @@ +<?php +/** + * @package pm + * @version $Id: AbstractEditAction.class.php,v 1.1.4.1 2007/04/30 07:36:32 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +class Pm_AbstractEditAction extends Pm_AbstractAction +{ + var $mObject = null; + var $mObjectHandler = null; + var $mActionForm = null; + + function _getId() + { + } + + function &_getHandler() + { + } + + function _setupActionForm() + { + } + + function _setupObject() + { + $id = $this->_getId(); + + $this->mObjectHandler =& $this->_getHandler(); + + $this->mObject =& $this->mObjectHandler->get($id); + + if ($this->mObject == null && $this->isEnableCreate()) { + $this->mObject =& $this->mObjectHandler->create(); + } + } + + function isEnableCreate() + { + return true; + } + + function prepare(&$controller, &$xoopsUser, &$moduleConfig) + { + $this->_setupObject(); + $this->_setupActionForm(); + } + + function getDefaultView(&$controller, &$xoopsUser) + { + if ($this->mObject == null) { + return PM_FRAME_VIEW_ERROR; + } + + $this->mActionForm->load($this->mObject); + + return PM_FRAME_VIEW_INPUT; + } + + function execute(&$controller, &$xoopsUser) + { + if ($this->mObject == null) { + return PM_FRAME_VIEW_ERROR; + } + + if (isset($_REQUEST['_form_control_cancel'])) { + return PM_FRAME_VIEW_CANCEL; + } + + $this->mActionForm->load($this->mObject); + + $this->mActionForm->fetch(); + $this->mActionForm->validate(); + + if($this->mActionForm->hasError()) { + return PM_FRAME_VIEW_INPUT; + } + + $this->mActionForm->update($this->mObject); + + return $this->_doExecute($this->mObject) ? PM_FRAME_VIEW_SUCCESS + : PM_FRAME_VIEW_ERROR; + } + + function _doExecute() + { + return $this->mObjectHandler->insert($this->mObject); + } +} + +?> Index: xoops2jp/html/modules/pm/class/ActionFrame.class.php diff -u /dev/null xoops2jp/html/modules/pm/class/ActionFrame.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:32 2007 +++ xoops2jp/html/modules/pm/class/ActionFrame.class.php Mon Apr 30 16:36:32 2007 @@ -0,0 +1,188 @@ +<?php +/** + * @package pm + * @version $Id: ActionFrame.class.php,v 1.1.4.1 2007/04/30 07:36:32 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +define ("PM_FRAME_PERFORM_SUCCESS", 1); +define ("PM_FRAME_PERFORM_FAIL", 2); +define ("PM_FRAME_INIT_SUCCESS", 3); + +define ("PM_FRAME_VIEW_NONE", 1); +define ("PM_FRAME_VIEW_SUCCESS", 2); +define ("PM_FRAME_VIEW_ERROR", 3); +define ("PM_FRAME_VIEW_INDEX", 4); +define ("PM_FRAME_VIEW_INPUT", 5); +define ("PM_FRAME_VIEW_PREVIEW", 6); +define ("PM_FRAME_VIEW_CANCEL", 7); + +class Pm_ActionFrame +{ + var $mActionName = null; + var $mAction = null; + var $mAdminFlag = null; + + function Pm_ActionFrame($admin) + { + $this->mAdminFlag = $admin; + } + + function setActionName($name) + { + $this->mActionName = $name; + + // + // Temp FIXME! + // + $root =& XCube_Root::getSingleton(); + $root->mContext->setAttribute('actionName', $name); + $root->mContext->mModule->setAttribute('actionName', $name); + } + + function execute(&$controller) + { + if (!preg_match("/^\w+$/", $this->mActionName)) { + die(); + } + + // + // Create action object by mActionName + // + $className = "Pm_" . ucfirst($this->mActionName) . "Action"; + $fileName = ucfirst($this->mActionName) . "Action"; + if ($this->mAdminFlag) { + $fileName = XOOPS_MODULE_PATH . "/pm/admin/actions/${fileName}.class.php"; + } + else { + $fileName = XOOPS_MODULE_PATH . "/pm/actions/${fileName}.class.php"; + } + + if (!file_exists($fileName)) { + die(); + } + + require_once $fileName; + + if (class_exists($className)) { + $this->mAction =& new $className(); + } + + if (!is_object($this->mAction)) { + $this->doActionNotFoundError($controller); + return; + } + + $handler =& xoops_gethandler('config'); + $moduleConfig =& $handler->getConfigsByDirname('pm'); + + $this->mAction->prepare($controller, $controller->mRoot->mContext->mXoopsUser, $moduleConfig); + + if (!$this->mAction->hasPermission($controller, $controller->mRoot->mContext->mXoopsUser, $moduleConfig)) { + $this->doPermissionError($controller); + return; + } + + if (xoops_getenv("REQUEST_METHOD") == "POST") { + $viewStatus = $this->mAction->execute($controller, $controller->mRoot->mContext->mXoopsUser); + } + else { + $viewStatus = $this->mAction->getDefaultView($controller, $controller->mRoot->mContext->mXoopsUser); + } + + switch($viewStatus) { + case PM_FRAME_VIEW_SUCCESS: + $this->mAction->executeViewSuccess($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget()); + break; + + case PM_FRAME_VIEW_ERROR: + $this->mAction->executeViewError($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget()); + break; + + case PM_FRAME_VIEW_INDEX: + $this->mAction->executeViewIndex($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget()); + break; + + case PM_FRAME_VIEW_INPUT: + $this->mAction->executeViewInput($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget()); + break; + + case PM_FRAME_VIEW_PREVIEW: + $this->mAction->executeViewPreview($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget()); + break; + + case PM_FRAME_VIEW_CANCEL: + $this->mAction->executeViewCancel($controller, $controller->mRoot->mContext->mXoopsUser, $controller->mRoot->mContext->mModule->getRenderTarget()); + break; + } + } + + function doPermissionError(&$controller) + { + $errorMessages = array(_MD_PM_MESSAGE_SORRY, _MD_PM_MESSAGE_PLZREG); + $controller->executeRedirect(XOOPS_URL . '/', 2, $errorMessages); + } + + function doActionNotFoundError($controller) + { + $controller->executeForward(XOOPS_URL); + return; + } + + function checkPermission($name, $itemIds) + { + } +} + +class Pm_AbstractAction +{ + function Pm_AbstractAction() + { + } + + function prepare(&$controller, &$xoopsUser) + { + } + + function hasPermission(&$controller, &$xoopsUser, &$moduleConfig) + { + return is_object($xoopsUser); + } + + function getDefaultView(&$controller, &$xoopsUser) + { + return PM_FRAME_VIEW_NONE; + } + + function execute(&$controller, &$xoopsUser) + { + return PM_FRAME_VIEW_NONE; + } + + function executeViewSuccess(&$controller, &$xoopsUser, &$render) + { + } + + function executeViewError(&$controller, &$xoopsUser, &$render) + { + } + + function executeViewIndex(&$controller, &$xoopsUser, &$render) + { + } + + function executeViewInput(&$controller, &$xoopsUser, &$render) + { + } + + function executeViewPreview(&$controller, &$xoopsUser, &$render) + { + } + + function executeViewCancel(&$controller, &$xoopsUser, &$render) + { + } +} + +?> Index: xoops2jp/html/modules/pm/class/index.html diff -u /dev/null xoops2jp/html/modules/pm/class/index.html:1.1.4.1 --- /dev/null Mon Apr 30 16:36:32 2007 +++ xoops2jp/html/modules/pm/class/index.html Mon Apr 30 16:36:32 2007 @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Index: xoops2jp/html/modules/pm/class/priv_msgs.php diff -u /dev/null xoops2jp/html/modules/pm/class/priv_msgs.php:1.1.6.1 --- /dev/null Mon Apr 30 16:36:32 2007 +++ xoops2jp/html/modules/pm/class/priv_msgs.php Mon Apr 30 16:36:32 2007 @@ -0,0 +1,31 @@ +<?php +/** + * @package pm + * @version $Id: priv_msgs.php,v 1.1.6.1 2007/04/30 07:36:32 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +class PmPriv_msgsObject extends XoopsSimpleObject +{ + function PmPriv_msgsObject() + { + $this->initVar('msg_id', XOBJ_DTYPE_INT, '', true); + $this->initVar('msg_image', XOBJ_DTYPE_STRING, 'icon1.gif', false, 100); + $this->initVar('subject', XOBJ_DTYPE_STRING, '', true, 255); + $this->initVar('from_userid', XOBJ_DTYPE_INT, '0', true); + $this->initVar('to_userid', XOBJ_DTYPE_INT, '0', true); + $this->initVar('msg_time', XOBJ_DTYPE_INT, time(), true); + $this->initVar('msg_text', XOBJ_DTYPE_TEXT, '', true); + $this->initVar('read_msg', XOBJ_DTYPE_BOOL, '0', true); + } +} + +class PmPriv_msgsHandler extends XoopsObjectGenericHandler +{ + var $mTable = "priv_msgs"; + var $mPrimary = "msg_id"; + var $mClass = "PmPriv_msgsObject"; +} + +?>