| <?php | |
| /** | |
| * Copyright (c) 2018 Eclipse Foundation. | |
| * | |
| * This program and the accompanying materials are made | |
| * available under the terms of the Eclipse Public License 2.0 | |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ | |
| * | |
| * Contributors: | |
| * Christopher Guindon (Eclipse Foundation) - initial API and implementation | |
| * Eric Poirier (Eclipse Foundation) | |
| * | |
| * SPDX-License-Identifier: EPL-2.0 | |
| */ | |
| require_once("campaignImpression.class.php"); | |
| /** | |
| * Advertisement | |
| * | |
| * @package eclipse.org-common | |
| * @subpackage ads | |
| * @author: Christopher Guindon <chris.guindon@eclipse.org> | |
| */ | |
| class Ad { | |
| /** | |
| * The url of an ad | |
| * @var string | |
| */ | |
| private $url = ""; | |
| /** | |
| * The url of an ad | |
| * | |
| * Some ads might need two diffent urls. | |
| * | |
| * @var string | |
| */ | |
| private $url2 = ""; | |
| /** | |
| * The title for the ad | |
| * @var string | |
| */ | |
| private $title = ""; | |
| /** | |
| * The text content of the ad | |
| * @var unknown | |
| */ | |
| private $body = ""; | |
| /** | |
| * The path for the image in the ad | |
| * @var string | |
| */ | |
| private $image = ""; | |
| /** | |
| * The Eclipse campain key to track impressions | |
| * @var string | |
| */ | |
| private $campaign = ""; | |
| /** | |
| * Weight of an ad. If not set, the impressions will be split evenly. | |
| * @var int | |
| */ | |
| private $weight = 0; | |
| /** | |
| * The Script tag URL | |
| * (This is mostly for IBM ads) | |
| * @var string | |
| */ | |
| private $script_url = ""; | |
| /** | |
| * The iFrame tag URL | |
| * (This is mostly for IBM ads) | |
| * @var string | |
| */ | |
| private $iframe_url = ""; | |
| /** | |
| * The image within the iframe | |
| * (This is mostly for IBM ads) | |
| * @var string | |
| */ | |
| private $iframe_image = ""; | |
| /** | |
| * The type of the ad. | |
| * @var string | |
| */ | |
| private $type = ""; | |
| /** | |
| * The Format of the Ad | |
| * Image is the default format | |
| * But can be changed to HTML | |
| * @var string | |
| */ | |
| private $format = "image"; | |
| /** | |
| * The HTML of an ad | |
| * @var string | |
| */ | |
| private $html = ""; | |
| /** | |
| * Get the HTML of an Ad | |
| * | |
| * @return string | |
| */ | |
| public function getHtml() { | |
| return $this->html; | |
| } | |
| /** | |
| * Set the HTML of an Ad | |
| * | |
| * @param $template_path - string | |
| * | |
| * @param $variables - array - Define an array of strings to be printed in the html template | |
| */ | |
| public function setHtml($template_path = "", $variables = array()) { | |
| // Make sure the template file exist before using it | |
| if (!file_exists(dirname(__FILE__) . "/" . $template_path)) { | |
| return FALSE; | |
| } | |
| ob_start(); | |
| include $template_path; | |
| $this->html = ob_get_clean(); | |
| } | |
| /** | |
| * Get the Script URL | |
| * | |
| * @return string | |
| */ | |
| public function getScriptUrl() { | |
| return $this->script_url; | |
| } | |
| /** | |
| * Set the Script URL | |
| * | |
| * @param $url - string | |
| */ | |
| public function setScriptUrl($url = "") { | |
| $this->script_url = $url; | |
| } | |
| /** | |
| * Get the IFrame URL | |
| * | |
| * @return string | |
| */ | |
| public function getIframeUrl() { | |
| return $this->iframe_url; | |
| } | |
| /** | |
| * Set the Ifram URL | |
| * | |
| * @param $url - string | |
| */ | |
| public function setIframeUrl($url = "") { | |
| $this->iframe_url = $url; | |
| } | |
| /** | |
| * Get the IFrame image | |
| * | |
| * @return string | |
| * */ | |
| public function getIframeImage() { | |
| return $this->iframe_image; | |
| } | |
| /** | |
| * Set the IFrame image | |
| * | |
| * @param $url - string | |
| */ | |
| public function setIframeImage($image = "") { | |
| $this->iframe_image = $image; | |
| } | |
| /** | |
| * Get the Ad's Format | |
| * | |
| * @return string | |
| * */ | |
| public function getFormat() { | |
| return $this->iframe_image; | |
| } | |
| /** | |
| * Set the Ad's Format | |
| * For example, the format could be "image", "html" | |
| * | |
| * @param $format - string | |
| */ | |
| public function setFormat($format = "image") { | |
| $this->format = $format; | |
| } | |
| /** | |
| * Get the ad's type | |
| * | |
| * @return string | |
| */ | |
| public function getType() { | |
| return $this->type; | |
| } | |
| /** | |
| * Set the Ad's type | |
| * | |
| * Image or html | |
| * | |
| * @param $type - string | |
| */ | |
| public function setType($type = "") { | |
| $this->type = $type; | |
| } | |
| /** | |
| * Setter for $url | |
| * @param string $url | |
| */ | |
| public function setUrl($url = '') { | |
| $this->url = $url; | |
| } | |
| /** | |
| * Getter for $url | |
| * @param string $url | |
| */ | |
| public function getUrl() { | |
| return $this->url; | |
| } | |
| /** | |
| * Setter for $url2 | |
| * @param string $url2 | |
| */ | |
| public function setUrl2($url = '') { | |
| $this->url2 = $url; | |
| } | |
| /** | |
| * Getter for $url2 | |
| * @param string $url2 | |
| */ | |
| public function getUrl2() { | |
| return $this->url2; | |
| } | |
| /** | |
| * Setter for $title | |
| * @param string $title | |
| */ | |
| public function setTitle($title = "") { | |
| $this->title = $title; | |
| } | |
| /** | |
| * Getter for $title | |
| * @param string $title | |
| */ | |
| public function getTitle() { | |
| return $this->title; | |
| } | |
| /** | |
| * Setter for $body | |
| * @param string $body | |
| */ | |
| public function setBody($body = "") { | |
| $this->body = $body; | |
| } | |
| /** | |
| * Getter for $body | |
| * @param string $body | |
| */ | |
| public function getBody() { | |
| return $this->body; | |
| } | |
| /** | |
| * Setter for $image | |
| * @param string $image | |
| */ | |
| public function setImage($image = "") { | |
| $this->image = $image; | |
| } | |
| /** | |
| * Getter for $image | |
| * @param string $image | |
| */ | |
| public function getImage() { | |
| return $this->image; | |
| } | |
| /** | |
| * Setter for $campaign | |
| * @param string $campaign | |
| */ | |
| public function setCampaign($campaign = "") { | |
| $this->campaign = $campaign; | |
| } | |
| /** | |
| * Getter for $campaign | |
| * @param string $campaign | |
| */ | |
| public function getCampaign() { | |
| return $this->campaign; | |
| } | |
| /** | |
| * Setter for $weight | |
| * @param string $weight | |
| */ | |
| public function setWeight($value = 0) { | |
| if (is_int($value)) { | |
| $this->weight = $value; | |
| return TRUE; | |
| } | |
| return FALSE; | |
| } | |
| /** | |
| * Getter for $weight | |
| * @param int $weight | |
| */ | |
| public function getWeight($value = 0) { | |
| return $this->weight; | |
| } | |
| /** | |
| * Verify if this is a valid Ad | |
| * @return boolean | |
| */ | |
| public function validAd() { | |
| // If we're dealing with an HTML Ad | |
| if ($this->format == "html" && $this->html == "") { | |
| return FALSE; | |
| } | |
| // If we're dealing with an Image Ad | |
| if ($this->format == "image" && ($this->url == "" || $this->title == "" || $this->body == "" || $this->image == "")) { | |
| return FALSE; | |
| } | |
| return TRUE; | |
| } | |
| } |