Ejemplo n.º 1
0
 public static function execute($id)
 {
     echo '$id: ' . $id . '<br/>' . PHP_EOL;
     Yii::info('execute id: ' . $id, 'rule');
     $model = Rule::findOne($id);
     // Rule Condition
     Yii::info('condition', 'rule');
     $modelsRuleCondition = RuleCondition::findAll(['rule_id' => $id]);
     /*echo('$modelsRuleCondition: <pre>');
     		print_r($modelsRuleCondition);
     		echo('</pre>');*/
     // condition
     foreach ($modelsRuleCondition as $modelRuleCondition) {
         Yii::info('$modelRuleCondition->id: ' . $modelRuleCondition->id, 'rule');
         Yii::info('$modelRuleCondition->condition: ' . $modelRuleCondition->condition, 'rule');
         Yii::info('$modelRuleCondition->condition_value: ' . $modelRuleCondition->condition_value, 'rule');
         Yii::info('$modelRuleCondition->equation: ' . $modelRuleCondition->equation, 'rule');
         Yii::info('$modelRuleCondition->value: ' . $modelRuleCondition->value, 'rule');
         Yii::info('$modelRuleCondition->value_value: ' . $modelRuleCondition->value_value, 'rule');
         echo '$modelRuleCondition->id: ' . $modelRuleCondition->id . '<br/>' . PHP_EOL;
         echo '$modelRuleCondition->condition: ' . $modelRuleCondition->condition . '<br/>' . PHP_EOL;
         echo '$modelRuleCondition->condition_value: ' . $modelRuleCondition->condition_value . '<br/>' . PHP_EOL;
         echo '$modelRuleCondition->equation: ' . $modelRuleCondition->equation . '<br/>' . PHP_EOL;
         echo '$modelRuleCondition->value: ' . $modelRuleCondition->value . '<br/>' . PHP_EOL;
         echo '$modelRuleCondition->value_value: ' . $modelRuleCondition->value_value . '<br/>' . PHP_EOL;
         if (!class_exists('app\\models\\' . $modelRuleCondition->condition)) {
             Yii::info('!class_exists: ' . 'app\\models\\' . $modelRuleCondition->condition, 'rule');
             return false;
         }
         if (!class_exists('app\\models\\' . $modelRuleCondition->value)) {
             Yii::info('!class_exists: ' . 'app\\models\\' . $modelRuleCondition->value, 'rule');
             return false;
         }
         $conditions = call_user_func(array('app\\models\\' . ucfirst($modelRuleCondition->condition), 'ruleCondition'), $modelRuleCondition->condition_value);
         Yii::info('$conditions: ' . json_encode($conditions), 'rule');
         echo '$conditions: <pre>';
         print_r($conditions);
         echo '</pre>';
         $conditions_values = call_user_func(array('app\\models\\' . ucfirst($modelRuleCondition->value), 'ruleCondition'), $modelRuleCondition->value_value);
         Yii::info('$conditions_values: ' . json_encode($conditions_values), 'rule');
         echo '$conditions_values: <pre>';
         print_r($conditions_values);
         echo '</pre>';
         // if one of the $values is true relative to the $condition
         $equation = false;
         Yii::info('$equation: ' . json_encode($equation), 'rule');
         // json_encode prints true or false
         foreach ($conditions_values as $value) {
             Yii::info('$value: ' . $value, 'rule');
             foreach ($conditions as $condition) {
                 echo '$value: ' . $value . '<br/>' . PHP_EOL;
                 echo '$condition: ' . $condition . '<br/>' . PHP_EOL;
                 //
                 $equal = version_compare($condition, $value, $modelRuleCondition->equation);
                 Yii::info('$equal: ' . json_encode($equal), 'rule');
                 // json_encode prints true or false
                 if ($equal) {
                     $equation = true;
                 }
             }
         }
         echo '$equation: ' . $equation . '<br/>' . PHP_EOL;
         var_dump($equation);
         //exit();
         if (!$equation) {
             Yii::info('!$equation', 'rule');
             return false;
         }
     }
     echo 'condition is: ' . $equation . '<br/>' . PHP_EOL;
     // if nothing has returned something, the condition must be gone good
     Yii::info('action', 'rule');
     $modelsRuleAction = RuleAction::findAll(['rule_id' => $id]);
     /*echo('$modelsRuleCondition: <pre>');
     		print_r($modelsRuleCondition);
     		echo('</pre>');*/
     foreach ($modelsRuleAction as $modelRuleAction) {
         Yii::info('$modelRuleAction->id: ' . $modelRuleAction->id, 'rule');
         Yii::info('$modelRuleAction->action: ' . $modelRuleAction->action, 'rule');
         Yii::info('$modelRuleAction->action_value: ' . $modelRuleAction->action_value, 'rule');
         Yii::info('$modelRuleAction->value: ' . $modelRuleAction->value, 'rule');
         Yii::info('$modelRuleAction->value_value: ' . $modelRuleAction->value_value, 'rule');
         echo '$modelRuleAction->id: ' . $modelRuleAction->id . '<br/>' . PHP_EOL;
         echo '$modelRuleAction->action: ' . $modelRuleAction->action . '<br/>' . PHP_EOL;
         echo '$modelRuleAction->action_value: ' . $modelRuleAction->action_value . '<br/>' . PHP_EOL;
         echo '$modelRuleAction->value: ' . $modelRuleAction->value . '<br/>' . PHP_EOL;
         echo '$modelRuleAction->value_value: ' . $modelRuleAction->value_value . '<br/>' . PHP_EOL;
         //exit();
         if (!class_exists('app\\models\\' . $modelRuleAction->action)) {
             Yii::info('!class_exists: ' . 'app\\models\\' . $modelRuleAction->action, 'rule');
             return false;
         }
         // only retrieve a value if the action is setting
         $value = '';
         if ('setting' == $modelRuleAction->action) {
             if (!class_exists('app\\models\\' . $modelRuleAction->value)) {
                 Yii::info('!class_exists: ' . 'app\\models\\' . $modelRuleAction->value, 'rule');
                 return false;
             }
             // get the value
             $values = call_user_func(array('app\\models\\' . ucfirst($modelRuleAction->value), 'ruleCondition'), $modelRuleAction->value_value);
             Yii::info('$value: ' . $value, 'rule');
             echo '$values: <pre>';
             print_r($values);
             echo '</pre>';
             $value = HelperData::dataImplode($values);
             echo '$value: ' . $value . '<br/>' . PHP_EOL;
         }
         // use the value
         $return = call_user_func(array('app\\models\\' . ucfirst($modelRuleAction->action), 'ruleAction'), $modelRuleAction->action_value, $value);
         Yii::info('$return: ' . json_encode($return), 'rule');
         //exit();
         if (!$return) {
             return false;
         }
     }
     return true;
 }
Ejemplo n.º 2
0
 public static function getAllEncoded()
 {
     $return = [];
     $settings = Setting::getAll();
     foreach ($settings as $setting) {
         $array = ['class' => 'Setting', 'function' => 'changeOne', 'id' => $setting['name']];
         $return[HelperData::dataImplode($array)] = sprintf('(%s) %s', $setting['name'], substr($setting['description'], 0, 100));
         //$return[sprintf('{"class":"Setting","function":"changeOne","id":"%s"}', $setting['name'])] = sprintf('(%s) %s', $setting['name'], substr($setting['description'], 0, 100));
     }
     return $return;
 }
 public static function getAllEncoded()
 {
     $return = [];
     $tasksdefined = TaskDefined::getAll();
     foreach ($tasksdefined as $taskdefined) {
         $array = ['class' => 'TaskDefined', 'function' => 'execute', 'id' => $taskdefined['id']];
         $return[HelperData::dataImplode($array)] = sprintf('(%d) %s', $taskdefined['id'], $taskdefined['name']);
         //$return[sprintf('{"class":"TaskDefined","function":"execute","id":"%d"}', $taskdefined['id'])] = sprintf('(%d) %s', $taskdefined['id'], $taskdefined['name']);
     }
     return $return;
 }
 /**
  * Trims all the data
  * 
  * @param type $data (string to trim)
  * @return type
  */
 public static function dataTrim($data)
 {
     $data = trim($data);
     $array = HelperData::dataExplode($data);
     return HelperData::dataImplode($array);
 }