| Current Path : /home/antonen/poznajlitwe.lt/libraries/nextend2/nextend/library/libraries/stylemanager/ |
| Current File : /home/antonen/poznajlitwe.lt/libraries/nextend2/nextend/library/libraries/stylemanager/storage.php |
<?php
class N2StyleStorage {
private static $sets = array();
private static $styles = array();
private static $stylesBySet = array();
private static $stylesById = array();
public static function init() {
N2Pluggable::addAction('systemstyleset', 'N2StyleStorage::styleSet');
N2Pluggable::addAction('systemstyle', 'N2StyleStorage::styles');
N2Pluggable::addAction('style', 'N2StyleStorage::style');
}
private static function load() {
static $loaded;
if (!$loaded) {
N2Pluggable::doAction('styleStorage', array(
&self::$sets,
&self::$styles
));
for ($i = 0; $i < count(self::$styles); $i++) {
if (!isset(self::$stylesBySet[self::$styles[$i]['referencekey']])) {
self::$stylesBySet[self::$styles[$i]['referencekey']] = array();
}
self::$stylesBySet[self::$styles[$i]['referencekey']][] = &self::$styles[$i];
self::$stylesById[self::$styles[$i]['id']] = &self::$styles[$i];
}
$loaded = true;
}
}
public static function styleSet($referenceKey, &$sets) {
self::load();
for ($i = count(self::$sets) - 1; $i >= 0; $i--) {
self::$sets[$i]['system'] = 1;
self::$sets[$i]['editable'] = 0;
array_unshift($sets, self::$sets[$i]);
}
}
public static function styles($referenceKey, &$styles) {
self::load();
if (isset(self::$stylesBySet[$referenceKey])) {
$_styles = &self::$stylesBySet[$referenceKey];
for ($i = count($_styles) - 1; $i >= 0; $i--) {
$_styles[$i]['system'] = 1;
$_styles[$i]['editable'] = 0;
array_unshift($styles, $_styles[$i]);
}
}
}
public static function style($id, &$style) {
self::load();
if (isset(self::$stylesById[$id])) {
self::$stylesById[$id]['system'] = 1;
self::$stylesById[$id]['editable'] = 0;
$style = self::$stylesById[$id];
}
}
}
N2StyleStorage::init();