Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/contact.php.tar
Назад
home/wuectly/www/components/com_contact/controllers/contact.php 0000604 00000016561 15245536024 0021217 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Controller for single contact view * * @since 1.5.19 */ class ContactControllerContact extends JControllerForm { /** * Method to get a model object, loading it if required. * * @param string $name The model name. Optional. * @param string $prefix The class prefix. Optional. * @param array $config Configuration array for model. Optional. * * @return JModelLegacy The model. * * @since 1.6.4 */ public function getModel($name = '', $prefix = '', $config = array('ignore_request' => true)) { return parent::getModel($name, $prefix, array('ignore_request' => false)); } /** * Method to submit the contact form and send an email. * * @return boolean True on success sending the email. False on failure. * * @since 1.5.19 */ public function submit() { // Check for request forgeries. $this->checkToken(); $app = JFactory::getApplication(); $model = $this->getModel('contact'); $stub = $this->input->getString('id'); $id = (int) $stub; // Get the data from POST $data = $this->input->post->get('jform', array(), 'array'); // Get item $model->setState('filter.published', 1); $contact = $model->getItem($id); // Get item params, take menu parameters into account if necessary $active = $app->getMenu()->getActive(); $stateParams = clone $model->getState()->get('params'); // If the current view is the active item and a contact view for this contact, then the menu item params take priority if ($active && strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $item->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($stateParams); } else { // Current view is not a single contact, so the contact params take priority here $stateParams->merge($contact->params); $contact->params = $stateParams; } // Check if the contact form is enabled if (!$contact->params->get('show_email_form')) { $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } // Check for a valid session cookie if ($contact->params->get('validate_session', 0)) { if (JFactory::getSession()->getState() !== 'active') { JError::raiseWarning(403, JText::_('JLIB_ENVIRONMENT_SESSION_INVALID')); // Save the data in the session. $app->setUserState('com_contact.contact.data', $data); // Redirect back to the contact form. $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } } // Contact plugins JPluginHelper::importPlugin('contact'); $dispatcher = JEventDispatcher::getInstance(); // Validate the posted data. $form = $model->getForm(); if (!$form) { JError::raiseError(500, $model->getError()); return false; } if (!$model->validate($form, $data)) { $errors = $model->getErrors(); foreach ($errors as $error) { $errorMessage = $error; if ($error instanceof Exception) { $errorMessage = $error->getMessage(); } $app->enqueueMessage($errorMessage, 'error'); } $app->setUserState('com_contact.contact.data', $data); $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false)); return false; } // Validation succeeded, continue with custom handlers $results = $dispatcher->trigger('onValidateContact', array(&$contact, &$data)); foreach ($results as $result) { if ($result instanceof Exception) { return false; } } // Passed Validation: Process the contact plugins to integrate with other applications $dispatcher->trigger('onSubmitContact', array(&$contact, &$data)); // Send the email $sent = false; if (!$contact->params->get('custom_reply')) { $sent = $this->_sendEmail($data, $contact, $contact->params->get('show_email_copy', 0)); } // Set the success message if it was a success if (!($sent instanceof Exception)) { $msg = JText::_('COM_CONTACT_EMAIL_THANKS'); } else { $msg = ''; } // Flush the data from the session $app->setUserState('com_contact.contact.data', null); // Redirect if it is set in the parameters, otherwise redirect back to where we came from if ($contact->params->get('redirect')) { $this->setRedirect($contact->params->get('redirect'), $msg); } else { $this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id=' . $stub . '&catid=' . $contact->catid, false), $msg); } return true; } /** * Method to get a model object, loading it if required. * * @param array $data The data to send in the email. * @param stdClass $contact The user information to send the email to * @param boolean $emailCopyToSender True to send a copy of the email to the user. * * @return boolean True on success sending the email, false on failure. * * @since 1.6.4 */ private function _sendEmail($data, $contact, $emailCopyToSender) { $app = JFactory::getApplication(); if ($contact->email_to == '' && $contact->user_id != 0) { $contact_user = JUser::getInstance($contact->user_id); $contact->email_to = $contact_user->get('email'); } $mailfrom = $app->get('mailfrom'); $fromname = $app->get('fromname'); $sitename = $app->get('sitename'); $name = $data['contact_name']; $email = JStringPunycode::emailToPunycode($data['contact_email']); $subject = $data['contact_subject']; $body = $data['contact_message']; // Prepare email body $prefix = JText::sprintf('COM_CONTACT_ENQUIRY_TEXT', JUri::base()); $body = $prefix . "\n" . $name . ' <' . $email . '>' . "\r\n\r\n" . stripslashes($body); // Load the custom fields if (!empty($data['com_fields']) && $fields = FieldsHelper::getFields('com_contact.mail', $contact, true, $data['com_fields'])) { $output = FieldsHelper::render( 'com_contact.mail', 'fields.render', array( 'context' => 'com_contact.mail', 'item' => $contact, 'fields' => $fields, ) ); if ($output) { $body .= "\r\n\r\n" . $output; } } $mail = JFactory::getMailer(); $mail->addRecipient($contact->email_to); $mail->addReplyTo($email, $name); $mail->setSender(array($mailfrom, $fromname)); $mail->setSubject($sitename . ': ' . $subject); $mail->setBody($body); $sent = $mail->Send(); // If we are supposed to copy the sender, do so. // Check whether email copy function activated if ($emailCopyToSender == true && !empty($data['contact_email_copy'])) { $copytext = JText::sprintf('COM_CONTACT_COPYTEXT_OF', $contact->name, $sitename); $copytext .= "\r\n\r\n" . $body; $copysubject = JText::sprintf('COM_CONTACT_COPYSUBJECT_OF', $subject); $mail = JFactory::getMailer(); $mail->addRecipient($email); $mail->addReplyTo($email, $name); $mail->setSender(array($mailfrom, $fromname)); $mail->setSubject($copysubject); $mail->setBody($copytext); $sent = $mail->Send(); } return $sent; } } home/wuectly/www/components/com_contact/contact.php 0000604 00000001536 15245561534 0016651 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2005 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('ContactHelperRoute', JPATH_COMPONENT . '/helpers/route.php'); $input = JFactory::getApplication()->input; if ($input->get('view') === 'contacts' && $input->get('layout') === 'modal') { if (!JFactory::getUser()->authorise('core.create', 'com_contact')) { JFactory::getApplication()->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'warning'); return; } JFactory::getLanguage()->load('com_contact', JPATH_ADMINISTRATOR); } $controller = JControllerLegacy::getInstance('Contact'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); home/wuectly/www/administrator/components/com_contact/contact.php 0000604 00000001126 15245570243 0021521 0 ustar 00 <?php /** * @package Joomla.Administrator * @subpackage com_contact * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('behavior.tabstate'); if (!JFactory::getUser()->authorise('core.manage', 'com_contact')) { throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403); } $controller = JControllerLegacy::getInstance('contact'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); home/wuectly/www/plugins/content/contact/contact.php 0000604 00000006370 15245572041 0016755 0 ustar 00 <?php /** * @package Joomla.Plugin * @subpackage Content.Contact * * @copyright (C) 2014 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * Contact Plugin * * @since 3.2 */ class PlgContentContact extends JPlugin { /** * Database object * * @var JDatabaseDriver * @since 3.3 */ protected $db; /** * Plugin that retrieves contact information for contact * * @param string $context The context of the content being passed to the plugin. * @param mixed &$row An object with a "text" property * @param mixed $params Additional parameters. See {@see PlgContentContent()}. * @param integer $page Optional page number. Unused. Defaults to zero. * * @return boolean True on success. */ public function onContentPrepare($context, &$row, $params, $page = 0) { $allowed_contexts = array('com_content.category', 'com_content.article', 'com_content.featured'); if (!in_array($context, $allowed_contexts)) { return true; } // Return if we don't have valid params or don't link the author if (!($params instanceof Registry) || !$params->get('link_author')) { return true; } // Return if an alias is used if ((int) $this->params->get('link_to_alias', 0) === 0 && $row->created_by_alias != '') { return true; } // Return if we don't have a valid article id if (!isset($row->id) || !(int) $row->id) { return true; } $contact = $this->getContactData($row->created_by); $row->contactid = $contact->contactid; $row->webpage = $contact->webpage; $row->email = $contact->email_to; $url = $this->params->get('url', 'url'); if ($row->contactid && $url === 'url') { JLoader::register('ContactHelperRoute', JPATH_SITE . '/components/com_contact/helpers/route.php'); $row->contact_link = JRoute::_(ContactHelperRoute::getContactRoute($contact->contactid . ':' . $contact->alias, $contact->catid)); } elseif ($row->webpage && $url === 'webpage') { $row->contact_link = $row->webpage; } elseif ($row->email && $url === 'email') { $row->contact_link = 'mailto:' . $row->email; } else { $row->contact_link = ''; } return true; } /** * Retrieve Contact * * @param int $userId Id of the user who created the article * * @return mixed|null|integer */ protected function getContactData($userId) { static $contacts = array(); if (isset($contacts[$userId])) { return $contacts[$userId]; } $query = $this->db->getQuery(true); $query->select('MAX(contact.id) AS contactid, contact.alias, contact.catid, contact.webpage, contact.email_to'); $query->from($this->db->quoteName('#__contact_details', 'contact')); $query->where('contact.published = 1'); $query->where('contact.user_id = ' . (int) $userId); if (JLanguageMultilang::isEnabled() === true) { $query->where('(contact.language in ' . '(' . $this->db->quote(JFactory::getLanguage()->getTag()) . ',' . $this->db->quote('*') . ') ' . ' OR contact.language IS NULL)'); } $this->db->setQuery($query); $contacts[$userId] = $this->db->loadObject(); return $contacts[$userId]; } } home/wuectly/www/components/com_contact/models/contact.php 0000604 00000045057 15245573343 0020143 0 ustar 00 <?php /** * @package Joomla.Site * @subpackage com_contact * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; /** * Single item model for a contact * * @package Joomla.Site * @subpackage com_contact * @since 1.5 */ class ContactModelContact extends JModelForm { /** * The name of the view for a single item * * @since 1.6 */ protected $view_item = 'contact'; /** * A loaded item * * @since 1.6 */ protected $_item = null; /** * Model context string. * * @var string */ protected $_context = 'com_contact.contact'; /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @return void * * @since 1.6 */ protected function populateState() { $app = JFactory::getApplication(); $this->setState('contact.id', $app->input->getInt('id')); $this->setState('params', $app->getParams()); $user = JFactory::getUser(); if ((!$user->authorise('core.edit.state', 'com_contact')) && (!$user->authorise('core.edit', 'com_contact'))) { $this->setState('filter.published', 1); $this->setState('filter.archived', 2); } } /** * Method to get the contact form. * The base form is loaded from XML and then an event is fired * * @param array $data An optional array of data for the form to interrogate. * @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) { $form = $this->loadForm('com_contact.contact', 'contact', array('control' => 'jform', 'load_data' => true)); if (empty($form)) { return false; } $temp = clone $this->getState('params'); $contact = $this->_item[$this->getState('contact.id')]; $active = JFactory::getApplication()->getMenu()->getActive(); if ($active) { // If the current view is the active item and a contact view for this contact, then the menu item params take priority if (strpos($active->link, 'view=contact') && strpos($active->link, '&id=' . (int) $contact->id)) { // $contact->params are the contact params, $temp are the menu item params // Merge so that the menu item params take priority $contact->params->merge($temp); } else { // Current view is not a single contact, so the contact params take priority here // Merge the menu item params with the contact params so that the contact params take priority $temp->merge($contact->params); $contact->params = $temp; } } else { // Merge so that contact params take priority $temp->merge($contact->params); $contact->params = $temp; } if (!$contact->params->get('show_email_copy', 0)) { $form->removeField('contact_email_copy'); } return $form; } /** * Method to get the data that should be injected in the form. * * @return array The default data is an empty array. * * @since 1.6.2 */ protected function loadFormData() { $data = (array) JFactory::getApplication()->getUserState('com_contact.contact.data', array()); if (empty($data['language']) && JLanguageMultilang::isEnabled()) { $data['language'] = JFactory::getLanguage()->getTag(); } // Add contact id to contact form data, so fields plugin can work properly if (empty($data['catid'])) { $data['catid'] = $this->getItem()->catid; } $this->preprocessData('com_contact.contact', $data); return $data; } /** * Gets a contact * * @param integer $pk Id for the contact * * @return mixed Object or null * * @since 1.6.0 */ public function &getItem($pk = null) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('contact.id'); if ($this->_item === null) { $this->_item = array(); } if (!isset($this->_item[$pk])) { try { $db = $this->getDbo(); $query = $db->getQuery(true); // Changes for sqlsrv $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($this->getState('item.select', 'a.*') . ',' . $case_when . ',' . $case_when1) ->from('#__contact_details AS a') // Join on category table. ->select('c.title AS category_title, c.alias AS category_alias, c.access AS category_access') ->join('LEFT', '#__categories AS c on c.id = a.catid') // Join over the categories to get parent category titles ->select('parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias') ->join('LEFT', '#__categories as parent ON parent.id = c.parent_id') ->where('a.id = ' . (int) $pk); // Filter by start and end dates. $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); // Filter by published state. $published = $this->getState('filter.published'); $archived = $this->getState('filter.archived'); if (is_numeric($published)) { $query->where('(a.published = ' . (int) $published . ' OR a.published =' . (int) $archived . ')') ->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } $db->setQuery($query); $data = $db->loadObject(); if (empty($data)) { JError::raiseError(404, JText::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND')); } // Check for published state if filter set. if ((is_numeric($published) || is_numeric($archived)) && (($data->published != $published) && ($data->published != $archived))) { JError::raiseError(404, JText::_('COM_CONTACT_ERROR_CONTACT_NOT_FOUND')); } /** * In case some entity params have been set to "use global", those are * represented as an empty string and must be "overridden" by merging * the component and / or menu params here. */ $registry = new Registry($data->params); $data->params = clone $this->getState('params'); $data->params->merge($registry); $registry = new Registry($data->metadata); $data->metadata = $registry; // Some contexts may not use tags data at all, so we allow callers to disable loading tag data if ($this->getState('load_tags', true)) { $data->tags = new JHelperTags; $data->tags->getItemTags('com_contact.contact', $data->id); } // Compute access permissions. if (($access = $this->getState('filter.access'))) { // If the access filter has been set, we already know this user can view. $data->params->set('access-view', true); } else { // If no access filter is set, the layout takes some responsibility for display of limited information. $user = JFactory::getUser(); $groups = $user->getAuthorisedViewLevels(); if ($data->catid == 0 || $data->category_access === null) { $data->params->set('access-view', in_array($data->access, $groups)); } else { $data->params->set('access-view', in_array($data->access, $groups) && in_array($data->category_access, $groups)); } } $this->_item[$pk] = $data; } catch (Exception $e) { $this->setError($e); $this->_item[$pk] = false; } } if ($this->_item[$pk]) { $this->buildContactExtendedData($this->_item[$pk]); } return $this->_item[$pk]; } /** * Load extended data (profile, articles) for a contact * * @param object $contact The contact object * * @return void */ protected function buildContactExtendedData($contact) { $db = $this->getDbo(); $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); $published = $this->getState('filter.published'); // If we are showing a contact list, then the contact parameters take priority // So merge the contact parameters with the merged parameters if ($this->getState('params')->get('show_contact_list')) { $this->getState('params')->merge($contact->params); } // Get the com_content articles by the linked user if ((int) $contact->user_id && $this->getState('params')->get('show_articles')) { $query = $db->getQuery(true) ->select('a.id') ->select('a.title') ->select('a.state') ->select('a.access') ->select('a.catid') ->select('a.created') ->select('a.language') ->select('a.publish_up'); // SQL Server changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($case_when1 . ',' . $case_when) ->from('#__content as a') ->join('LEFT', '#__categories as c on a.catid=c.id') ->where('a.created_by = ' . (int) $contact->user_id) ->where('a.access IN (' . $groups . ')') ->order('a.publish_up DESC'); // Filter per language if plugin published if (JLanguageMultilang::isEnabled()) { $query->where('a.language IN (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } if (is_numeric($published)) { $query->where('a.state IN (1,2)') ->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } // Number of articles to display from config/menu params $articles_display_num = $this->getState('params')->get('articles_display_num', 10); // Use contact setting? if ($articles_display_num === 'use_contact') { $articles_display_num = $contact->params->get('articles_display_num', 10); // Use global? if ((string) $articles_display_num === '') { $articles_display_num = JComponentHelper::getParams('com_contact')->get('articles_display_num', 10); } } $db->setQuery($query, 0, (int) $articles_display_num); $articles = $db->loadObjectList(); $contact->articles = $articles; } else { $contact->articles = null; } // Get the profile information for the linked user JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models', 'UsersModel'); $userModel = JModelLegacy::getInstance('User', 'UsersModel', array('ignore_request' => true)); $data = $userModel->getItem((int) $contact->user_id); JPluginHelper::importPlugin('user'); // Get the form. JForm::addFormPath(JPATH_SITE . '/components/com_users/models/forms'); JForm::addFieldPath(JPATH_SITE . '/components/com_users/models/fields'); JForm::addFormPath(JPATH_SITE . '/components/com_users/model/form'); JForm::addFieldPath(JPATH_SITE . '/components/com_users/model/field'); $form = JForm::getInstance('com_users.profile', 'profile'); // Get the dispatcher. $dispatcher = JEventDispatcher::getInstance(); // Trigger the form preparation event. $dispatcher->trigger('onContentPrepareForm', array($form, $data)); // Trigger the data preparation event. $dispatcher->trigger('onContentPrepareData', array('com_users.profile', $data)); // Load the data into the form after the plugins have operated. $form->bind($data); $contact->profile = $form; } /** * Gets the query to load a contact item * * @param integer $pk The item to be loaded * * @return mixed The contact object on success, false on failure * * @throws Exception On database failure * @deprecated 4.0 Use ContactModelContact::getItem() instead */ protected function getContactQuery($pk = null) { // @todo Cache on the fingerprint of the arguments $db = $this->getDbo(); $nullDate = $db->quote($db->getNullDate()); $nowDate = $db->quote(JFactory::getDate()->toSql()); $user = JFactory::getUser(); $pk = (!empty($pk)) ? $pk : (int) $this->getState('contact.id'); $query = $db->getQuery(true); if ($pk) { // Sqlsrv changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('cc.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('cc.id'); $case_when1 .= $query->concatenate(array($c_id, 'cc.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select( 'a.*, cc.access as category_access, cc.title as category_name, ' . $case_when . ',' . $case_when1 ) ->from('#__contact_details AS a') ->join('INNER', '#__categories AS cc on cc.id = a.catid') ->where('a.id = ' . (int) $pk); $published = $this->getState('filter.published'); if (is_numeric($published)) { $query->where('a.published IN (1,2)') ->where('cc.published IN (1,2)'); } $groups = implode(',', $user->getAuthorisedViewLevels()); $query->where('a.access IN (' . $groups . ')'); try { $db->setQuery($query); $result = $db->loadObject(); if (empty($result)) { return false; } } catch (Exception $e) { $this->setError($e->getMessage()); return false; } if ($result) { $contactParams = new Registry($result->params); // If we are showing a contact list, then the contact parameters take priority // So merge the contact parameters with the merged parameters if ($this->getState('params')->get('show_contact_list')) { $this->getState('params')->merge($contactParams); } // Get the com_content articles by the linked user if ((int) $result->user_id && $this->getState('params')->get('show_articles')) { $query = $db->getQuery(true) ->select('a.id') ->select('a.title') ->select('a.state') ->select('a.access') ->select('a.catid') ->select('a.created') ->select('a.language') ->select('a.publish_up'); // SQL Server changes $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select($case_when1 . ',' . $case_when) ->from('#__content as a') ->join('LEFT', '#__categories as c on a.catid=c.id') ->where('a.created_by = ' . (int) $result->user_id) ->where('a.access IN (' . $groups . ')') ->order('a.publish_up DESC'); // Filter per language if plugin published if (JLanguageMultilang::isEnabled()) { $query->where('a.language IN (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } if (is_numeric($published)) { $query->where('a.state IN (1,2)') ->where('(a.publish_up = ' . $nullDate . ' OR a.publish_up <= ' . $nowDate . ')') ->where('(a.publish_down = ' . $nullDate . ' OR a.publish_down >= ' . $nowDate . ')'); } // Number of articles to display from config/menu params $articles_display_num = $this->getState('params')->get('articles_display_num', 10); // Use contact setting? if ($articles_display_num === 'use_contact') { $articles_display_num = $contactParams->get('articles_display_num', 10); // Use global? if ((string) $articles_display_num === '') { $articles_display_num = JComponentHelper::getParams('com_contact')->get('articles_display_num', 10); } } $db->setQuery($query, 0, (int) $articles_display_num); $articles = $db->loadObjectList(); $result->articles = $articles; } else { $result->articles = null; } // Get the profile information for the linked user JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_users/models', 'UsersModel'); $userModel = JModelLegacy::getInstance('User', 'UsersModel', array('ignore_request' => true)); $data = $userModel->getItem((int) $result->user_id); JPluginHelper::importPlugin('user'); $form = new JForm('com_users.profile'); // Get the dispatcher. $dispatcher = JEventDispatcher::getInstance(); // Trigger the form preparation event. $dispatcher->trigger('onContentPrepareForm', array($form, $data)); // Trigger the data preparation event. $dispatcher->trigger('onContentPrepareData', array('com_users.profile', $data)); // Load the data into the form after the plugins have operated. $form->bind($data); $result->profile = $form; $this->contact = $result; return $result; } } return false; } /** * Increment the hit counter for the contact. * * @param integer $pk Optional primary key of the contact to increment. * * @return boolean True if successful; false otherwise and internal error set. * * @since 3.0 */ public function hit($pk = 0) { $input = JFactory::getApplication()->input; $hitcount = $input->getInt('hitcount', 1); if ($hitcount) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('contact.id'); $table = JTable::getInstance('Contact', 'ContactTable'); $table->hit($pk); } return true; } } home/wuectly/www/plugins/editors-xtd/contact/contact.php 0000604 00000002622 15245607712 0017551 0 ustar 00 <?php /** * @package Joomla.Plugin * @subpackage Editors-xtd.contact * * @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Editor Contact button * * @since 3.7.0 */ class PlgButtonContact extends JPlugin { /** * Load the language file on instantiation. * * @var boolean * @since 3.7.0 */ protected $autoloadLanguage = true; /** * Display the button * * @param string $name The name of the button to add * * @return JObject The button options as JObject * * @since 3.7.0 */ public function onDisplay($name) { $user = JFactory::getUser(); if ($user->authorise('core.create', 'com_contact') || $user->authorise('core.edit', 'com_contact') || $user->authorise('core.edit.own', 'com_contact')) { // The URL for the contacts list $link = 'index.php?option=com_contact&view=contacts&layout=modal&tmpl=component&' . JSession::getFormToken() . '=1&editor=' . $name; $button = new JObject; $button->modal = true; $button->class = 'btn'; $button->link = $link; $button->text = JText::_('PLG_EDITORS-XTD_CONTACT_BUTTON_CONTACT'); $button->name = 'address'; $button->options = "{handler: 'iframe', size: {x: 800, y: 500}}"; return $button; } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка