;
public static function replace($template, $obj) { //$template = 'eghurrrr {contact->Email->zone} wrnvwirw'; ReplaceTokens::$obj = $obj; //return preg_replace('!{([\w|\->]+)}!e', '\$data_array[\'$1\']', $Template); //preg_match('/{(?:[.]+\->[.]*)+}/',$template,$matches); raw($matches); return ''; //return preg_replace_callback('!{(?:([0-9A-Za-z_]+)|\->([0-9A-Za-z_]+))+}!', array('ReplaceTokens','get_token_vars'), $template); return preg_replace_callback('!{([0-9A-Za-z_\\->]+)}!', array('ReplaceTokens', 'run_token_handler'), $template); }
/** * Creates a new ReplaceTokens using the passed in * Reader for instantiation. * * @param object A Reader object providing the underlying stream. * Must not be <code>null</code>. * * @return object A new filter based on this configuration, but filtering * the specified reader */ function chain(Reader $reader) { $newFilter = new ReplaceTokens($reader); $newFilter->setProject($this->getProject()); $newFilter->setBeginToken($this->getBeginToken()); $newFilter->setEndToken($this->getEndToken()); $newFilter->setTokens($this->getTokens()); $newFilter->setTokensources($this->getTokensources()); $newFilter->setInitialized(true); return $newFilter; }
function addReplaceTokens(ReplaceTokens $o) { $o->setProject($this->project); $this->filterReaders[] = $o; }
public function mail_send($LetterID, $showonly = false) { $account = clone $this; $letter = new Letter($LetterID, $account->reseller->id); list($account->amount, $account->bonustime, $account->closetime) = $account->GetBalance(); $account->closetime = date('d-m-Y', $account->closetime); $account->amount = round($this->amount, 2); $server = new Server($account->ServerID); $account->ServerIP = $server->ips[0]; $letter->from = ReplaceTokens::replace(html_entity_decode($letter->from, ENT_QUOTES, 'UTF-8'), $account); $letter->subject = ReplaceTokens::replace(html_entity_decode($letter->subject, ENT_QUOTES, 'UTF-8'), $account); $letter->body = ReplaceTokens::replace(html_entity_decode($letter->body, ENT_QUOTES, 'UTF-8'), $account); log_event('mail account', 'notice', 'subject=' . $letter->subject, $this->id); if ($showonly) { return array($letter->from, $letter->subject, $letter->body); } else { return mail_send($this->contact->Email, $letter->from, $letter->subject, $letter->body); } }