function __construct() { JLog::add(new JLogEntry(__METHOD__, JLOG::DEBUG, 'lib_j2xml')); // Merge the default translation with the current translation $jlang = JFactory::getLanguage(); $jlang->load('lib_j2xml', JPATH_SITE, 'en-GB', true); $jlang->load('lib_j2xml', JPATH_SITE, $jlang->getDefault(), true); $jlang->load('lib_j2xml', JPATH_SITE, null, true); $db = JFactory::getDBO(); $user = JFactory::getUser(); $this->_nullDate = $db->getNullDate(); $this->_user_id = $user->get('id'); $this->_now = class_exists('JPlatform') && version_compare(JPlatform::RELEASE, '12', 'ge') ? JFactory::getDate()->format("%Y-%m-%d-%H-%M-%S") : JFactory::getDate()->toFormat("%Y-%m-%d-%H-%M-%S"); $this->_option = PHP_SAPI != 'cli' ? JRequest::getCmd('option') : 'cli_' . strtolower(get_class(JApplicationCli::getInstance())); $execute = class_exists('JPlatform') && version_compare(JPlatform::RELEASE, '12', 'ge') ? 'execute' : 'query'; $db->setQuery("\r\n\t\t\tCREATE TABLE IF NOT EXISTS `#__j2xml_usergroups` (\r\n\t\t\t\t`id` int(10) unsigned NOT NULL,\r\n\t\t\t\t`parent_id` int(10) unsigned NOT NULL DEFAULT '0',\r\n\t\t\t\t`title` varchar(100) NOT NULL DEFAULT ''\r\n\t\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;\r\n\t\t\t")->{$execute}(); $db->setQuery("\r\n\t\t\tTRUNCATE TABLE\r\n\t\t\t\t`#__j2xml_usergroups`;\r\n\t\t\t")->{$execute}(); $db->setQuery("\r\n\t\t\tINSERT INTO\r\n\t\t\t\t`#__j2xml_usergroups`\r\n\t\t\tSELECT\r\n\t\t\t\t`id`,`parent_id`,CONCAT('[\"',REPLACE(`title`,'\"','\\\"'),'\"]')\r\n\t\t\tFROM\r\n\t\t\t\t`#__usergroups`;\r\n\t\t\t")->{$execute}(); do { $db->setQuery("\r\n\t\t\t\tUPDATE\r\n\t\t\t\t\t`#__j2xml_usergroups` j\r\n\t\t\t\tINNER JOIN\r\n\t\t\t\t\t`#__usergroups` g\r\n\t\t\t\tON\r\n\t\t\t\t\tj.parent_id = g.id\r\n\t\t\t\tSET\r\n\t\t\t\t\tj.parent_id = g.parent_id,\r\n\t\t\t\t\tj.title = CONCAT('[\"',REPLACE(`g`.`title`,'\"','\\\"'), '\",', SUBSTR(`j`.`title`,2));\r\n\t\t\t\t")->{$execute}(); $n = $db->setQuery("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tCOUNT(*)\r\n\t\t\t\tFROM\r\n\t\t\t\t\t`#__j2xml_usergroups`\r\n\t\t\t\tWHERE\r\n\t\t\t\t\t`parent_id` > 0;\r\n\t\t\t\t")->loadResult(); } while ($n > 0); $db->setQuery("\r\n\t\t\tINSERT INTO\r\n\t\t\t\t`#__j2xml_usergroups`\r\n\t\t\tSELECT\r\n\t\t\t\t`id`,`parent_id`,`title`\r\n\t\t\tFROM\r\n\t\t\t\t`#__usergroups`;\r\n\t\t\t")->{$execute}(); $this->_usergroups = $db->setQuery("SELECT `title`,`id` FROM `#__j2xml_usergroups`")->loadAssocList('title', 'id'); }
/** * Overrides JGithub constructor to initialise the api property. * * @param mixed $input An optional argument to provide dependency injection for the application's * input object. If the argument is a JInputCli object that object will become * the application's input object, otherwise a default input object is created. * @param mixed $config An optional argument to provide dependency injection for the application's * config object. If the argument is a JRegistry object that object will become * the application's config object, otherwise a default config object is created. * @param mixed $dispatcher An optional argument to provide dependency injection for the application's * event dispatcher. If the argument is a JDispatcher object that object will become * the application's event dispatcher, if it is null then the default event dispatcher * will be created based on the application's loadDispatcher() method. * * @see loadDispatcher() * @since 11.1 */ public function __construct(JInputCli $input = null, JRegistry $config = null, JDispatcher $dispatcher = null) { parent::__construct($input, $config, $dispatcher); $options = new JRegistry(); $options->set('headers.Accept', 'application/vnd.github.html+json'); $this->api = new JGithub($options); }
public function __construct(JInputCli $input = null, JRegistry $config = null, JDispatcher $dispatcher = null) { // CLI Constructor parent::__construct($input, $config, $dispatcher); // Utilities $this->db = JFactory::getDBO(); $this->updater = JUpdater::getInstance(); $this->installer = JComponentHelper::getComponent('com_installer'); // Validate Log Path $logPath = $this->config->get('log_path'); if (!is_dir($logPath) || !is_writeable($logPath)) { $logPath = JPATH_BASE . '/logs'; if (!is_dir($logPath) || !is_writeable($logPath)) { $this->out('Log Path not found - ' . $logPath); } $this->config->set('log_path', JPATH_BASE . '/logs'); } // Validate Tmp Path $tmpPath = $this->config->get('tmp_path'); if (!is_writeable($tmpPath)) { $tmpPath = JPATH_BASE . '/tmp'; if (!is_dir($tmpPath) || !is_writeable($tmpPath)) { $this->out('Tmp Path not found - ' . $tmpPath); } $this->config->set('tmp_path', JPATH_BASE . '/tmp'); } // Push to Global Config $config = JFactory::getConfig(); $config->set('tmp_path', $this->config->get('tmp_path')); $config->set('log_path', $this->config->get('log_path')); }
/** * Class constructor. * * This constructor invokes the parent JApplicationCli class constructor, * and then creates a connector to the database so that it is * always available to the application when needed. * */ public function __construct() { // Call the parent __construct method so it bootstraps the application class. parent::__construct(); jimport('joomla.database.database'); // Note, this will throw an exception if there is an error // creating the database connection. $this->dbo = JDatabase::getInstance(array('driver' => $this->get('dbDriver'), 'host' => $this->get('dbHost'), 'user' => $this->get('dbUser'), 'password' => $this->get('dbPass'), 'database' => $this->get('dbName'), 'prefix' => $this->get('dbPrefix'))); }
/** * Class constructor. * * This constructor invokes the parent JApplicationCli class constructor, * and then creates a connector to the database so that it is * always available to the application when needed. * * @since 11.3 * @throws JDatabaseException */ public function __construct() { // Call the parent __construct method so it bootstraps the application class. parent::__construct(); jimport('joomla.database.database'); $this->dbo = JFactory::getDbo(); $this->app = JFactory::getApplication('site'); $this->config = JFactory::getConfig(); }
/** * CONSTRUCTOR * @param object $subject The object to observe * @param object $params The object that holds the plugin parameters * @since 1.5 */ function __construct() { JLog::add(new JLogEntry(__METHOD__, JLOG::DEBUG, 'lib_j2xml')); $execute = class_exists('JPlatform') && version_compare(JPlatform::RELEASE, '12', 'ge') ? 'execute' : 'query'; $db = JFactory::getDBO(); $db->setQuery("\r\n\t\t\t\t\tCREATE TABLE IF NOT EXISTS `#__j2xml_usergroups` (\r\n\t\t\t\t\t\t`id` int(10) unsigned NOT NULL,\r\n\t\t\t\t\t\t`parent_id` int(10) unsigned NOT NULL DEFAULT '0',\r\n\t\t\t\t\t\t`title` varchar(100) NOT NULL DEFAULT ''\r\n\t\t\t\t\t) ENGINE=InnoDB DEFAULT CHARSET=utf8;\r\n\t\t\t\t\t")->{$execute}(); $db->setQuery("\r\n\t\t\t\t\tTRUNCATE TABLE\r\n\t\t\t\t\t\t`#__j2xml_usergroups`;\r\n\t\t\t\t\t")->{$execute}(); $db->setQuery("\r\n\t\t\t\t\tINSERT INTO\r\n\t\t\t\t\t\t`#__j2xml_usergroups`\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t`id`,`parent_id`,CONCAT('[\"',REPLACE(`title`,'\"','\\\"'),'\"]')\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\t`#__usergroups`;\r\n\t\t\t\t\t")->{$execute}(); do { $db->setQuery("\r\n\t\t\t\t\tUPDATE\r\n\t\t\t\t\t\t`#__j2xml_usergroups` j\r\n\t\t\t\t\tINNER JOIN\r\n\t\t\t\t\t\t`#__usergroups` g\r\n\t\t\t\t\tON\r\n\t\t\t\t\t\tj.parent_id = g.id\r\n\t\t\t\t\tSET\r\n\t\t\t\t\t\tj.parent_id = g.parent_id,\r\n\t\t\t\t\t\tj.title = CONCAT('[\"',REPLACE(`g`.`title`,'\"','\\\"'), '\",', SUBSTR(`j`.`title`,2));\r\n\t\t\t\t\t")->{$execute}(); $n = $db->setQuery("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tCOUNT(*)\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\t`#__j2xml_usergroups`\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t`parent_id` > 0;\r\n\t\t\t\t\t")->loadResult(); } while ($n > 0); $this->option = PHP_SAPI != 'cli' ? JRequest::getCmd('option') : 'cli_' . strtolower(get_class(JApplicationCli::getInstance())); }
function invoke($numParams, &$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6, $fnSuffix) { // ensure that we are running in a joomla context // we've not yet figured out how to bootstrap joomla, so we should // not execute hooks if joomla is not loaded if (defined('_JEXEC')) { //Invoke the Joomla plugin system to observe to civicrm events. jimport('joomla.plugin.helper'); jimport('cms.plugin.helper'); // Joomla 3.2 JPluginHelper::importPlugin('civicrm'); // get app based on cli or web if (PHP_SAPI != 'cli') { $app = JFactory::getApplication('administrator'); } else { // condition on Joomla version if (version_compare(JVERSION, '3.0', 'lt')) { $app = JCli::getInstance(); } else { $app = JApplicationCli::getInstance(); } } $result = $app->triggerEvent($fnSuffix, array(&$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6)); $moduleResult = $this->commonInvoke($numParams, $arg1, $arg2, $arg3, $arg4, $arg5, $arg6, $fnSuffix, 'joomla'); if (!empty($moduleResult) && is_array($moduleResult)) { if (empty($result)) { $result = $moduleResult; } else { if (is_array($moduleResult)) { $result = array_merge($result, $moduleResult); } } } if (!empty($result)) { // collapse result returned from hooks // CRM-9XXX $finalResult = array(); foreach ($result as $res) { if (!is_array($res)) { $res = array($res); } $finalResult = array_merge($finalResult, $res); } $result = $finalResult; } return $result; } }
/** * Class constructor. * * This constructor invokes the parent JApplicationCli class constructor, * and then creates a connector to the database so that it is * always available to the application when needed. * * @since 11.3 * @throws JDatabaseException */ public function __construct() { // Call the parent __construct method so it bootstraps the application class. parent::__construct(); // // Prepare the logger. // // Include the JLog class. jimport('joomla.log.log'); // Get the date so that we can roll the logs over a time interval. $date = JFactory::getDate()->format('Y-m-d'); // Add the logger. JLog::addLogger(array('text_file' => 'cron.' . $date . '.php', 'text_file_path' => __DIR__ . '/logs')); // // Prepare the database connection. // jimport('joomla.database.database'); // Note, this will throw an exception if there is an error // creating the database connection. $this->dbo = JDatabase::getInstance(array('driver' => $this->get('dbDriver'), 'host' => $this->get('dbHost'), 'user' => $this->get('dbUser'), 'password' => $this->get('dbPass'), 'database' => $this->get('dbName'), 'prefix' => $this->get('dbPrefix'))); }
if (file_exists($jsonFile) == false) { return false; } $data = json_decode(file_get_contents($jsonFile), true); if (empty($data)) { return false; } $username = $data['credentials']['username']; $password = $data['credentials']['password']; $password = JUserHelper::hashPassword($password); $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->update($db->quoteName('#__users'))->set($db->quoteName('password') . ' = ' . $db->quote($password))->set($db->quoteName('username') . ' = ' . $db->quote($username))->where(array($db->quoteName('username') . '= "admin"')); $db->setQuery($query); $db->execute(); return true; } public function togglePlugin($name, $folder, $state = 0) { $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->update($db->quoteName('#__extensions'))->set($db->quoteName('enabled') . ' = ' . (int) $state)->where(array($db->quoteName('type') . '=' . $db->quote('plugin'), $db->quoteName('element') . '=' . $db->quote($name), $db->quoteName('folder') . '=' . $db->quote($folder))); $db->setQuery($query); $db->execute(); return true; } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('PbfCli')->execute();
if ($result instanceof Exception || $result === false) { $this->out(" FAILED"); return false; } else { $this->out(" SENT"); return true; } } function memUsage() { if (function_exists('memory_get_usage')) { $size = memory_get_usage(); $unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb'); return @round($size / pow(1024, $i = floor(log($size, 1024))), 2) . ' ' . $unit[$i]; } else { return "(unknown)"; } } function peakMemUsage() { if (function_exists('memory_get_peak_usage')) { $size = memory_get_peak_usage(); $unit = array('b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb'); return @round($size / pow(1024, $i = floor(log($size, 1024))), 2) . ' ' . $unit[$i]; } else { return "(unknown)"; } } } JApplicationCli::getInstance('AkeebaSubscriptionsExpirationNotifyApp')->execute();
* A command line cron job to attempt to remove files that should have been deleted at update. * * @package Joomla.Cli * @since 3.0 */ class DeletefilesCli extends JApplicationCli { /** * Entry point for CLI script * * @return void * * @since 3.0 */ public function doExecute() { // Import the dependencies jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); // We need the update script JLoader::register('JoomlaInstallerScript', JPATH_ADMINISTRATOR . '/components/com_admin/script.php'); // Instantiate the class $class = new JoomlaInstallerScript(); // Run the delete method $class->deleteUnexistingFiles(); } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('DeletefilesCli')->execute();
case 'plugin': $path = JPATH_PLUGINS . '/' . $group . '/' . $name . '/' . $name; break; case 'library': $path = JPATH_MANIFESTS . '/libraries/' . $name; break; default: throw new InvalidArgumentException(sprintf('Extension type "%s" does not support.', $type)); } return Jpath::clean($reference ? str_replace(JPATH_ROOT, '', $path) : $path); } protected function getTempPath() { $path = JPath::clean($this->get('tmp_path')); if (!is_dir($path)) { throw new Exception(sprintf('Dir "%s" does not exists.', $path)); } if (!is_writable($path)) { throw new Exception(sprintf('Dir "%s" does not writable.', $path)); } return $path; } protected static function error($text) { return sprintf("[%sm%s[0m", implode(';', self::$error), $text); } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('CreateExtensionCli')->execute();
$paymentNew->retry_counter -= 1; RApiPaymentHelper::updatePaymentCounter($paymentNew->id, $paymentNew->retry_counter); $this->out('Retry checks left: ' . $paymentNew->retry_counter); } $this->out('============================'); } } $this->out('============================'); $this->out('Done !'); } /** * Get payments pending for checking * * @return mixed */ public function getPaymentsForChecking() { $db = JFactory::getDbo(); $finalStatuses = array(); $retryTime = RBootstrap::getConfig('payment_time_between_payment_check_requests', 24); foreach ($this->finalStatuses as $status) { $finalStatuses[] = $db->q($status); } $query = $db->getQuery(true)->select('p.*')->from($db->qn('#__redcore_payments', 'p'))->where('p.status NOT IN (' . implode(',', $finalStatuses) . ')')->where('p.retry_counter > 0')->where('TIMESTAMPDIFF(HOUR, p.modified_date, NOW()) > ' . (int) $retryTime); $db->setQuery($query); $items = $db->loadObjectList(); return $items; } } JApplicationCli::getInstance('CheckpaymentsApplicationCli')->execute();
$header = substr($response, 0, $pos); $body = substr($response, $pos + 2 * strlen($crlf)); // parse headers $headers = array(); $lines = explode($crlf, $header); foreach ($lines as $line) { if (($pos = strpos($line, ':')) !== false) { $headers[strtolower(trim(substr($line, 0, $pos)))] = trim(substr($line, $pos + 1)); } } //redirection? if (isset($headers['location'])) { return $this->fetchURL($headers['location'], $method); } else { return $body; } break; case 'fopen': $opts = array('http' => array('method' => "GET", 'header' => "Accept-language: en\r\n")); $context = stream_context_create($opts); $result = @file_get_contents($url, false, $context); break; } return $result; } } // Load the version file require_once JPATH_ADMINISTRATOR . '/components/com_akeeba/version.php'; // Instanciate and run the application JApplicationCli::getInstance('AkeebaBackupCLI')->execute();
// Let's cleanup the downloaded archive and the temp folder if (JFolder::exists($package['extractdir'])) { JFolder::delete($package['extractdir']); } if (JFile::exists($package['packagefile'])) { JFile::delete($package['packagefile']); } if ($installed) { $this->out("Extension successfully installed"); $this->close(0); } else { $this->out("Extension installation failed"); $this->close(250); } } public function getTemplate($params = false) { return ''; } public function setHeader($name, $value, $replace = false) { return $this; } public function getCfg($name, $default = null) { return $this->get($name, $default); } } $app = JApplicationCli::getInstance('JoomlaExtensionInstallerCli'); JFactory::$application = $app; $app->execute();
$this->out("\t silent - yes/no. In case set to 'yes' only error messages are going to be displayed. Default set to 'yes'"); $this->out("\t section - section id of the section you want to crawl. If not given all valid sections are going to be crawled"); $this->out("\t timeLimit - time limit (in seconds - default 3600). If the limit has been reached while crawling the crawler will stop any actions"); $this->out("\t cleanCache - yes/no If set to 'yes' the cache will be invalidated first. Default set to 'yes'"); $this->out("\t loopTimeLimit - time limit (in seconds - default 15) for a loop. When reached a new loop is going to be started"); $this->out(''); $this->out("All settings are defined like name=value (timeLimit=100). The order doesn't matter"); $this->out(''); $this->out(''); } protected function SpOut($txt) { if (!$this->silent) { $this->out($txt); } } /** * @param SPRemote $connection * @param string $url * @return array */ protected function SpConnect($connection, $url) { $connection->setOptions(array('url' => $url, 'connecttimeout' => 10, 'returntransfer' => true, 'useragent' => self::USER_AGENT, 'header' => true, 'verbose' => false)); $content = $connection->exec(); $response = $connection->info(); return array($content, $response); } } JApplicationCli::getInstance('SobiProCrawler')->execute($argv);
$c = $c === 0 ? 1 : $c; try { // Process the batches. for ($i = 0; $i < $c; $i++) { // Set the batch start time. $this->_qtime = microtime(true); // Reset the batch offset. $state->batchOffset = 0; // Trigger the onBuildIndex event. JEventDispatcher::getInstance()->trigger('onBuildIndex'); // Batch reporting. $this->out(JText::sprintf('FINDER_CLI_BATCH_COMPLETE', $i + 1, round(microtime(true) - $this->_qtime, 3)), true); } } catch (Exception $e) { // Display the error $this->out($e->getMessage(), true); // Reset the indexer state. FinderIndexer::resetState(); // Close the app $this->close($e->getCode()); } // Total reporting. $this->out(JText::sprintf('FINDER_CLI_PROCESS_COMPLETE', round(microtime(true) - $this->_time, 3)), true); // Reset the indexer state. FinderIndexer::resetState(); } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('FinderCli')->execute();
/** * Class constructor. * * @param mixed $input An optional argument to provide dependency injection for the application's * input object. If the argument is a JInputCli object that object will become * the application's input object, otherwise a default input object is created. * @param mixed $config An optional argument to provide dependency injection for the application's * config object. If the argument is a JRegistry object that object will become * the application's config object, otherwise a default config object is created. * @param mixed $dispatcher An optional argument to provide dependency injection for the application's * event dispatcher. If the argument is a JEventDispatcher object that object will become * the application's event dispatcher, if it is null then the default event dispatcher * will be created based on the application's loadDispatcher() method. * * @see loadDispatcher() * @since 11.1 * @deprecated 12.3 Use JApplicationCli instead. */ public function __construct(JInputCli $input = null, JRegistry $config = null, JEventDispatcher $dispatcher = null) { JLog::add('JCli is deprecated. Use JApplicationCli instead.', JLog::WARNING, 'deprecated'); parent::__construct($input, $config, $dispatcher); }
/** * Load an object or array into the application configuration object. * * @param mixed $data Either an array or object to be loaded into the configuration object. * * @return JCli Instance of $this to allow chaining. * * @since 11.1 */ public function loadConfiguration($data) { // Execute the parent load method. parent::loadConfiguration($data); /* * Setup some application metadata options. This is useful if we ever want to write out startup scripts * or just have some sort of information available to share about things. */ // The application author name. This string is used in generating startup scripts and has // a maximum of 50 characters. $tmp = (string) $this->config->get('author_name', 'Joomla Platform'); $this->config->set('author_name', strlen($tmp) > 50 ? substr($tmp, 0, 50) : $tmp); // The application author email. This string is used in generating startup scripts. $tmp = (string) $this->config->get('author_email', '*****@*****.**'); $this->config->set('author_email', filter_var($tmp, FILTER_VALIDATE_EMAIL)); // The application name. This string is used in generating startup scripts. $tmp = (string) $this->config->get('application_name', 'JApplicationDaemon'); $this->config->set('application_name', (string) preg_replace('/[^A-Z0-9_-]/i', '', $tmp)); // The application description. This string is used in generating startup scripts. $tmp = (string) $this->config->get('application_description', 'A generic Joomla Platform application.'); $this->config->set('application_description', filter_var($tmp, FILTER_SANITIZE_STRING)); /* * Setup the application path options. This defines the default executable name, executable directory, * and also the path to the daemon process id file. */ // The application executable daemon. This string is used in generating startup scripts. $tmp = (string) $this->config->get('application_executable', basename($this->input->executable)); $this->config->set('application_executable', $tmp); // The home directory of the daemon. $tmp = (string) $this->config->get('application_directory', dirname($this->input->executable)); $this->config->set('application_directory', $tmp); // The pid file location. This defaults to a path inside the /tmp directory. $name = $this->config->get('application_name'); $tmp = (string) $this->config->get('application_pid_file', strtolower('/tmp/' . $name . '/' . $name . '.pid')); $this->config->set('application_pid_file', $tmp); /* * Setup the application identity options. It is important to remember if the default of 0 is set for * either UID or GID then changing that setting will not be attempted as there is no real way to "change" * the identity of a process from some user to root. */ // The user id under which to run the daemon. $tmp = (int) $this->config->get('application_uid', 0); $options = array('options' => array('min_range' => 0, 'max_range' => 65000)); $this->config->set('application_uid', filter_var($tmp, FILTER_VALIDATE_INT, $options)); // The group id under which to run the daemon. $tmp = (int) $this->config->get('application_gid', 0); $options = array('options' => array('min_range' => 0, 'max_range' => 65000)); $this->config->set('application_gid', filter_var($tmp, FILTER_VALIDATE_INT, $options)); // Option to kill the daemon if it cannot switch to the chosen identity. $tmp = (bool) $this->config->get('application_require_identity', 1); $this->config->set('application_require_identity', $tmp); /* * Setup the application runtime options. By default our execution time limit is infinite obviously * because a daemon should be constantly running unless told otherwise. The default limit for memory * usage is 128M, which admittedly is a little high, but remember it is a "limit" and PHP's memory * management leaves a bit to be desired :-) */ // The maximum execution time of the application in seconds. Zero is infinite. $tmp = $this->config->get('max_execution_time'); if ($tmp !== null) { $this->config->set('max_execution_time', (int) $tmp); } // The maximum amount of memory the application can use. $tmp = $this->config->get('max_memory_limit', '256M'); if ($tmp !== null) { $this->config->set('max_memory_limit', (string) $tmp); } return $this; }
// You can also apply input filters found in the JFilterInput class. // Try running this file like this: // $ ./run.php -f one2 $value = $this->input->get('f', 0, 'INT'); $this->out(sprintf('%25s = %s', 'f (cast to int)', var_export($value, true))); // Print out all the remaining command line arguments used to run this file. if (false == empty($this->input->args)) { $this->out(); $this->out('These are the remaining arguments passed:'); $this->out(); // Unallocated arguments are found in $this->input->args. // Try running the file like this: // $ ./run.php -f foo bar foreach ($this->input->args as $arg) { $this->out($arg); } } // Print a blank line at the end. $this->out(); } } // Wrap the execution in a try statement to catch any exceptions thrown anywhere in the script. try { // Instantiate the application object, passing the class name to JApplicationCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('ECR_COM_NAME')->execute(); } catch (Exception $e) { // An exception has been caught, just echo the message. fwrite(STDOUT, $e->getMessage() . "\n"); exit($e->getCode()); }
} /** * A. */ class JPath { /** * @param $input * * @return mixed */ public static function clean($input) { return $input; } } /* * Main. */ try { //-- Execute the application. $application = JApplicationCli::getInstance('EasyCreator'); JFactory::$application = $application; $application->execute(); exit(0); } catch (Exception $e) { //-- An exception has been caught, just echo the message. fwrite(STDOUT, $e->getMessage() . "\n"); echo $e->getTraceAsString(); exit($e->getCode()); }
case 4: $tp = "High"; break; case 5: $tp = "Very High"; break; } return $tp; } private function _SendCronEmail($theMessage, $theUser) { $mailer = JFactory::getMailer(); $sender = array($this->mailfrom, $this->fromname); $mailer->setSender($sender); if (!empty($this->mailcc)) { $cc = array($this->mailcc); $mailer->addCC($cc); } if (!empty($this->mailbcc)) { $bcc = array($this->mailbcc); $mailer->addBCC($bcc); } $mailer->addRecipient($theUser); $mailer->setSubject($this->subject); $mailer->isHTML(true); $mailer->setBody($theMessage); $mailer->Send(); } } JApplicationCli::getInstance('PFTaskExpiryNotifierCron')->execute();
/** * Returns a reference to the global JApplicationCli object, only creating it if it doesn't already exist. * * This method must be invoked as: $cli = JApplicationCli::getInstance(); * * @param string $name The name (optional) of the JApplicationCli class to instantiate. * * @return JApplicationCli * * @since 11.1 */ public static function getInstance($name = null) { // Only create the object if it doesn't exist. if (empty(self::$instance)) { if (class_exists($name) && is_subclass_of($name, 'JApplicationCli')) { self::$instance = new $name(); } else { self::$instance = new JApplicationCli(); } } return self::$instance; }
create: Usage: create entry_name entry_value Creates a new entry in the keychain called "entry_name" with the plaintext value "entry_value". NOTE: This is an alias for change. change: Usage: change entry_name entry_value Updates the keychain entry called "entry_name" with the value "entry_value". delete: Usage: delete entry_name Removes an entry called "entry_name" from the keychain. read: Usage: read entry_name Outputs the plaintext value of "entry_name" from the keychain. init: Usage: init Creates a new passphrase file and prompts for a new passphrase. HELP; $this->out($help); } } try { JApplicationCli::getInstance('KeychainManager')->execute(); } catch (Exception $e) { echo $e->getMessage() . "\n"; exit(1); }
if (!defined('_JDEFINES')) { define('JPATH_BASE', dirname(__DIR__)); require_once JPATH_BASE . '/includes/defines.php'; } // Get the framework. require_once JPATH_LIBRARIES . '/import.legacy.php'; // Bootstrap the CMS libraries. require_once JPATH_LIBRARIES . '/cms.php'; /** * Cron job to trash expired cache data * * @package Joomla.Cli * @since 2.5 */ class GarbageCron extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 2.5 */ public function doExecute() { $cache = JFactory::getCache(); $cache->gc(); } } JApplicationCli::getInstance('GarbageCron')->execute();
* @since 3.0 */ class GenerateCss extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 3.0 */ public function doExecute() { $templates = array(JPATH_ADMINISTRATOR . '/templates/isis/less/template.less' => JPATH_ADMINISTRATOR . '/templates/isis/css/template.css', JPATH_ADMINISTRATOR . '/templates/isis/less/template-rtl.less' => JPATH_ADMINISTRATOR . '/templates/isis/css/template-rtl.css', JPATH_ADMINISTRATOR . '/templates/hathor/less/template.less' => JPATH_ADMINISTRATOR . '/templates/hathor/css/template.css', JPATH_ADMINISTRATOR . '/templates/hathor/less/colour_blue.less' => JPATH_ADMINISTRATOR . '/templates/hathor/css/colour_blue.css', JPATH_ADMINISTRATOR . '/templates/hathor/less/colour_brown.less' => JPATH_ADMINISTRATOR . '/templates/hathor/css/colour_brown.css', JPATH_ADMINISTRATOR . '/templates/hathor/less/colour_standard.less' => JPATH_ADMINISTRATOR . '/templates/hathor/css/colour_standard.css', JPATH_SITE . '/templates/protostar/less/template.less' => JPATH_SITE . '/templates/protostar/css/template.css', __DIR__ . '/less/bootstrap-extended.less' => JPATH_SITE . '/media/jui/css/bootstrap-extended.css', __DIR__ . '/less/bootstrap-rtl.less' => JPATH_SITE . '/media/jui/css/bootstrap-rtl.css'); // Load the RAD layer if (!defined('FOF_INCLUDED')) { require_once JPATH_LIBRARIES . '/fof/include.php'; } $less = new FOFLess(); $less->setFormatter(new FOFLessFormatterJoomla()); foreach ($templates as $source => $output) { try { $less->compileFile($source, $output); } catch (Exception $e) { echo $e->getMessage(); } } } } JApplicationCli::getInstance('GenerateCss')->execute();
* This script will fetch the update information for all extensions and store * them in the database, speeding up your administrator. * * @package Joomla.Cli * @since 2.5 */ class Updatecron extends JApplicationCli { /** * Entry point for the script * * @return void * * @since 2.5 */ public function doExecute() { // Get the update cache time $component = JComponentHelper::getComponent('com_installer'); $params = $component->params; $cache_timeout = $params->get('cachetimeout', 6, 'int'); $cache_timeout = 3600 * $cache_timeout; // Find all updates $this->out('Fetching updates...'); $updater = JUpdater::getInstance(); $updater->findUpdates(0, $cache_timeout); $this->out('Finished fetching updates'); } } JApplicationCli::getInstance('Updatecron')->execute();
print "\n\n"; print "\nMatching against " . count($rules) . " rules \n"; // Get all the log files that need to be processed. $files = JFolder::files(JPATH_BASE . "/logs", $filter = '.php'); foreach ($files as $file) { $logs = file_get_contents(JPATH_BASE . "/logs/" . $file); $matches = []; preg_match_all("/(.*)\t(.*) (.*)\t(.*)\t(.*)/", $logs, $matches); // regex based on the format in the Joomla JLogLoggerFormattedtext class // matches 1 will have date matches 2 will have priority matches 4 will have category and matches 5 message for ($i = 0; $i < count($matches); $i++) { $log_date = $matches[1][$i]; $log_level = $matches[2][$i]; $log_category = $matches[4][$i]; $log_message = $matches[5][$i]; $sig = md5($log_category . $log_level); if (isset($signatures[$sig])) { $rule = $signatures[$sig]; // Now process the log files checking each element against a sig and if it matches taking the appropriate action via the plugin. echo "Sig match for " . $matches[0][$i] . "\n"; JEventDispatcher::getInstance()->trigger("doSendLog", array(array("date" => $log_date, "level" => $log_level, "category" => $log_category, "log_message" => $log_message), $rule)); } } } // Push into the database so that we don't keep messaging using a variation of the signature } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('SimpleLoggerProcessLogs')->execute();
public function doExecute() { jimport('joomla.filesystem.file'); if (file_exists(JPATH_BASE . '/configuration.php') || file_exists(JPATH_BASE . '/config.php')) { $configfile = file_exists(JPATH_BASE . 'configuration.php') ? JPATH_BASE . '/config.php' : JPATH_BASE . '/configuration.php'; if (is_writable($configfile)) { $config = file_get_contents($configfile); //Do a simple replace for the CMS and old school applications $newconfig = str_replace('public $offline = \'0\'', 'public $offline = \'1\'', $config); // Newer applications generally use JSON instead. if (!$newconfig) { $newconfig = str_replace('"public $offline":"0"', '"public $offline":"1"', $config); } if (!$newconfig) { $this->out('This application does not have an offline configuration setting.'); } else { JFile::Write($configfile, &$newconfig); $this->out('Site is offline'); } } else { $this->out('The file is not writable, you need to change the file permissions first.'); $this->out(); } } else { $this->out('This application does not have a configuration file'); } $this->out(); } } JApplicationCli::getInstance('TakeOffline')->execute();
*/ function jgettext($string) { return $string; } /** * Dummy. */ class JUri { /** * Dummy. * * @static * @return string */ public static function root() { return ''; } } try { //-- Execute the application. JApplicationCli::getInstance('EcrCliBuilder')->execute(); exit(0); } catch (Exception $e) { //-- An exception has been caught, just echo the message. fwrite(STDOUT, $e->getMessage() . "\n"); exit($e->getCode()); } //try