NobuNobu
nobun****@users*****
2007年 4月 30日 (月) 16:36:25 JST
Index: xoops2jp/html/modules/pm/actions/DefaultAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/actions/DefaultAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:25 2007 +++ xoops2jp/html/modules/pm/actions/DefaultAction.class.php Mon Apr 30 16:36:25 2007 @@ -0,0 +1,61 @@ +<?php +/** + * @package pm + * @version $Id: DefaultAction.class.php,v 1.1.4.1 2007/04/30 07:36:25 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +require_once XOOPS_ROOT_PATH . "/core/XCube_PageNavigator.class.php"; +require_once XOOPS_MODULE_PATH . "/pm/forms/PmDeleteForm.class.php"; + +/** + * [Notice] + * This class has been checked in Alpha4. But, this class doesn't go along the + * latest cubson style. And some problems (using core handler, naming rule and + * etc) are there. Pm module is one of the most old code in Legacy. + * + * [ToDo] + * This class should use Action_FilterForm as well as other latest modules. + */ +class Pm_DefaultAction extends Pm_AbstractAction +{ + var $mActionForm = null; + + var $mPmObjects = array(); + + var $mPageNavi = null; + + function prepare(&$controller, &$xoopsUser, &$moduleConfig) + { + $this->mActionForm =& new Pm_PmDeleteForm(); + $this->mActionForm->prepare(); + } + + function getDefaultView(&$controller, &$xoopsUser) + { + $pmHandler =& xoops_gethandler('privmessage'); + $total = $pmHandler->getCountByFromUid($xoopsUser->uid()); + + $this->mPageNavi =& new XCube_PageNavigator(XOOPS_URL . "./viewpmsg.php", XCUBE_PAGENAVI_START); + $this->mPageNavi->setTotalItems($total); + $this->mPageNavi->fetch(); + + $this->mPmObjects =& $pmHandler->getObjectsByFromUid($xoopsUser->uid(), $this->mPageNavi->getStart()); + + return PM_FRAME_VIEW_INDEX; + } + + function executeViewIndex(&$controller, &$xoopsUser, &$render) + { + $render->setTemplateName("viewpmsg.html"); + $render->setAttribute("pmObjects", $this->mPmObjects); + $render->setAttribute("total_messages", count($this->mPmObjects)); + $render->setAttribute("currentUser", $xoopsUser); + $render->setAttribute("anonymous", $controller->mRoot->mContext->getXoopsConfig('anonymous')); + $render->setAttribute("pageNavi", $this->mPageNavi); + $render->setAttribute("actionForm", $this->mActionForm); + } +} + +?> \ No newline at end of file Index: xoops2jp/html/modules/pm/actions/DeleteAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/actions/DeleteAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:25 2007 +++ xoops2jp/html/modules/pm/actions/DeleteAction.class.php Mon Apr 30 16:36:25 2007 @@ -0,0 +1,62 @@ +<?php +/** + * @package pm + * @version $Id: DeleteAction.class.php,v 1.1.4.1 2007/04/30 07:36:25 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +require_once XOOPS_MODULE_PATH . "/pm/forms/PmDeleteForm.class.php"; + +class Pm_DeleteAction extends Pm_AbstractAction +{ + var $mActionForm = null; + + function prepare(&$controller, &$xoopsUser, &$moduleConfig) + { + $this->mActionForm =& new Pm_PmDeleteForm(); + $this->mActionForm->prepare(); + } + + function execute(&$controller, &$xoopsUser) + { + // + // Fetch request and validate. + // + $this->mActionForm->fetch(); + $this->mActionForm->validate(); + + // + // If error, go to re-input. + // + if($this->mActionForm->hasError()) { + return PM_FRAME_VIEW_ERROR; + } + + // + // Delete PM + // + $handler =& xoops_gethandler('privmessage'); + foreach ($this->mActionForm->getVar('msg_id') as $msg_id) { + $pm =& $handler->get($msg_id); + if (is_object($pm) && ($pm->get('to_userid') == $xoopsUser->get('uid'))) { + $handler->delete($pm); + } + unset($pm); + } + + return PM_FRAME_VIEW_SUCCESS; + } + + function executeViewSuccess(&$controller, &$xoopsUser, &$render) + { + $controller->executeRedirect(XOOPS_URL . "/viewpmsg.php", 1, _MD_PM_MESSAGE_DELETED); + } + + function executeViewError(&$controller, &$xoopsUser, &$render) + { + $controller->executeRedirect(XOOPS_URL . "/viewpmsg.php", 1, _MD_PM_ERROR_ACCESS); + } +} + +?> Index: xoops2jp/html/modules/pm/actions/DeleteOneAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/actions/DeleteOneAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:25 2007 +++ xoops2jp/html/modules/pm/actions/DeleteOneAction.class.php Mon Apr 30 16:36:25 2007 @@ -0,0 +1,74 @@ +<?php +/** + * @package pm + * @version $Id: DeleteOneAction.class.php,v 1.1.4.1 2007/04/30 07:36:25 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +require_once XOOPS_MODULE_PATH . "/pm/class/AbstractDeleteAction.class.php"; +require_once XOOPS_MODULE_PATH . "/pm/forms/DeleteOneForm.class.php"; + +class Pm_DeleteOneAction extends Pm_AbstractDeleteAction +{ + function _getId() + { + return xoops_getrequest('msg_id'); + } + + function &_getHandler() + { + $handler =& xoops_gethandler('privmessage'); + return $handler; + } + + function _setupActionForm() + { + $this->mActionForm =& new Pm_DeleteOneForm(); + $this->mActionForm->prepare(); + } + + function hasPermission(&$controller, &$xoopsUser, $moduleConfig) + { + if (parent::hasPermission($controller, $xoopsUser, $moduleConfig)) { + return $xoopsUser->get('uid') == $this->mObject->get('to_userid'); + } + else { + return false; + } + } + + function executeViewInput(&$controller, &$xoopsUser, &$render) + { + $render->setTemplateName("pm_delete_one.html"); + $render->setAttribute('actionForm', $this->mActionForm); + $render->setAttribute('object', $this->mObject); + + $sendUser =& $this->mObject->getFromUser(); + if (is_object($sendUser) && $sendUser->isActive()) { + $render->setAttribute("sendUser", $sendUser); + } + } + + function executeViewSuccess(&$controller, &$xoopsUser, &$render) + { + $controller->executeForward(XOOPS_URL . "/viewpmsg.php"); + } + + function executeViewError(&$controller, &$xoopsUser, &$render) + { + $controller->executeRedirect(XOOPS_URL . "/viewpmsg.php", 1, _MD_PM_ERROR_ACCESS); + } + + function executeViewCancel(&$controller, &$xoopsUser, &$render) + { + if (is_object($this->mObject)) { + $controller->executeForward(XOOPS_URL . "/readpmsg.php?msg_id=" . $this->mObject->get('msg_id')); + } + else { + $controller->executeForward(XOOPS_URL . "/viewpmsg.php"); + } + } +} + +?> Index: xoops2jp/html/modules/pm/actions/PmliteAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/actions/PmliteAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:25 2007 +++ xoops2jp/html/modules/pm/actions/PmliteAction.class.php Mon Apr 30 16:36:25 2007 @@ -0,0 +1,93 @@ +<?php +/** + * @package pm + * @version $Id: PmliteAction.class.php,v 1.1.4.1 2007/04/30 07:36:25 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +require_once XOOPS_MODULE_PATH . "/pm/class/AbstractEditAction.class.php"; +require_once XOOPS_MODULE_PATH . "/pm/forms/PmliteEditForm.class.php"; + +class Pm_PmliteAction extends Pm_AbstractEditAction +{ + var $_mSendType = 0; + + function prepare(&$controller, &$xoopsUser, &$moduleConfig) + { + $this->_mSendType = $moduleConfig['send_type']; + parent::prepare($controller, $xoopsUser, $moduleConfig); + + if (is_object($xoopsUser)) { + $this->mObject->set('from_userid', $xoopsUser->get('uid')); + } + } + + function _getId() + { + return 0; + } + + function &_getHandler() + { + $handler =& xoops_getmodulehandler('priv_msgs', 'pm'); + return $handler; + } + + function _setupActionForm() + { + // + // Create action form object by reply mode? or not? + // + $this->mActionForm = $this->_mSendType == 0 ? new Pm_PmliteComboEditForm() : new Pm_PmliteDirectEditForm(); + if (isset($_GET['reply']) && $_GET['reply'] == 1) { + $this->mActionForm->changeStateReply(); + } + + $this->mActionForm->prepare(); + } + + function _setupObject() + { + $this->mObjectHandler =& $this->_getHandler(); + $this->mObject =& $this->mObjectHandler->create(); + } + + function getDefaultView(&$controller,&$xoopsUser) + { + // + // Fetch request only (no validate). + // + $this->mActionForm->fetch(); + + return PM_FRAME_VIEW_INPUT; + } + + function executeViewInput(&$controller, &$xoopsUser, &$render) + { + $render->setTemplateName("pmlite.html"); + $render->setAttribute("actionForm", $this->mActionForm); + $render->setAttribute("send_type", $this->_mSendType); + + // + // If the request doesn't have uid, list up users to template. + // + if ($this->_mSendType == 0 && $this->mActionForm->getVar('to_userid') == 0) { + $handler =& xoops_gethandler('user'); + $userObjectArr =& $handler->getObjectsByLevel(0); + $render->setAttribute("userList", $userObjectArr); + } + } + + function executeViewSuccess(&$controller, &$xoopsUser, &$render) + { + $render->setTemplateName("pm_pmlite_success.html"); + } + + function executeViewError(&$controller, &$xoopsUser, &$render) + { + $controller->executeRedirect("pmlite.php", 3, _MD_PM_ERROR_MESSAGE_SEND); + } +} + +?> Index: xoops2jp/html/modules/pm/actions/ReadAction.class.php diff -u /dev/null xoops2jp/html/modules/pm/actions/ReadAction.class.php:1.1.4.1 --- /dev/null Mon Apr 30 16:36:25 2007 +++ xoops2jp/html/modules/pm/actions/ReadAction.class.php Mon Apr 30 16:36:25 2007 @@ -0,0 +1,138 @@ +<?php +/** + * @package pm + * @version $Id: ReadAction.class.php,v 1.1.4.1 2007/04/30 07:36:25 nobunobu Exp $ + */ + +if (!defined('XOOPS_ROOT_PATH')) exit(); + +/** + * [Notice] + * This class has been checked in Alpha4. But, this class doesn't go along the + * latest cubson style. And some problems (using core handler, naming rule and + * etc) are there. Pm module is one of the most old code in Legacy. + */ +class Pm_ReadAction extends Pm_AbstractAction +{ + /** + * A instance of the current private-message. + * + * @var XoopsPrivmessage + */ + var $mPrivMessage = null; + + /** + * A instance of the user that has sent the current private-message. + * + * @var XoopsUser + */ + var $mSendUser = null; + + /** + * A instance of previous private-message form the current private-message. + * + * @var XoopsPrivmessage + */ + var $mPreviousMessage = null; + + /** + * A instance of next private-message form the current private-message. + * + * @var XoopsPrivmessage + */ + var $mNextMessage = null; + + function getDefaultView(&$controller,&$xoopsUser) + { + // + // Request Check without ActionForm + // + $msg_id = intval(xoops_getrequest('msg_id')); + + // + // Load private message object + // + $pmHandler =& xoops_gethandler('privmessage'); + $this->mPrivMessage =& $pmHandler->get($msg_id); + + if (!is_object($this->mPrivMessage)) { + return PM_FRAME_VIEW_ERROR; + } + + // + // Check read permission and the sender. + // + if ($this->mPrivMessage->getVar('to_userid') != $xoopsUser->getVar('uid')) { + return PM_FRAME_VIEW_ERROR; + } + + $this->mSendUser =& $this->mPrivMessage->getFromUser(); + if (!is_object($this->mSendUser)) { + return PM_FRAME_VIEW_ERROR; + } + + // + // Get previous and next message + // + $criteria =& new CriteriaCompo(); + $criteria->add(new Criteria('msg_id', $this->mPrivMessage->getVar('msg_id'), "<")); + $criteria->add(new Criteria('to_userid', $xoopsUser->get('uid'))); + $criteria->setLimit(1); + $criteria->setSort('msg_time'); + $criteria->setOrder('DESC'); + $t_objArr =& $pmHandler->getObjects($criteria); + if (count($t_objArr) > 0 && is_object($t_objArr[0])) { + $this->mPreviousMessage =& $t_objArr[0]; + } + unset($t_objArr); + unset($criteria); + + $criteria =& new CriteriaCompo(); + $criteria->add(new Criteria('msg_id', $this->mPrivMessage->getVar('msg_id'), ">")); + $criteria->add(new Criteria('to_userid', $xoopsUser->get('uid'))); + $criteria->setLimit(1); + $criteria->setSort('msg_time'); + $t_objArr =& $pmHandler->getObjects($criteria); + if (count($t_objArr) > 0 && is_object($t_objArr[0])) { + $this->mNextMessage =& $t_objArr[0]; + } + + // + // If this message is unread, Raise read flag. + // + if (!$this->mPrivMessage->isRead()) { + $pmHandler->setRead($this->mPrivMessage); + } + + return PM_FRAME_VIEW_INDEX; + } + + /** + * When a user click 'delete' button, this member function is called by + * POST request. Forward delete one action. + */ + function execute(&$controller, &$xoopsUser) + { + $controller->executeForward(XOOPS_URL . "/readpmsg.php?action=DeleteOne&msg_id=" . xoops_getrequest('msg_id')); + } + + function executeViewError(&$controller, &$xoopsUser, &$render) + { + $controller->executeRedirect(XOOPS_URL . "/viewpmsg.php", 1, _MD_PM_ERROR_ACCESS); + } + + function executeViewIndex(&$controller, &$xoopsUser, &$render) + { + $render->setTemplateName("readpmsg.html"); + $render->setAttribute("thisUser", $xoopsUser); + if ($this->mSendUser->isActive()) { + $render->setAttribute("sendUser", $this->mSendUser); + } + $render->setAttribute("privMessage", $this->mPrivMessage); + $render->setAttribute("previousMessage", $this->mPreviousMessage); + $render->setAttribute("nextMessage", $this->mNextMessage); + $render->setAttribute("anonymous", $controller->mRoot->mContext->getXoopsConfig('anonymous')); + } +} + +?> \ No newline at end of file Index: xoops2jp/html/modules/pm/actions/index.html diff -u /dev/null xoops2jp/html/modules/pm/actions/index.html:1.1.4.1 --- /dev/null Mon Apr 30 16:36:25 2007 +++ xoops2jp/html/modules/pm/actions/index.html Mon Apr 30 16:36:25 2007 @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file