Пример #1
0
 /**
  * Method to enable/disable updates stream
  *
  * @param   object  $element	The JXMLElement object representing the <field /> tag for the
  * 								form field object.
  * @param   mixed   $value		The form field value to validate.
  * @param   string  $group		The field name group control value. This acts as as an array
  * 								container for the field. For example if the field has name="foo"
  * 								and the group value is set to "bar" then the full field name
  * 								would end up being "bar[foo]".
  * @param   object  $input		An optional JRegistry object with the entire data set to validate
  * 								against the entire form.
  * @param   object  $form		The form object for which the field is being tested.
  *
  * @return  boolean  True if the value is valid, false otherwise.
  *
  * @since   11.1
  * @throws  JException on invalid rule.
  */
 public function test(&$element, $value, $group = null, &$input = null, &$form = null)
 {
     require_once JPATH_ROOT . '/modules/mod_pwebcontact/helpers/updateserver.php';
     $updateServer = new modPWebContactUpdateServer();
     if ($value == 1 or $value == 2) {
         $updateServer->add();
         // 2nd argument: null = commercial, false = free
     } else {
         $updateServer->delete();
     }
     // change option in other instances of module
     $db = JFactory::getDBO();
     $query = $db->getQuery(true);
     $query->select('id, params')->from('#__modules')->where('module = ' . $db->quote('mod_pwebcontact'))->where('params NOT LIKE ' . $db->quote('%' . $db->escape('"feed":"' . $value . '"') . '%'))->where('id != ' . (int) JFactory::getApplication()->input->getInt('id'));
     $db->setQuery($query);
     try {
         $modules = $db->loadObjectList();
     } catch (Exception $e) {
         $modules = false;
     }
     if ($modules) {
         foreach ($modules as $module) {
             $module->params = preg_replace('/"feed":"\\d+"/i', '"feed":"' . $value . '"', $module->params);
             $query->clear()->update('#__modules')->set('params = ' . $db->quote($db->escape($module->params)))->where('id = ' . (int) $module->id);
             $db->setQuery($query);
             try {
                 $db->execute();
             } catch (Exception $e) {
             }
         }
     }
     return true;
 }
Пример #2
0
 /**
  * Called after any type of action
  *
  * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)
  * @param   JAdapterInstance  $adapter  The object responsible for running this script
  *
  * @return  boolean  True on success
  */
 public function postflight($route, JAdapterInstance $adapter)
 {
     $parent = $adapter->getParent();
     // install update server for new installation or when updating module older than 3.2.4
     require_once $parent->getPath('source') . '/helpers/updateserver.php';
     $version = $parent->getManifest()->version;
     $updateServer = new modPWebContactUpdateServer();
     // delete old md5 files
     $updateServer->deleteMd5($parent->getPath('extension_root') . '/form');
     // add new md5 file
     if ($download_id = $updateServer->getMd5($parent->getPath('source'))) {
         $buffer = '';
         JFile::write($parent->getPath('extension_root') . '/form/' . $download_id, $buffer);
     }
     $updateServer->add($version, $download_id);
 }
Пример #3
0
 protected function getInput()
 {
     $app = JFactory::getApplication();
     $doc = JFactory::getDocument();
     $html = $params = null;
     if (version_compare(JVERSION, '2.5.5') == -1) {
         // Joomla minimal version
         $app->enqueueMessage(JText::sprintf('MOD_PWEBCONTACT_CONFIG_MSG_JOOMLA_VERSION', '2.5.5', '<a href="index.php?option=com_joomlaupdate" target="_blank">', '</a>'), 'error');
     } else {
         JHtml::_('stylesheet', 'jui/icomoon.css', array(), true);
         // check Joomla Global Mailer configuration
         $this->checkMailer();
         // Module ID
         $module_id = $app->input->getInt('id', 0);
         // check module configuration
         if ($module_id > 0) {
             // get params
             require_once JPATH_ROOT . '/modules/mod_pwebcontact/helper.php';
             $params = modPwebcontactHelper::getParams($module_id);
             if ($params->get('rtl', 2) == 2) {
                 // warn about auto RTL
                 $langs = JLanguage::getKnownLanguages(JPATH_ROOT);
                 foreach ($langs as $lang) {
                     if ((bool) $lang['rtl']) {
                         $app->enqueueMessage(JText::_('MOD_PWEBCONTACT_CONFIG_RTL_TIP'), 'notice');
                         break;
                     }
                 }
             }
             // check if debug mode is enabled
             if ($params->get('debug', 0)) {
                 $app->enqueueMessage(JText::_('MOD_PWEBCONTACT_CONFIG_MSG_DISABLE_DEBUG'), 'notice');
             }
             // check if demo mode is enabled
             if ($params->get('demo', 0)) {
                 $app->enqueueMessage(JText::_('MOD_PWEBCONTACT_CONFIG_MSG_DEMO'), 'warning');
             }
             // check if upload directory is writable
             if ($params->get('show_upload', 0)) {
                 $this->checkUploadPath('/media/mod_pwebcontact/upload/' . $module_id . '/');
             }
             // check Admin Tools Pro exception
             if (is_file(JPATH_ROOT . '/components/com_ajax/ajax.php')) {
                 $this->checkAdminToolsPro();
             } elseif ($params->get('root_path', 0)) {
                 $this->checkAdminToolsPro('mod_pwebcontact_ajax.php');
             } else {
                 $this->checkAdminToolsPro('modules/mod_pwebcontact/ajax.php');
             }
             // check JoomlArt T3 Framework templates
             $this->checkJAT3v2CacheExclude('mod_pwebcontact');
             // check module details configuration
             $this->checkModuleDetails($module_id);
         }
         // check if Ajax Interface is installed and enabled
         if ($this->checkAjaxComponent() === true or version_compare(JVERSION, '3.2.0') >= 0) {
             // Hide root path option
             $doc->addScriptDeclaration('jQuery(document).ready(function($){' . '$("#' . $this->formControl . '_' . $this->group . '_root_path").closest("li,div.control-group").hide();' . '});');
         }
         // check if Bootstrap is updated to version 2.3.1
         if (version_compare(JVERSION, '3.0.0') >= 0 and version_compare(JVERSION, '3.1.4') == -1) {
             $this->checkBootstrap();
         }
         // check functions for image creation
         $this->checkImageTextCreation();
         // check if cache directory is writable
         // check if direct access to files in cache directory is allowed
         $this->checkCacheDir();
     }
     // add documentation toolbar button
     if (version_compare(JVERSION, '3.0.0') == -1) {
         $button = '<a href="' . $this->documentation . '" style="font-weight:bold;border-color:#025A8D;background-color:#DBE4E9;" target="_blank"><span class="icon-32-help"> </span> ' . JText::_('MOD_PWEBCONTACT_DOCUMENTATION') . '</a>';
     } else {
         $button = '<a href="' . $this->documentation . '" class="btn btn-small btn-info" target="_blank"><i class="icon-support"></i> ' . JText::_('MOD_PWEBCONTACT_DOCUMENTATION') . '</a>';
     }
     $bar = JToolBar::getInstance();
     $bar->appendButton('Custom', $button, $this->extension . '-docs');
     JText::script('MOD_PWEBCONTACT_PREVIEW_BUTTON');
     JText::script('MOD_PWEBCONTACT_COPY_BUTTON');
     JText::script('MOD_PWEBCONTACT_INTEGRATION_COMPONENT_VIEW');
     // add admin styles and script
     $doc->addStyleSheet(JUri::root(true) . '/media/mod_pwebcontact/css/admin.css');
     if (class_exists('JHtmlJquery')) {
         JHtml::_('jquery.framework');
         $doc->addScript(JUri::root(true) . '/media/mod_pwebcontact/js/jquery.admin.js');
     }
     // disable Joomla Form Validator which slows down saving big forms
     $doc->addScriptDeclaration('window.addEvent("domready", function(){' . 'document.forms.adminForm.className = document.forms.adminForm.className.replace("form-validate", "");' . 'document.formvalidator = {' . 'setHandler: function(name, fn, en){},' . 'attachToForm: function(form){},' . 'validate: function(el){return true},' . 'isValid: function(form){return true},' . 'handleResponse: function(state, el){}' . '};' . '});');
     // check if user is authorized to manage extensions
     if (JFactory::getUser()->authorise('core.manage', 'com_installer')) {
         // add feeds script
         if ($this->value == 1 or $this->value == 3) {
             require_once JPATH_ROOT . '/modules/mod_pwebcontact/helpers/updateserver.php';
             $updateServer = new modPWebContactUpdateServer();
             $doc->addScriptDeclaration($updateServer->getFeedScript());
         }
     } else {
         $doc->addScriptDeclaration('if(typeof jQuery!=="undefined"){' . 'jQuery(document).ready(function($){' . '$("#' . $this->formControl . '_' . $this->group . '_feed").closest("li,div.control-group").hide();' . '})}');
     }
     return parent::getInput() . $html;
 }