diff --git a/modules/comments/constant/module.php b/modules/comments/constant/module.php new file mode 100644 index 000000000..4e767f839 --- /dev/null +++ b/modules/comments/constant/module.php @@ -0,0 +1,22 @@ +requireAdminPrivileges(); + $this->view->pageTitle = 'Comments Module Configuration'; + $form = new Comments_Form_Admin(); + if ($this->getRequest()->isPost()) { + $data = $this->getRequest()->getPost(); + + if ($form->isValid($data)) { + $values = $form->getValues(); + + foreach ($values as $key => $value) { + if ($key !== 'csrf' && !is_null($value)) { + $this->Setting->setConfig($key, $value, $this->moduleName); + } + } + } + + $form->populate($data); + } else { + $elements = $form->getElements(); + + foreach ($elements as $element) { + $name = $element->getName(); + + if ($name !== 'csrf' && $name !== 'submit') { + $value = $this->Setting->getValueByName($name, $this->moduleName); + + if (!is_null($value)) { + $form->setDefault($name, $value); + } + } + } + } + $this->view->form = $form; + session_start(); + } +} diff --git a/modules/comments/forms/Admin.php b/modules/comments/forms/Admin.php new file mode 100644 index 000000000..8793f601d --- /dev/null +++ b/modules/comments/forms/Admin.php @@ -0,0 +1,48 @@ +setName('comment_admin'); + $this->setMethod('POST'); + + $csrf = new Midas_Form_Element_Hash('csrf'); + $csrf->setSalt('qsJm32258fFFcBRjbSHHu628'); + $csrf->setDecorators(array('ViewHelper')); + + $sort = new Zend_Form_Element_Select('sortSelect'); + $sort->addMultiOption(COMMENTS_OLDEST_FIRST, 'Oldest First'); + $sort->addMultiOption(COMMENTS_NEWEST_FIRST, 'Newest First'); + $sort->setLabel('Sort Comments by'); + $sort->setRequired(true); + $sort->addValidator('NotEmpty', true); + + $this->addDisplayGroup(array($sort), 'global'); + + $submit = new Zend_Form_Element_Submit('submit'); + $submit->setLabel('Save'); + + $this->addElements(array($csrf, $sort, $submit)); + } +} diff --git a/modules/comments/models/pdo/ItemcommentModel.php b/modules/comments/models/pdo/ItemcommentModel.php index 2232a312a..799e88d05 100644 --- a/modules/comments/models/pdo/ItemcommentModel.php +++ b/modules/comments/models/pdo/ItemcommentModel.php @@ -28,8 +28,18 @@ class Comments_ItemcommentModel extends Comments_ItemcommentModelBase */ public function getComments($item, $limit = 10, $offset = 0) { + /** + * Change the order of the retrieval based upon the user setting. + * This changes the display order of the comments. + * 'ASC' shows the oldest comment first, 'DESC' shows the newest first. + */ + if (MidasLoader::loadModel('Setting')->getValueByName('sortSelect', 'comments') == COMMENTS_OLDEST_FIRST) { + $commentSort = 'ASC'; + } else { + $commentSort = 'DESC'; + } $sql = $this->database->select()->where('item_id = ?', $item->getKey())->limit($limit, $offset)->order( - 'date ASC' + 'date '.$commentSort ); $rowset = $this->database->fetchAll($sql); diff --git a/modules/comments/views/admin/index.phtml b/modules/comments/views/admin/index.phtml new file mode 100644 index 000000000..c4a14fd55 --- /dev/null +++ b/modules/comments/views/admin/index.phtml @@ -0,0 +1,29 @@ +declareVars('form', 'pageTitle'); +$this->headTitle($this->escape($this->pageTitle)); +?> + +
+

escape($this->pageTitle); ?>

+ form; ?> +

« Back to Modules Administration

+