/**
  * executeRule.
  *
  * @param   object  &$rule     Params
  * @param   object  &$channel  Params
  * @param   object  &$post     Params
  *
  * @return	void
  */
 public static function executeRule(&$rule, &$channel, &$post)
 {
     // Correct autopublish options when rules engine is used
     $post->nextstate = self::getValue($rule, self::RULE_AUTOPUBLISH);
     switch ($post->nextstate) {
         case 'on':
             $post->autopublish = true;
             break;
         case 'off':
             $post->autopublish = false;
             break;
         case 'cancel':
             $post->autopublish = false;
             break;
         case 'default':
             // Use default value from plugin/channel: do nothing
             break;
     }
     // Correct url link mode options when rules engine is used
     $show_url = self::getValue($rule, self::RULE_SHOW_URL);
     if ('default' != $show_url) {
         $post->show_url = $show_url;
     }
     // Target_id
     if (!isset($rule->xtform)) {
         $rule->xtform = Eform::paramsToRegistry($rule);
     }
     $target_id = $rule->xtform->get(self::RULE_TARGET_ID);
     if ($target_id) {
         $post->xtform->set('target_id', $target_id);
     }
     $message = TextUtil::cleanText($post->message);
     // Create message for new post (logged posts uses existing message text)
     // Filter first full and msgtext if there is an regex in rule
     $rule_reg_ex = self::getValue($rule, self::RULE_REG_EX);
     if (!empty($rule_reg_ex)) {
         $is_json = json_decode($rule_reg_ex);
         if ($is_json) {
             $rule_reg_ex = $is_json;
         }
         $rule_reg_replace = self::getValue($rule, self::RULE_REG_REPLACE);
         $is_json = json_decode($rule_reg_replace);
         if ($is_json) {
             $rule_reg_replace = $is_json;
         }
         $message = preg_replace($rule_reg_ex, $rule_reg_replace, $message);
         $post->title = preg_replace($rule_reg_ex, $rule_reg_replace, $post->title);
         $post->fulltext = preg_replace($rule_reg_ex, $rule_reg_replace, $post->fulltext);
     }
     $post->message = $message;
     // Apply a custom pattern to the text
     $pattern = self::getValue($rule, self::RULE_RMC_TEXTPATTERN);
     if (!empty($pattern)) {
         AutotweetBaseHelper::applyTextPattern($pattern, $post);
     }
     $message = $post->message;
     // Add static text from rules engine
     $show_static_text = self::getValue($rule, self::RULE_SHOW_STATIC_TEXT);
     $rule_static_text = self::getValue($rule, self::RULE_STATIC_TEXT);
     $message = AutotweetBaseHelper::addStatictext($show_static_text, $message, $rule_static_text);
     $post->message = $message;
 }