Пример #1
0
 /**
  * @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');
 }
Пример #2
0
 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);
 }
Пример #3
0
    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()) {
Пример #4
0
/**
 * 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;
    }
}