Ip\Internal\System\Model::sendUsageStatistics PHP Method

sendUsageStatistics() public static method

public static sendUsageStatistics ( $data = [], $timeout = 3 )
    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);
    }

Usage Example

Esempio n. 1
0
 public function removeAdminIsAutogeneratedAjax()
 {
     ipRequest()->mustBePost();
     // Removing temporary data
     ipStorage()->remove('Ip', 'adminIsAutogenerated');
     // If user wants to change credentials, redirecting to Administrators list
     if (ipRequest()->getPost('action') == 'change') {
         // todo: redirect and automatically select user and open popup
         $redirect = ipActionUrl(array('aa' => 'Administrators.index')) . "#/hash=&administrator=" . \Ip\Internal\Admin\Backend::userId();
         \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminChange'));
         return \Ip\Response\JsonRpc::result(array('redirect' => $redirect));
     }
     \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminKeep'));
     return \Ip\Response\JsonRpc::result(array('close' => 1));
 }
All Usage Examples Of Ip\Internal\System\Model::sendUsageStatistics