addURLParameters() public static method

Add parameters to an URL
public static addURLParameters ( string $url, array $parameters ) : string
$url string The URL to append the parameters too.
$parameters array The parameters as key-value-pairs.
return string
Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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);
 }
Example #4
0
 /**
  * @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;
 }