コード例 #1
0
 /**
  * Retrieves Analytics.js Providers
  * @return array $providors
  */
 private function getAnalyticsProviders()
 {
     $providers = Yii::app()->cache->get('analyticsjs_providers');
     if ($providers === false) {
         $analytics = new AnalyticsSettings();
         $rules = $analytics->rules();
         unset($analytics);
         // Init the array
         $providers = array();
         // Retrieve all the providors that are enabled
         $response = Yii::app()->db->createCommand('SELECT REPLACE(`key`, "analyticsjs_", "") AS `key`, value FROM `configuration` WHERE `key` LIKE "analyticsjs_%_enabled" AND value = 1')->queryAll();
         foreach ($response as $element) {
             $k = $element['key'];
             $provider = explode('_', str_replace("__", " ", str_replace("___", ".", $k)));
             $provider = reset($provider);
             $sqlProvider = str_replace(" ", "__", str_replace(".", "___", $provider));
             $data = Yii::app()->db->createCommand('SELECT REPLACE(`key`, "analyticsjs_", "") AS `key`, value FROM `configuration` WHERE `key` LIKE "analyticsjs_' . $sqlProvider . '%" AND `key` != "analyticsjs_' . $sqlProvider . '_enabled"')->queryAll();
             foreach ($data as $el) {
                 $k = $el['key'];
                 $v = $el['value'];
                 $p = explode('_', str_replace("__", " ", str_replace("___", ".", $k)));
                 if ($v !== "") {
                     $thisRule = 'string';
                     foreach ($rules as $rule) {
                         if (strpos($rule[0], 'analyticsjs_' . $k) !== false) {
                             $thisRule = $rule[1];
                         }
                     }
                     if ($thisRule == 'boolean') {
                         if ($v == "0") {
                             $providers[$provider][$p[1]] = (bool) false;
                         } else {
                             if ($v == "1") {
                                 $providers[$provider][$p[1]] = (bool) true;
                             } else {
                                 $providers[$provider][$p[1]] = 'null';
                             }
                         }
                     } else {
                         if ($v == "" || $v == null || $v == "null") {
                             $providers[$provider][$p[1]] = null;
                         } else {
                             $providers[$provider][$p[1]] = $v;
                         }
                     }
                 }
             }
         }
         Yii::app()->cache->set('analyticsjs_providers', $providers);
     }
     return $providers;
 }
コード例 #2
0
ファイル: Cii.php プロジェクト: fandikurnia/CiiMS
 /**
  * Retrieves Analytics.js Providers
  * @return array $providors
  */
 public static function getAnalyticsProviders()
 {
     $providers = Yii::app()->cache->get('analyticsjs_providers');
     if ($providers === false) {
         // Import Analytics Settings so that we can appropriately determine the type of objects
         Yii::import('application.modules.dashboard.components.CiiSettingsModel');
         Yii::import('application.modules.dashboard.models.AnalyticsSettings');
         $analytics = new AnalyticsSettings();
         $rules = $analytics->rules();
         unset($analytics);
         // Init the array
         $providers = array();
         // Retrieve all the providors that are enabled
         $response = Yii::app()->db->createCommand('SELECT REPLACE(`key`, "analyticsjs_", "") AS `key`, value FROM `configuration` WHERE `key` LIKE "analyticsjs_%_enabled" AND value = 1')->queryAll();
         foreach ($response as $element) {
             $k = $element['key'];
             $provider = explode('_', str_replace("__", " ", str_replace("___", ".", $k)));
             $provider = reset($provider);
             $sqlProvider = str_replace(" ", "__", str_replace(".", "___", $provider));
             $data = Yii::app()->db->createCommand('SELECT REPLACE(`key`, "analyticsjs_", "") AS `key`, value FROM `configuration` WHERE `key` LIKE "analyticsjs_' . $sqlProvider . '%" AND `key` != "analyticsjs_' . $sqlProvider . '_enabled"')->queryAll();
             $provider = str_replace('pwk', 'Piwik', $provider);
             foreach ($data as $el) {
                 $k = $el['key'];
                 $k = str_replace("pwk_", "Piwik_", $k);
                 $v = $el['value'];
                 $p = explode('_', str_replace("__", " ", str_replace("___", ".", $k)));
                 if ($v !== "") {
                     $thisRule = 'string';
                     foreach ($rules as $rule) {
                         if (strpos($rule[0], 'analyticsjs_' . $k) !== false) {
                             $thisRule = $rule[1];
                         }
                     }
                     if ($thisRule == 'boolean') {
                         if ($v == "0") {
                             $providers[$provider][$p[1]] = (bool) false;
                         } else {
                             if ($v == "1") {
                                 $providers[$provider][$p[1]] = (bool) true;
                             } else {
                                 $providers[$provider][$p[1]] = 'null';
                             }
                         }
                     } else {
                         if ($v == "" || $v == null) {
                             $providers[$provider][$p[1]] = 'null';
                         } else {
                             $providers[$provider][$p[1]] = $v;
                         }
                     }
                 }
             }
         }
         Yii::app()->cache->set('analyticsjs_providers', $providers);
     }
     $providers['CiiMS'] = array('endpoint' => '/api');
     return $providers;
 }