AAAAPK|>\Vmessages/index.htmlnuW+A PK|>\)messages/.htaccessnuW+A Order allow,deny Deny from all PK|>\NDmessages/default.phpnuW+Aescape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?>
items as $i => $item) : $canChange = $user->authorise('core.edit.state', 'com_messages'); ?>
message_id); ?> escape($item->subject); ?> state, $i, $canChange); ?> user_from; ?> date_time, JText::_('DATE_FORMAT_LC2')); ?>
pagination->getListFooter(); ?>
PK|>\) .htaccessnuW+A Order allow,deny Deny from all PK|>\V index.htmlnuW+A PK5>\8rr access.xmlnuW+A
PK5>\Vhelpers/html/index.htmlnuW+A PK5>\\?helpers/html/messages.phpnuW+A array('trash.png', 'messages.unpublish', 'JTRASHED', 'COM_MESSAGES_MARK_AS_UNREAD'), 1 => array('tick.png', 'messages.unpublish', 'COM_MESSAGES_OPTION_READ', 'COM_MESSAGES_MARK_AS_UNREAD'), 0 => array('publish_x.png', 'messages.publish', 'COM_MESSAGES_OPTION_UNREAD', 'COM_MESSAGES_MARK_AS_READ') ); $state = JArrayHelper::getValue($states, (int) $value, $states[0]); $html = JHtml::_('image', 'admin/'.$state[0], JText::_($state[2]), NULL, true); if ($canChange) { $html = '' .$html.''; } return $html; } } PK5>\)helpers/html/.htaccessnuW+A Order allow,deny Deny from all PK5>\Vhelpers/index.htmlnuW+A PK5>\oi[[helpers/messages.phpnuW+Aset($action->name, $user->authorise($action->name, 'com_messages')); } return $result; } /** * Get a list of filter options for the state of a module. * * @return array An array of JHtmlOption elements. */ static function getStateOptions() { // Build the filter options. $options = array(); $options[] = JHtml::_('select.option', '1', JText::_('COM_MESSAGES_OPTION_READ')); $options[] = JHtml::_('select.option', '0', JText::_('COM_MESSAGES_OPTION_UNREAD')); $options[] = JHtml::_('select.option', '-2', JText::_('JTRASHED')); return $options; } } PK5>\)helpers/.htaccessnuW+A Order allow,deny Deny from all PK5>\Ycc config.xmlnuW+A
PK5>\)views/.htaccessnuW+A Order allow,deny Deny from all PK5>\>ݒviews/message/tmpl/edit.phpnuW+A
  • form->getLabel('user_id_to'); ?> form->getInput('user_id_to'); ?>
  • form->getLabel('subject'); ?> form->getInput('subject'); ?>
  • form->getLabel('message'); ?> form->getInput('message'); ?>
PK5>\)views/message/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK5>\YCviews/message/tmpl/default.phpnuW+A
PK5>\Vviews/message/tmpl/index.htmlnuW+A PK5>\Vviews/message/index.htmlnuW+A PK5>\n]BQviews/message/view.html.phpnuW+Aform = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } parent::display($tpl); $this->addToolbar(); } /** * Add the page title and toolbar. * * @since 1.6 */ protected function addToolbar() { if ($this->getLayout() == 'edit') { JToolBarHelper::title(JText::_('COM_MESSAGES_WRITE_PRIVATE_MESSAGE'), 'new-privatemessage.png'); JToolBarHelper::save('message.save', 'COM_MESSAGES_TOOLBAR_SEND'); JToolBarHelper::cancel('message.cancel'); JToolBarHelper::help('JHELP_COMPONENTS_MESSAGING_WRITE'); } else { JToolBarHelper::title(JText::_('COM_MESSAGES_VIEW_PRIVATE_MESSAGE'), 'inbox.png'); $sender = JUser::getInstance($this->item->user_id_from); if ($sender->authorise('core.admin') || $sender->authorise('core.manage', 'com_messages') && $sender->authorise('core.login.admin')) { JToolBarHelper::custom('message.reply', 'restore.png', 'restore_f2.png', 'COM_MESSAGES_TOOLBAR_REPLY', false); } JToolBarHelper::cancel('message.cancel'); JToolBarHelper::help('JHELP_COMPONENTS_MESSAGING_READ'); } } } PK5>\)views/message/.htaccessnuW+A Order allow,deny Deny from all PK5>\)views/messages/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK5>\5y~views/messages/tmpl/default.phpnuW+Aescape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); ?>
items as $i => $item) : $canChange = $user->authorise('core.edit.state', 'com_messages'); ?>
pagination->getListFooter(); ?>
message_id); ?> escape($item->subject); ?> state, $i, $canChange); ?> user_from; ?> date_time, JText::_('DATE_FORMAT_LC2')); ?>
PK5>\Vviews/messages/tmpl/index.htmlnuW+A PK5>\(? views/messages/view.html.phpnuW+Aitems = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } parent::display($tpl); $this->addToolbar(); } /** * Add the page title and toolbar. * * @since 1.6 */ protected function addToolbar() { $state = $this->get('State'); $canDo = MessagesHelper::getActions(); JToolBarHelper::title(JText::_('COM_MESSAGES_MANAGER_MESSAGES'), 'inbox.png'); if ($canDo->get('core.create')) { JToolBarHelper::addNew('message.add'); } if ($canDo->get('core.edit.state')) { JToolBarHelper::divider(); JToolBarHelper::publish('messages.publish', 'COM_MESSAGES_TOOLBAR_MARK_AS_READ'); JToolBarHelper::unpublish('messages.unpublish', 'COM_MESSAGES_TOOLBAR_MARK_AS_UNREAD'); } if ($state->get('filter.state') == -2 && $canDo->get('core.delete')) { JToolBarHelper::divider(); JToolBarHelper::deleteList('', 'messages.delete', 'JTOOLBAR_EMPTY_TRASH'); } elseif ($canDo->get('core.edit.state')) { JToolBarHelper::divider(); JToolBarHelper::trash('messages.trash'); } //JToolBarHelper::addNew('module.add'); JToolBarHelper::divider(); $bar = JToolBar::getInstance('toolbar'); $bar->appendButton('Popup', 'options', 'COM_MESSAGES_TOOLBAR_MY_SETTINGS', 'index.php?option=com_messages&view=config&tmpl=component', 850, 400); if ($canDo->get('core.admin')) { JToolBarHelper::preferences('com_messages'); } JToolBarHelper::divider(); JToolBarHelper::help('JHELP_COMPONENTS_MESSAGING_INBOX'); } } PK5>\)views/messages/.htaccessnuW+A Order allow,deny Deny from all PK5>\Vviews/messages/index.htmlnuW+A PK5>\Vviews/config/index.htmlnuW+A PK5>\)views/config/tmpl/.htaccessnuW+A Order allow,deny Deny from all PK5>\33views/config/tmpl/default.phpnuW+A
PK5>\Vviews/config/tmpl/index.htmlnuW+A PK5>\7eeviews/config/view.html.phpnuW+Aform = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } // Bind the record to the form. $this->form->bind($this->item); parent::display($tpl); } } PK5>\)views/config/.htaccessnuW+A Order allow,deny Deny from all PK5>\Vviews/index.htmlnuW+A PK5>\tcontroller.phpnuW+AcheckEditId('com_messages.edit.message', $id)) { // Somehow the person just went to the form - we don't allow that. $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id)); $this->setMessage($this->getError(), 'error'); $this->setRedirect(JRoute::_('index.php?option=com_messages&view=messages', false)); return false; } parent::display(); // Load the submenu. MessagesHelper::addSubmenu(JRequest::getCmd('view', 'messages')); } } PK5>\= models/messages.phpnuW+AgetUserStateFromRequest($this->context.'.filter.search', 'filter_search'); $this->setState('filter.search', $search); $state = $this->getUserStateFromRequest($this->context.'.filter.state', 'filter_state', '', 'string'); $this->setState('filter.state', $state); // List state information. parent::populateState('a.date_time', 'desc'); } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and * different modules that might need different sets of data or different * ordering requirements. * * @param string A prefix for the store id. * * @return string A store id. */ protected function getStoreId($id = '') { // Compile the store id. $id .= ':'.$this->getState('filter.search'); $id .= ':'.$this->getState('filter.state'); return parent::getStoreId($id); } /** * Build an SQL query to load the list data. * * @return JDatabaseQuery */ protected function getListQuery() { // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); $user = JFactory::getUser(); // Select the required fields from the table. $query->select( $this->getState( 'list.select', 'a.*, '. 'u.name AS user_from' ) ); $query->from('#__messages AS a'); // Join over the users for message owner. $query->join('INNER', '#__users AS u ON u.id = a.user_id_from'); $query->where('a.user_id_to = '.(int) $user->get('id')); // Filter by published state. $state = $this->getState('filter.state'); if (is_numeric($state)) { $query->where('a.state = '.(int) $state); } elseif ($state === '') { $query->where('(a.state IN (0, 1))'); } // Filter by search in subject or message. $search = $this->getState('filter.search'); if (!empty($search)) { $search = $db->Quote('%'.$db->escape($search, true).'%', false); $query->where('a.subject LIKE '.$search.' OR a.message LIKE '.$search); } // Add the list ordering clause. $query->order($db->escape($this->getState('list.ordering', 'a.date_time')).' '.$db->escape($this->getState('list.direction', 'DESC'))); //echo nl2br(str_replace('#__','jos_',$query)); return $query; } } PK5>\ȳoomodels/forms/message.xmlnuW+A
PK5>\Vmodels/forms/index.htmlnuW+A PK5>\)models/forms/.htaccessnuW+A Order allow,deny Deny from all PK5>\Omodels/forms/config.xmlnuW+A
PK5>\DTmodels/fields/usermessages.phpnuW+AgetQuery(true); $query->select('id'); $query->from('#__usergroups'); $db->setQuery($query); $groups = $db->loadColumn(); // Check for a database error. if ($db->getErrorNum()) { JError::raiseNotice(500, $db->getErrorMsg()); return null; } foreach ($groups as $i=>$group) { if (JAccess::checkGroup($group, 'core.admin')) { continue; } if (!JAccess::checkGroup($group, 'core.manage', 'com_messages')) { unset($groups[$i]); continue; } if (!JAccess::checkGroup($group, 'core.login.admin')) { unset($groups[$i]); continue; } } return array_values($groups); } /** * Method to get the users to exclude from the list of users * * @return array|null array of users to exclude or null to to not exclude them * @since 1.6 */ protected function getExcluded() { return array(JFactory::getUser()->id); } } PK5>\Vmodels/fields/index.htmlnuW+A PK5>\)models/fields/.htaccessnuW+A Order allow,deny Deny from all PK5>\3models/message.phpnuW+AsetState('user.id', $user->get('id')); $messageId = (int) JRequest::getInt('message_id'); $this->setState('message.id', $messageId); $replyId = (int) JRequest::getInt('reply_id'); $this->setState('reply.id', $replyId); } /** * Check that recipient user is the one trying to delete and then call parent delete method * * @param array &$pks An array of record primary keys. * * @return boolean True if successful, false if an error occurs. * * @since 3.1 */ public function delete(&$pks) { $pks = (array) $pks; $table = $this->getTable(); $user = JFactory::getUser(); // Iterate the items to delete each one. foreach ($pks as $i => $pk) { if ($table->load($pk)) { if ($table->user_id_to !== $user->id) { // Prune items that you can't change. unset($pks[$i]); JError::raiseWarning(403, JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED')); return false; } } else { $this->setError($table->getError()); return false; } } return parent::delete($pks); } /** * Returns a Table object, always creating it. * * @param type The table type to instantiate * @param string A prefix for the table class name. Optional. * @param array Configuration array for model. Optional. * @return JTable A database object * @since 1.6 */ public function getTable($type = 'Message', $prefix = 'MessagesTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } /** * Method to get a single record. * * @param integer The id of the primary key. * @return mixed Object on success, false on failure. * @since 1.6 */ public function getItem($pk = null) { if (!isset($this->item)) { if ($this->item = parent::getItem($pk)) { // Prime required properties. if (empty($this->item->message_id)) { // Prepare data for a new record. if ($replyId = $this->getState('reply.id')) { // If replying to a message, preload some data. $db = $this->getDbo(); $query = $db->getQuery(true); $query->select('subject, user_id_from'); $query->from('#__messages'); $query->where('message_id = '.(int) $replyId); $message = $db->setQuery($query)->loadObject(); if ($error = $db->getErrorMsg()) { $this->setError($error); return false; } $this->item->set('user_id_to', $message->user_id_from); $re = JText::_('COM_MESSAGES_RE'); if (stripos($message->subject, $re) !== 0) { $this->item->set('subject', $re.$message->subject); } } } elseif ($this->item->user_id_to != JFactory::getUser()->id) { $this->setError(JText::_('JERROR_ALERTNOAUTHOR')); return false; } else { // Mark message read $db = $this->getDbo(); $query = $db->getQuery(true); $query->update('#__messages'); $query->set('state = 1'); $query->where('message_id = '.$this->item->message_id); $db->setQuery($query)->query(); } } // Get the user name for an existing messasge. if ($this->item->user_id_from && $fromUser = new JUser($this->item->user_id_from)) { $this->item->set('from_user_name', $fromUser->name); } } return $this->item; } /** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * @return JForm A JForm object on success, false on failure * @since 1.6 */ public function getForm($data = array(), $loadData = true) { // Get the form. $form = $this->loadForm('com_messages.message', 'message', array('control' => 'jform', 'load_data' => $loadData)); if (empty($form)) { return false; } return $form; } /** * Method to get the data that should be injected in the form. * * @return mixed The data for the form. * @since 1.6 */ protected function loadFormData() { // Check the session for previously entered form data. $data = JFactory::getApplication()->getUserState('com_messages.edit.message.data', array()); if (empty($data)) { $data = $this->getItem(); } return $data; } /** * Checks that the current user matches the message recipient and calls the parent publish method * * @param array &$pks A list of the primary keys to change. * @param integer $value The value of the published state. * * @return boolean True on success. * * @since 3.1 */ public function publish(&$pks, $value = 1) { $user = JFactory::getUser(); $table = $this->getTable(); $pks = (array) $pks; // Check that the recipient matches the current user foreach ($pks as $i => $pk) { $table->reset(); if ($table->load($pk)) { if ($table->user_id_to !== $user->id) { // Prune items that you can't change. unset($pks[$i]); JError::raiseWarning(403, JText::_('JLIB_APPLICATION_ERROR_EDITSTATE_NOT_PERMITTED')); return false; } } } return parent::publish($pks, $value); } /** * Method to save the form data. * * @param array The form data. * * @return boolean True on success. */ public function save($data) { $table = $this->getTable(); // Bind the data. if (!$table->bind($data)) { $this->setError($table->getError()); return false; } // Assign empty values. if (empty($table->user_id_from)) { $table->user_id_from = JFactory::getUser()->get('id'); } if (intval($table->date_time) == 0) { $table->date_time = JFactory::getDate()->toSql(); } // Check the data. if (!$table->check()) { $this->setError($table->getError()); return false; } // Load the recipient user configuration. $model = JModelLegacy::getInstance('Config', 'MessagesModel', array('ignore_request' => true)); $model->setState('user.id', $table->user_id_to); $config = $model->getItem(); if (empty($config)) { $this->setError($model->getError()); return false; } if ($config->get('locked', false)) { $this->setError(JText::_('COM_MESSAGES_ERR_SEND_FAILED')); return false; } // Store the data. if (!$table->store()) { $this->setError($table->getError()); return false; } if ($config->get('mail_on_new', true)) { // Load the user details (already valid from table check). $fromUser = JUser::getInstance($table->user_id_from); $toUser = JUser::getInstance($table->user_id_to); $debug = JFactory::getConfig()->get('debug_lang'); $default_language = JComponentHelper::getParams('com_languages')->get('administrator'); $lang = JLanguage::getInstance($toUser->getParam('admin_language', $default_language), $debug); $lang->load('com_messages', JPATH_ADMINISTRATOR); $siteURL = JURI::root() . 'administrator/index.php?option=com_messages&view=message&message_id='.$table->message_id; $sitename = JFactory::getApplication()->getCfg('sitename'); $subject = sprintf ($lang->_('COM_MESSAGES_NEW_MESSAGE_ARRIVED'), $sitename); $msg = sprintf ($lang->_('COM_MESSAGES_PLEASE_LOGIN'), $siteURL); JFactory::getMailer()->sendMail($fromUser->email, $fromUser->name, $toUser->email, $subject, $msg); } return true; } } PK5>\)models/.htaccessnuW+A Order allow,deny Deny from all PK5>\Vmodels/index.htmlnuW+A PK5>\ models/config.phpnuW+AsetState('user.id', $user->get('id')); // Load the parameters. $params = JComponentHelper::getParams('com_messages'); $this->setState('params', $params); } /** * Method to get a single record. * * @param integer The id of the primary key. * * @return mixed Object on success, false on failure. */ public function &getItem() { // Initialise variables. $item = new JObject; $db = $this->getDbo(); $query = $db->getQuery(true); $query->select('cfg_name, cfg_value'); $query->from('#__messages_cfg'); $query->where('user_id = '.(int) $this->getState('user.id')); $db->setQuery($query); $rows = $db->loadObjectList(); if ($error = $db->getErrorMsg()) { $this->setError($error); return false; } foreach ($rows as $row) { $item->set($row->cfg_name, $row->cfg_value); } return $item; } /** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * @return JForm A JForm object on success, false on failure * @since 1.6 */ public function getForm($data = array(), $loadData = true) { // Get the form. $form = $this->loadForm('com_messages.config', 'config', array('control' => 'jform', 'load_data' => $loadData)); if (empty($form)) { return false; } return $form; } /** * Method to save the form data. * * @param array The form data. * @return boolean True on success. */ public function save($data) { $db = $this->getDbo(); if ($userId = (int) $this->getState('user.id')) { $db->setQuery( 'DELETE FROM #__messages_cfg'. ' WHERE user_id = '. $userId ); $db->query(); if ($error = $db->getErrorMsg()) { $this->setError($error); return false; } $tuples = array(); foreach ($data as $k => $v) { $tuples[] = '('.$userId.', '.$db->Quote($k).', '.$db->Quote($v).')'; } if ($tuples) { $db->setQuery( 'INSERT INTO #__messages_cfg'. ' (user_id, cfg_name, cfg_value)'. ' VALUES '.implode(',', $tuples) ); $db->query(); if ($error = $db->getErrorMsg()) { $this->setError($error); return false; } } return true; } else { $this->setError('COM_MESSAGES_ERR_INVALID_USER'); return false; } } } PK5>\"Econtrollers/message.phpnuW+AsetRedirect('index.php?option=com_messages&view=message&layout=edit&reply_id='.$replyId); } else { $this->setMessage(JText::_('COM_MESSAGES_INVALID_REPLY_ID')); $this->setRedirect('index.php?option=com_messages&view=messages'); } } } PK5>\)controllers/.htaccessnuW+A Order allow,deny Deny from all PK5>\W֙controllers/messages.phpnuW+A true)) { $model = parent::getModel($name, $prefix, $config); return $model; } } PK5>\x:controllers/config.phpnuW+AgetModel('Config', 'MessagesModel'); $data = JRequest::getVar('jform', array(), 'post', 'array'); // Validate the posted data. $form = $model->getForm(); if (!$form) { JError::raiseError(500, $model->getError()); return false; } $data = $model->validate($form, $data); // Check for validation errors. if ($data === false) { // Get the validation messages. $errors = $model->getErrors(); // Push up to three validation messages out to the user. for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++) { if ($errors[$i] instanceof Exception) { $app->enqueueMessage($errors[$i]->getMessage(), 'warning'); } else { $app->enqueueMessage($errors[$i], 'warning'); } } // Redirect back to the main list. $this->setRedirect(JRoute::_('index.php?option=com_messages&view=messages', false)); return false; } // Attempt to save the data. if (!$model->save($data)) { // Redirect back to the main list. $this->setMessage(JText::sprintf('JERROR_SAVE_FAILED', $model->getError()), 'warning'); $this->setRedirect(JRoute::_('index.php?option=com_messages&view=messages', false)); return false; } // Redirect to the list screen. $this->setMessage(JText::_('COM_MESSAGES_CONFIG_SAVED')); $this->setRedirect(JRoute::_('index.php?option=com_messages&view=messages', false)); return true; } } PK5>\Vcontrollers/index.htmlnuW+A PK5>\)tables/.htaccessnuW+A Order allow,deny Deny from all PK5>\Vtables/index.htmlnuW+A PK5>\j5 5 tables/message.phpnuW+Auser_id_from); if (empty($user->id)) { $this->setError(JText::_('COM_MESSAGES_ERROR_INVALID_FROM_USER')); return false; } $user = new JUser($this->user_id_to); if (empty($user->id)) { $this->setError(JText::_('COM_MESSAGES_ERROR_INVALID_TO_USER')); return false; } if (empty($this->subject)) { $this->setError(JText::_('COM_MESSAGES_ERROR_INVALID_SUBJECT')); return false; } if (empty($this->message)) { $this->setError(JText::_('COM_MESSAGES_ERROR_INVALID_MESSAGE')); return false; } return true; } /** * Method to set the publishing state for a row or list of rows in the database * table. The method respects checked out rows by other users and will attempt * to checkin rows that it can after adjustments are made. * * @param mixed An optional array of primary key values to update. If not * set the instance property value is used. * @param integer The publishing state. eg. [0 = unpublished, 1 = published] * @param integer The user id of the user performing the operation. * @return boolean True on success. * @since 1.6 */ public function publish($pks = null, $state = 1, $userId = 0) { // Initialise variables. $k = $this->_tbl_key; // Sanitize input. JArrayHelper::toInteger($pks); $userId = (int) $userId; $state = (int) $state; // If there are no primary keys set check to see if the instance key is set. if (empty($pks)) { if ($this->$k) { $pks = array($this->$k); } // Nothing to set publishing state on, return false. else { $this->setError(JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); return false; } } // Build the WHERE clause for the primary keys. $where = $k.' IN ('.implode(',', $pks).')'; // Update the publishing state for rows with the given primary keys. $this->_db->setQuery( 'UPDATE '.$this->_db->quoteName($this->_tbl). ' SET '.$this->_db->quoteName('state').' = '.(int) $state . ' WHERE ('.$where.')' ); $this->_db->query(); // Check for a database error. if ($this->_db->getErrorNum()) { $this->setError($this->_db->getErrorMsg()); return false; } // If the JTable instance value is in the list of primary keys that were set, set the instance. if (in_array($this->$k, $pks)) { $this->state = $state; } $this->setError(''); return true; } } PK5>\P=-- messages.phpnuW+Aauthorise('core.manage', 'com_messages')) { return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); } $controller = JControllerLegacy::getInstance('Messages'); $controller->execute(JRequest::getCmd('task')); $controller->redirect(); PK5>\- messages.xmlnuW+A com_messages Joomla! Project April 2006 (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 2.5.0 COM_MESSAGES_XML_DESCRIPTION config.xml controller.php index.html messages.php controllers helpers models tables views language/en-GB.com_messages.ini PK|>\Vmessages/index.htmlnuW+APK|>\)bmessages/.htaccessnuW+APK|>\ND#messages/default.phpnuW+APK|>\) .htaccessnuW+APK|>\V index.htmlnuW+APK5>\8rr  access.xmlnuW+APK5>\Vhelpers/html/index.htmlnuW+APK5>\\?2helpers/html/messages.phpnuW+APK5>\)helpers/html/.htaccessnuW+APK5>\Vhelpers/index.htmlnuW+APK5>\oi[[,helpers/messages.phpnuW+APK5>\)!helpers/.htaccessnuW+APK5>\Ycc "config.xmlnuW+APK5>\)($views/.htaccessnuW+APK5>\>ݒ$views/message/tmpl/edit.phpnuW+APK5>\)*views/message/tmpl/.htaccessnuW+APK5>\YC+views/message/tmpl/default.phpnuW+APK5>\V0views/message/tmpl/index.htmlnuW+APK5>\V1views/message/index.htmlnuW+APK5>\n]BQw1views/message/view.html.phpnuW+APK5>\)8views/message/.htaccessnuW+APK5>\)Q9views/messages/tmpl/.htaccessnuW+APK5>\5y~:views/messages/tmpl/default.phpnuW+APK5>\V6Iviews/messages/tmpl/index.htmlnuW+APK5>\(? Iviews/messages/view.html.phpnuW+APK5>\){Rviews/messages/.htaccessnuW+APK5>\VBSviews/messages/index.htmlnuW+APK5>\VSviews/config/index.htmlnuW+APK5>\)Tviews/config/tmpl/.htaccessnuW+APK5>\33Tviews/config/tmpl/default.phpnuW+APK5>\VZ\views/config/tmpl/index.htmlnuW+APK5>\7ee\views/config/view.html.phpnuW+APK5>\)t`views/config/.htaccessnuW+APK5>\V9aviews/index.htmlnuW+APK5>\tacontroller.phpnuW+APK5>\= gmodels/messages.phpnuW+APK5>\ȳooumodels/forms/message.xmlnuW+APK5>\Vxmodels/forms/index.htmlnuW+APK5>\) ymodels/forms/.htaccessnuW+APK5>\Oymodels/forms/config.xmlnuW+APK5>\DT }models/fields/usermessages.phpnuW+APK5>\Vmodels/fields/index.htmlnuW+APK5>\)Kmodels/fields/.htaccessnuW+APK5>\3models/message.phpnuW+APK5>\)cmodels/.htaccessnuW+APK5>\V"models/index.htmlnuW+APK5>\ models/config.phpnuW+APK5>\"Econtrollers/message.phpnuW+APK5>\)controllers/.htaccessnuW+APK5>\W֙controllers/messages.phpnuW+APK5>\x:controllers/config.phpnuW+APK5>\Vcontrollers/index.htmlnuW+APK5>\)Htables/.htaccessnuW+APK5>\Vtables/index.htmlnuW+APK5>\j5 5 gtables/message.phpnuW+APK5>\P=-- messages.phpnuW+APK5>\- Gmessages.xmlnuW+APK99