public function index() { ipAddJs('Ip/Internal/Core/assets/js/jquery-ui/jquery-ui.js'); ipAddCss('Ip/Internal/Core/assets/js/jquery-ui/jquery-ui.css'); ipAddJs('Ip/Internal/Core/assets/js/easyXDM/easyXDM.min.js'); ipAddJs('Ip/Internal/Design/assets/options.js'); ipAddJs('Ip/Internal/Design/assets/market.js'); ipAddJs('Ip/Internal/Design/assets/design.js'); ipAddJs('Ip/Internal/Design/assets/pluginInstall.js'); ipAddJs('Ip/Internal/System/assets/market.js'); $model = Model::instance(); $themes = $model->getAvailableThemes(); $model = Model::instance(); $theme = $model->getTheme(ipConfig()->theme()); $options = $theme->getOptionsAsArray(); $themePlugins = $model->getThemePlugins(); $installedPlugins = \Ip\Internal\Plugins\Service::getActivePluginNames(); $notInstalledPlugins = array(); //filter plugins that are already installed foreach ($themePlugins as $plugin) { if (!empty($plugin['name']) && (!in_array($plugin['name'], $installedPlugins) || !is_dir(ipFile('Plugin/' . $plugin['name'])))) { $notInstalledPlugins[] = $plugin; } } if (isset($_SESSION['module']['design']['pluginNote'])) { $pluginNote = $_SESSION['module']['design']['pluginNote']; unset($_SESSION['module']['design']['pluginNote']); } else { $pluginNote = ''; } $data = array('pluginNote' => $pluginNote, 'theme' => $model->getTheme(ipConfig()->theme()), 'plugins' => $notInstalledPlugins, 'availableThemes' => $themes, 'marketUrl' => $model->getMarketUrl(), 'showConfiguration' => !empty($options), 'contentManagementUrl' => ipConfig()->baseUrl() . '?aa=Content.index', 'contentManagementText' => __('Manage content', 'Ip-admin', false)); $contentView = ipView('view/layout.php', $data); ipResponse()->setLayoutVariable('removeAdminContentWrapper', true); return $contentView->render(); }
private static function getPluginWidgetDirs() { $answer = array(); $plugins = \Ip\Internal\Plugins\Service::getActivePluginNames(); foreach ($plugins as $plugin) { $answer = array_merge($answer, static::findPluginWidgets($plugin)); } return $answer; }
/** * @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'); }
/** * @ignore */ public function _bindApplicationEvents() { // Parse event files: $coreModules = \Ip\Internal\Plugins\Model::getModules(); foreach ($coreModules as $module) { $this->bindPluginEvents($module, '\\Ip\\Internal'); } $plugins = \Ip\Internal\Plugins\Service::getActivePluginNames(); foreach ($plugins as $plugin) { $this->bindPluginEvents($plugin); } }
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); }