/** * Set the image for the feed. * * @param string $url URL of the image. * @param string $title Title of the image. * @param string $link Link of the image. * @param int $width Width of the image. * @param int $height Height of the image. * @param string $description Description of the image. */ public function setImage($url, $title, $link, $width = null, $height = null, $description = null) { // add UTM-parameters $link = Model::addURLParameters($link, array('utm_source' => 'feed', 'utm_medium' => 'rss', 'utm_campaign' => CommonUri::getUrl($this->getTitle()))); // call the parent parent::setImage($url, $title, $link, $width, $height, $description); }
/** * Process links, will prepend SITE_URL if needed and append UTM-parameters * * @param string $content The content to process. * * @return string */ public function processLinks($content) { // redefine $content = (string) $content; // replace URLs and images $search = array('href="/', 'src="/'); $replace = array('href="' . SITE_URL . '/', 'src="' . SITE_URL . '/'); // replace links to files $content = str_replace($search, $replace, $content); // init var $matches = array(); // match links preg_match_all('/href="(http:\\/\\/(.*))"/iU', $content, $matches); // any links? if (isset($matches[1]) && !empty($matches[1])) { // init vars $searchLinks = array(); $replaceLinks = array(); // loop old links foreach ($matches[1] as $i => $link) { $searchLinks[] = $matches[0][$i]; $replaceLinks[] = 'href="' . Model::addURLParameters($link, $this->utm) . '"'; } // replace $content = str_replace($searchLinks, $replaceLinks, $content); } return $content; }
/** * Set the url * * @param string $url The url to associate the item with. */ public function setUrl($url) { // redefine var $url = (string) $url; // if link doesn't start with http, we prepend the URL of the site if (substr($url, 0, 7) != 'http://') { $url = SITE_URL . $url; } $url = FrontendModel::addURLParameters($url, $this->utm); $url = htmlspecialchars_decode($url); // call parent parent::setUrl($url); }
/** * @param string $html The html to convert links in. * @param string $subject The subject of the mail * @return string */ private function addUTM($html, $subject) { // match links $matches = array(); preg_match_all('/href="(http:\\/\\/(.*))"/iU', $html, $matches); // any links? $utm = array('utm_source' => 'mail', 'utm_medium' => 'email', 'utm_campaign' => Uri::getUrl($subject)); if (isset($matches[0]) && !empty($matches[0])) { $searchLinks = array(); $replaceLinks = array(); // loop old links foreach ($matches[1] as $i => $link) { $searchLinks[] = $matches[0][$i]; $replaceLinks[] = 'href="' . Model::addURLParameters($link, $utm) . '"'; } $html = str_replace($searchLinks, $replaceLinks, $html); } return $html; }