/**
     * Livepub compatible: 'in-cart' or 'not-in-cart' based on session cart
     * TODO: this won't cover the case where a variation of this product is in the cart.
     * @return string
     */
    public function CartStateClass()
    {
        return LivePubHelper::eval_php('
			return (!empty($_SESSION["Cart"])
				&& !empty($_SESSION["Cart"]["Items"])
				&& !empty($_SESSION["Cart"]["Items"][' . $this->owner->ID . ']))
			? "product-in-cart"
			: "product-not-in-cart";
		');
    }
 public function LiveLink()
 {
     if ($this->owner->hasField('CloudStatus') && $this->owner->CloudStatus === 'Live') {
         $http = $this->owner->getCloudURL(CloudBucket::LINK_HTTP);
         $https = $this->owner->getCloudURL(CloudBucket::LINK_HTTPS);
         return LivePubHelper::eval_php('return empty($_SERVER["HTTPS"]) ? "' . $http . '" : "' . $https . '";');
     } else {
         return $this->owner->Link();
     }
 }
    /**
     * The default base_tag implementation returns the full http://
     * url which causes issues with static publishing + https.
     * @return string
     */
    public function BaseTag()
    {
        return LivePubHelper::eval_php('
			$url = ((!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] == "off")
							&& !(isset($_SERVER["HTTP_X_FORWARDED_PROTOCOL"]) && strtolower($_SERVER["HTTP_X_FORWARDED_PROTOCOL"]) == "https"))
				? "http://"
				: "https://";
			$url .= $_SERVER["HTTP_HOST"] . "/";
			if (defined("BASE_URL") && BASE_URL) $url .= BASE_URL;
			if (substr($url, -1) != "/") $url .= "/";
			return "<base href=\\"" . $url . "\\"><!--[if lte IE 6]></base><![endif]-->";
		');
    }
 /**
  * checks eval_php
  */
 public function testEvalPhp()
 {
     // when not publishing, should just return the value
     $s = LivePubHelper::eval_php('return 5;');
     $this->assertEquals($s, 5);
     // when publishing should return code
     LivePubHelper::init_pub();
     LivePubHelper::$context = 'php';
     $s = LivePubHelper::eval_php('return 5;');
     $this->assertEquals($s, "eval('return 5;')");
     LivePubHelper::$context = 'html';
     $s = LivePubHelper::eval_php('return 5;');
     $this->assertEquals($s, "<?php echo eval('return 5;'); ?>");
     LivePubHelper::stop_pub();
 }
 /**
  * @return string
  */
 public function LoggedInClass()
 {
     return LivePubHelper::eval_php('return !empty($_SESSION["LoggedInMember"]) ? "logged-in" : "";');
 }