/** * 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; }