/** * @ignore */ public function modulesInit() { $translator = \Ip\ServiceLocator::translator(); $overrideDir = ipFile("file/translations/override/"); $plugins = \Ip\Internal\Plugins\Service::getActivePluginNames(); foreach ($plugins as $plugin) { $translationsDir = ipFile("Plugin/{$plugin}/translations/"); $translator->addTranslationFilePattern('json', $translationsDir, "{$plugin}-%s.json", $plugin); $translator->addTranslationFilePattern('json', $overrideDir, "{$plugin}-%s.json", $plugin); $translator->addTranslationFilePattern('json', $translationsDir, "{$plugin}-admin-%s.json", $plugin . '-admin'); $translator->addTranslationFilePattern('json', $overrideDir, "{$plugin}-admin-%s.json", $plugin . '-admin'); } foreach ($plugins as $plugin) { $routesFile = ipFile("Plugin/{$plugin}/routes.php"); $this->addFileRoutes($routesFile, $plugin); } $this->addFileRoutes(ipFile('Ip/Internal/Ecommerce/routes.php'), 'Ecommerce'); }
public static function sendUsageStatistics($data = array(), $timeout = 3) { if (!function_exists('curl_init')) { return; } if (!isset($data['action'])) { $data['action'] = 'Ping.default'; } if (!isset($data['php'])) { $data['php'] = phpversion(); } if (!isset($data['db'])) { $data['db'] = null; // todo: make a db type/version check stable to work during install and later on // if (class_exists('PDO')) { // $pdo = ipDb()->getConnection(); // if ($pdo) { // $data['db'] = $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION); // } // } } if (!isset($data['developmentEnvironment'])) { $data['developmentEnvironment'] = ipConfig()->get('developmentEnvironment'); } if (!isset($data['showErrors'])) { $data['showErrors'] = ipConfig()->get('showErrors'); } if (!isset($data['debugMode'])) { $data['debugMode'] = ipConfig()->get('debugMode'); } if (!isset($data['timezone'])) { $data['timezone'] = ipConfig()->get('timezone'); } if (!isset($data['data'])) { $data['data'] = array(); } if (!isset($data['websiteId'])) { $data['websiteId'] = ipStorage()->get('Ip', 'websiteId'); } if (!isset($data['websiteUrl'])) { $data['websiteUrl'] = ipConfig()->baseUrl(); } if (!isset($data['version'])) { $data['version'] = \Ip\Application::getVersion(); } if (!isset($data['locale'])) { $data['locale'] = \Ip\ServiceLocator::translator()->getAdminLocale(); } if (!isset($data['doSupport'])) { $data['doSupport'] = ipStorage()->get('Ip', 'getImpressPagesSupport'); } if (!isset($data['administrators'])) { $administrators = \Ip\Internal\Administrators\Model::getAll(); $adminCollection = array(); foreach ($administrators as $admin) { $permissions = \Ip\Internal\AdminPermissionsModel::getUserPermissions($admin['id']); $adminCollection[] = array('id' => $admin['id'], 'email' => $admin['email'], 'permissions' => $permissions); } $data['administrators'] = $adminCollection; } if (!isset($data['themes'])) { $data['themes'] = array('active' => ipConfig()->theme(), 'all' => \Ip\Internal\Design\Model::instance()->getAvailableThemes()); } if (!isset($data['plugins'])) { $plugins = \Ip\Internal\Plugins\Model::getAllPluginNames(); $activePlugins = \Ip\Internal\Plugins\Service::getActivePluginNames(); $pluginCollection = array(); foreach ($plugins as $pluginName) { $pluginCollection[] = array('name' => $pluginName, 'active' => in_array($pluginName, $activePlugins) ? true : false); } $data['plugins'] = $pluginCollection; } if (!isset($data['languages'])) { $data['languages'] = ipContent()->getLanguages(); } if (!isset($data['pages'])) { $result = array(); try { $table = ipTable('page'); $sql = "\n SELECT\n `languageCode` AS `language`, COUNT( 1 ) AS `quantity`\n FROM\n {$table}\n GROUP BY\n `languageCode`\n "; $result = ipDb()->fetchAll($sql); } catch (\Exception $e) { // Do nothing. } $data['pages'] = $result; } $postFields = 'data=' . urlencode(serialize($data)); // Use sockets instead of CURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, ipConfig()->get('usageStatisticsUrl', 'http://service.impresspages.org/stats')); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); // curl_setopt($ch, CURLOPT_REFERER, ipConfig()->baseUrl()); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_exec($ch); }
exit; } require_once __DIR__ . '/../Ip/Application.php'; $application = new \Ip\Application(__DIR__ . '/config.php'); $application->init(); $options = array('skipErrorHandler' => true); $application->prepareEnvironment($options); $options = array('skipInitEvents' => true, 'skipModuleInit' => true, 'translationsLanguageCode' => \Plugin\Install\Helper::$defaultLanguageCode); if (!empty($_REQUEST['lang']) && strlen($_REQUEST['lang']) == 2 && ctype_alpha($_REQUEST['lang'])) { $_SESSION['installationLanguage'] = $_REQUEST['lang']; } if (isset($_SESSION['installationLanguage'])) { $options['translationsLanguageCode'] = $_SESSION['installationLanguage']; } // Because module init is skipped, we have to initialize translations manually $translator = \Ip\ServiceLocator::translator(); $translator->setLocale($options['translationsLanguageCode']); $trPluginDir = ipFile('Plugin/Install/translations/'); $trOverrideDir = ipFile('file/translations/override/'); $translator->addTranslationFilePattern('json', $trPluginDir, 'Install-%s.json', 'Install'); $translator->addTranslationFilePattern('json', $trOverrideDir, 'Install-%s.json', 'Install'); $request = new \Plugin\Install\Request(); $request->setQuery($_GET); $request->setPost($_POST); $request->setServer($_SERVER); $request->setRequest($_REQUEST); \Ip\ServiceLocator::addRequest($request); $language = new \Ip\Language(null, $options['translationsLanguageCode'], null, null, null, 0, 'ltr'); ipContent()->_setCurrentLanguage($language); \Ip\ServiceLocator::dispatcher()->_bindInstallEvents(); if ($request->isGet()) {
/** * You can change translation locale for some code. * * @param string $languageCode * @param callable $closure this code will be executed in given language. * @return mixed old language or the result of closure. */ function ipSetTranslationLanguage($languageCode, \Closure $closure = null) { if ($closure) { $oldLanguage = ipSetTranslationLanguage($languageCode); $result = $closure(); ipSetTranslationLanguage($oldLanguage); return $result; } else { $oldLanguage = \Ip\ServiceLocator::translator()->getLocale(); \Ip\ServiceLocator::translator()->setLocale($languageCode); return $oldLanguage; } }