<?php
/**
* @copyright Copyright (C) 2016 Cédric KEIFLIN alias ced1870
* http://www.joomlack.fr
* http://www.template-creator.com
* @license GNU/GPL
* */
defined('_JEXEC') or die('Restricted access');
class ImageeffectckHelper {
private static $effectsList;
public static $minParamsVersion = '2.0.0';
/**
*
* @param type $version (force to 1 for B/C)
* @return type
*/
public static function getEffectsList($version = 1) {
// if (empty(self::$effectsList)) {
if ($version == 1) {
// B/C list
self::$effectsList = array(
"effectck-lily"
,"effectck-oscar"
,"effectck-sadie"
,"effectck-honey"
,"effectck-layla"
,"effectck-zoe"
,"effectck-marley"
,"effectck-ruby"
,"effectck-roxy"
,"effectck-bubba"
,"effectck-romeo"
,"effectck-dexter"
,"effectck-sarah"
,"effectck-chico"
,"effectck-milo"
,"effectck-julia"
,"effectck-goliath"
,"effectck-selena"
,"effectck-apollo"
,"effectck-steve"
,"effectck-moses"
,"effectck-jazz"
,"effectck-ming"
,"effectck-duke"
,"effectck-fadeck"
,"effectck-edafck"
,"effectck-puffck"
);
} else {
self::$effectsList = array(
"lily" => "effectck-lily"
, "oscar" => "effectck-oscar"
, "sadie" => "effectck-sadie"
, "honey" => "effectck-honey"
, "layla" => "effectck-layla"
, "zoe" => "effectck-zoe"
, "marley" => "effectck-marley"
, "ruby" => "effectck-ruby"
, "roxy" => "effectck-roxy"
, "bubba" => "effectck-bubba"
, "romeo" => "effectck-romeo"
, "dexter" => "effectck-dexter"
, "sarah" => "effectck-sarah"
, "chico" => "effectck-chico"
, "milo" => "effectck-milo"
, "julia" => "effectck-julia"
, "goliath" => "effectck-goliath"
, "selena" => "effectck-selena"
, "apollo" => "effectck-apollo"
, "steve" => "effectck-steve"
, "moses" => "effectck-moses"
, "jazz" => "effectck-jazz"
, "ming" => "effectck-ming"
, "duke" => "effectck-duke"
, "fadeck" => "effectck-fadeck"
, "edafck" => "effectck-edafck"
, "puffck" => "effectck-puffck"
, "flip-left" => "effectck-flip-left"
, "flip-right" => "effectck-flip-right"
, "flip-top" => "effectck-flip-top"
, "flip-bottom" => "effectck-flip-bottom"
, "circle" => "effectck-circle"
, "circle-b" => "effectck-circle-b"
, "circle-2" => "effectck-circle-2"
, "circle-3" => "effectck-circle-3"
, "circle-4" => "effectck-circle-4"
, "circle-5" => "effectck-circle-5"
, "circle-6" => "effectck-circle-6"
, "circle-7" => "effectck-circle-7"
, "circle-8" => "effectck-circle-8"
, "circle-9" => "effectck-circle-9"
, "circle-10" => "effectck-circle-10"
, "circle-11" => "effectck-circle-11"
, "circle-12" => "effectck-circle-12"
, "circle-13" => "effectck-circle-13"
, "circle-14" => "effectck-circle-14"
, "circle-15" => "effectck-circle-15"
, "circle-16" => "effectck-circle-16"
, "circle-17" => "effectck-circle-17"
, "circle-18" => "effectck-circle-18"
, "circle-19" => "effectck-circle-19"
, "circle-20" => "effectck-circle-20"
, "circle-21" => "effectck-circle-21"
, "circle-22" => "effectck-circle-22"
, "circle-23" => "effectck-circle-23"
, "circle-24" => "effectck-circle-24"
, "circle-25" => "effectck-circle-25"
, "circle-26" => "effectck-circle-26"
, "circle-27" => "effectck-circle-27"
, "circle-28" => "effectck-circle-28"
, "circle-29" => "effectck-circle-29"
, "circle-30" => "effectck-circle-30"
, "circle-31" => "effectck-circle-31"
, "circle-32" => "effectck-circle-32"
, "circle-33" => "effectck-circle-33"
, "circle-34" => "effectck-circle-34"
, "circle-35" => "effectck-circle-35"
, "circle-36" => "effectck-circle-36"
, "circle-37" => "effectck-circle-37"
, "circle-38" => "effectck-circle-38"
, "circle-39" => "effectck-circle-39"
);
}
// new feature introduced in V2
if ($version > 2) {
if ($override = self::getOverrideList()) {
if ($override->onlythislist == "true") {
self::$effectsList = $override->effectscklist;
} else {
self::$effectsList = array_merge(self::$effectsList, (array)$override->effectscklist);
}
}
if ($customList = self::getCustomStylesList()) {
if (JComponentHelper::getParams('com_imageeffectck')->get('customlistonly', '0') == '1') {
self::$effectsList = $customList;
} else {
self::$effectsList = array_merge(self::$effectsList, $customList);
}
if (file_exists(JPATH_SITE . '/administrator/components/com_imageeffectck/helpers/helper.php')) {
include_once JPATH_SITE . '/administrator/components/com_imageeffectck/helpers/helper.php';
ImageeffectckHelper2::loadAssets();
}
}
}
// }
return self::$effectsList;
}
private static function getOverrideList() {
$overridelistsrc = JPATH_ROOT . '/templates/' . self::getDefaultTemplate() . '/css/plg_system_imageeffectck/imageeffectck.json';
if (file_exists($overridelistsrc)) {
$overridelistjson = @file_get_contents($overridelistsrc);
if ($overridelistjson) {
try {
$tmp = json_decode($overridelistjson);
return $tmp;
} catch (Exception $e) {
echo 'Error when getting the Override list from Image Effect CK : ', $e->getMessage(), "\n";
}
}
}
return false;
}
// TODO : à intégrer pour récupérer liste des custom styles
private static function getCustomStylesList() {
$db = JFactory::getDBO();
$query = "SELECT id,name FROM #__imageeffectck_styles WHERE state = 1";
$db->setQuery($query);
$styles = $db->loadObjectList();
$list = array();
foreach ($styles as $style) {
$list[$style->name] = 'effectck-' . $style->id;
}
return $list;
}
private static function getDefaultTemplate() {
$db = JFactory::getDBO();
$query = "SELECT template FROM #__template_styles WHERE client_id = 0 AND home = 1";
$db->setQuery($query);
return $db->loadResult();
}
}