コード例 #1
0
 function addScriptToHead($path, $position = NULL)
 {
     $script = new XMLElement('script');
     $script->setSelfClosingTag(false);
     $script->setAttributeArray(array('type' => 'text/javascript', 'src' => $path));
     return $this->addElementToHead($script, $position);
 }
コード例 #2
0
ファイル: class.htmlpage.php プロジェクト: brendo/symphony-3
 public function addScriptToHead($path, $position = NULL, $duplicate = true)
 {
     if ($duplicate === true || $duplicate === false && $this->checkElementsInHead($path, 'src') !== true) {
         $script = new XMLElement('script');
         $script->setSelfClosingTag(false);
         $script->setAttributeArray(array('type' => 'text/javascript', 'src' => $path));
         return $this->addElementToHead($script, $position);
     }
 }
コード例 #3
0
 function __SelectBuildOption($option)
 {
     list($value, $selected, $desc, $class, $id, $attr) = $option;
     if (!$desc) {
         $desc = $value;
     }
     $obj = new XMLElement('option', "{$desc}");
     $obj->setSelfClosingTag(false);
     $obj->setAttribute('value', "{$value}");
     if (!empty($class)) {
         $obj->setAttribute('class', $class);
     }
     if (!empty($id)) {
         $obj->setAttribute('id', $id);
     }
     if (!empty($attr)) {
         $obj->setAttributeArray($attr);
     }
     if ($selected) {
         $obj->setAttribute('selected', 'selected');
     }
     return $obj;
 }
コード例 #4
0
 function view()
 {
     $this->appendSubheading(__('Components'));
     $utilities = General::listStructure(UTILITIES, array('xsl'), false, 'asc', UTILITIES);
     $utilities = $utilities['filelist'];
     $ul = new XMLElement('ul');
     $ul->setAttribute('id', 'components');
     $ul->setAttribute('class', 'triple group');
     ### EVENTS ###
     $EventManager = new EventManager($this->_Parent);
     $events = $EventManager->listAll();
     $li = new XMLElement('li');
     $h3 = new XMLElement('h3', __('Events'));
     $h3->appendChild(Widget::Anchor(__('Create New'), URL . '/symphony/blueprints/events/new/', __('Create a new event'), 'create button'));
     $li->appendChild($h3);
     $list = new XMLElement('ul');
     $list->setSelfClosingTag(false);
     if (is_array($events) && !empty($events)) {
         foreach ($events as $e) {
             $item = new XMLElement('li');
             $item->appendChild(Widget::Anchor($e['name'], URL . '/symphony/blueprints/events/' . ($e['can_parse'] ? 'edit' : 'info') . '/' . strtolower($e['handle']) . '/', 'event.' . $e['handle'] . '.php'));
             $item->setAttribute('class', 'external');
             $list->appendChild($item);
         }
     }
     $li->appendChild($list);
     $ul->appendChild($li);
     ######
     ### DATASOURCES ###
     $DSManager = new DatasourceManager($this->_Parent);
     $datasources = $DSManager->listAll();
     $li = new XMLElement('li');
     $h3 = new XMLElement('h3', __('Data Sources'));
     $h3->appendChild(Widget::Anchor(__('Create New'), URL . '/symphony/blueprints/datasources/new/', __('Create a new data source'), 'create button'));
     $li->appendChild($h3);
     $list = new XMLElement('ul');
     $list->setSelfClosingTag(false);
     if (is_array($datasources) && !empty($datasources)) {
         foreach ($datasources as $ds) {
             $item = new XMLElement('li');
             if ($ds['can_parse']) {
                 $item->appendChild(Widget::Anchor($ds['name'], URL . '/symphony/blueprints/datasources/edit/' . strtolower($ds['handle']) . '/', 'data.' . $ds['handle'] . '.php'));
             } else {
                 $item->appendChild(Widget::Anchor($ds['name'], URL . '/symphony/blueprints/datasources/info/' . strtolower($ds['handle']) . '/', 'data.' . $ds['handle'] . '.php'));
             }
             $list->appendChild($item);
         }
     }
     $li->appendChild($list);
     $ul->appendChild($li);
     ######
     ### UTILITIES ###
     $li = new XMLElement('li');
     $h3 = new XMLElement('h3', __('Utilities'));
     $h3->appendChild(Widget::Anchor(__('Create New'), URL . '/symphony/blueprints/utilities/new/', __('Create a new utility'), 'create button'));
     $li->appendChild($h3);
     $list = new XMLElement('ul');
     $list->setSelfClosingTag(false);
     if (is_array($utilities) && !empty($utilities)) {
         foreach ($utilities as $u) {
             $item = new XMLElement('li');
             $item->appendChild(Widget::Anchor($u, URL . '/symphony/blueprints/utilities/edit/' . str_replace('.xsl', '', $u) . '/'));
             $list->appendChild($item);
         }
     }
     $li->appendChild($list);
     $ul->appendChild($li);
     ######
     $this->Form->appendChild($ul);
 }
コード例 #5
0
 /**
  * Prepare a Drawer to visualize section associations
  *
  * @param  Section $section The current Section object
  * @throws InvalidArgumentException
  * @throws Exception
  */
 private function prepareAssociationsDrawer($section)
 {
     $entry_id = !is_null($this->_context['entry_id']) ? $this->_context['entry_id'] : null;
     $show_entries = Symphony::Configuration()->get('association_maximum_rows', 'symphony');
     if (is_null($entry_id) && !isset($_GET['prepopulate']) || is_null($show_entries) || $show_entries == 0) {
         return;
     }
     $parent_associations = SectionManager::fetchParentAssociations($section->get('id'), true);
     $child_associations = SectionManager::fetchChildAssociations($section->get('id'), true);
     $content = null;
     $drawer_position = 'vertical-right';
     /**
      * Prepare Associations Drawer from an Extension
      *
      * @since Symphony 2.3.3
      * @delegate PrepareAssociationsDrawer
      * @param string $context
      * '/publish/'
      * @param integer $entry_id
      *  The entry ID or null
      * @param array $parent_associations
      *  Array of Sections
      * @param array $child_associations
      *  Array of Sections
      * @param string $drawer_position
      *  The position of the Drawer, defaults to `vertical-right`. Available
      *  values of `vertical-left, `vertical-right` and `horizontal`
      */
     Symphony::ExtensionManager()->notifyMembers('PrepareAssociationsDrawer', '/publish/', array('entry_id' => $entry_id, 'parent_associations' => &$parent_associations, 'child_associations' => &$child_associations, 'content' => &$content, 'drawer-position' => &$drawer_position));
     // If there are no associations, return now.
     if ((is_null($parent_associations) || empty($parent_associations)) && (is_null($child_associations) || empty($child_associations))) {
         return;
     }
     if (!$content instanceof XMLElement) {
         $content = new XMLElement('div', null, array('class' => 'content'));
         $content->setSelfClosingTag(false);
         // Process Parent Associations
         if (!is_null($parent_associations) && !empty($parent_associations)) {
             foreach ($parent_associations as $as) {
                 if ($field = FieldManager::fetch($as['parent_section_field_id'])) {
                     if (isset($_GET['prepopulate'])) {
                         $prepopulate_field = key($_GET['prepopulate']);
                     }
                     // get associated entries if entry exists,
                     if ($entry_id) {
                         $entry_ids = $field->findParentRelatedEntries($as['child_section_field_id'], $entry_id);
                         // get prepopulated entry otherwise
                     } elseif (isset($_GET['prepopulate'])) {
                         $entry_ids = array(intval(current($_GET['prepopulate'])));
                     } else {
                         $entry_ids = array();
                     }
                     // Use $schema for perf reasons
                     $schema = array($field->get('element_name'));
                     $where = !empty($entry_ids) ? sprintf(' AND `e`.`id` IN (%s)', implode(', ', $entry_ids)) : null;
                     $entries = !empty($entry_ids) || isset($_GET['prepopulate']) && $field->get('id') === $prepopulate_field ? EntryManager::fetchByPage(1, $as['parent_section_id'], $show_entries, $where, null, false, false, true, $schema) : array();
                     $has_entries = !empty($entries) && $entries['total-entries'] != 0;
                     if ($has_entries) {
                         $element = new XMLElement('section', null, array('class' => 'association parent'));
                         $header = new XMLElement('header');
                         $header->appendChild(new XMLElement('p', __('Linked to %s in', array('<a class="association-section" href="' . SYMPHONY_URL . '/publish/' . $as['handle'] . '/">' . $as['name'] . '</a>'))));
                         $element->appendChild($header);
                         $ul = new XMLElement('ul', null, array('class' => 'association-links', 'data-section-id' => $as['child_section_id'], 'data-association-ids' => implode(', ', $entry_ids)));
                         foreach ($entries['records'] as $e) {
                             // let the field create the mark up
                             $li = $field->prepareAssociationsDrawerXMLElement($e, $as);
                             // add it to the unordered list
                             $ul->appendChild($li);
                         }
                         $element->appendChild($ul);
                         $content->appendChild($element);
                     }
                 }
             }
         }
         // Process Child Associations
         if (!is_null($child_associations) && !empty($child_associations)) {
             foreach ($child_associations as $as) {
                 // Get the related section
                 $child_section = SectionManager::fetch($as['child_section_id']);
                 if (!$child_section instanceof Section) {
                     continue;
                 }
                 // Get the visible field instance (using the sorting field, this is more flexible than visibleColumns())
                 // Get the link field instance
                 $visible_field = current($child_section->fetchVisibleColumns());
                 $relation_field = FieldManager::fetch($as['child_section_field_id']);
                 // Get entries, using $schema for performance reasons.
                 $entry_ids = $relation_field->findRelatedEntries($entry_id, $as['parent_section_field_id']);
                 $schema = $visible_field ? array($visible_field->get('element_name')) : array();
                 $where = sprintf(' AND `e`.`id` IN (%s)', implode(', ', $entry_ids));
                 $entries = !empty($entry_ids) ? EntryManager::fetchByPage(1, $as['child_section_id'], $show_entries, $where, null, false, false, true, $schema) : array();
                 $has_entries = !empty($entries) && $entries['total-entries'] != 0;
                 // Build the HTML of the relationship
                 $element = new XMLElement('section', null, array('class' => 'association child'));
                 $header = new XMLElement('header');
                 $filter = '?filter[' . $relation_field->get('element_name') . ']=' . $entry_id;
                 $prepopulate = '?prepopulate[' . $as['child_section_field_id'] . ']=' . $entry_id;
                 // Create link with filter or prepopulate
                 $link = SYMPHONY_URL . '/publish/' . $as['handle'] . '/' . $filter;
                 $a = new XMLElement('a', $as['name'], array('class' => 'association-section', 'href' => $link));
                 // Create new entries
                 $create = new XMLElement('a', __('Create New'), array('class' => 'button association-new', 'href' => SYMPHONY_URL . '/publish/' . $as['handle'] . '/new/' . $prepopulate));
                 // Display existing entries
                 if ($has_entries) {
                     $header->appendChild(new XMLElement('p', __('Links in %s', array($a->generate()))));
                     $ul = new XMLElement('ul', null, array('class' => 'association-links', 'data-section-id' => $as['child_section_id'], 'data-association-ids' => implode(', ', $entry_ids)));
                     foreach ($entries['records'] as $key => $e) {
                         // let the first visible field create the mark up
                         if ($visible_field) {
                             $li = $visible_field->prepareAssociationsDrawerXMLElement($e, $as, $prepopulate);
                         } else {
                             $li = Field::createAssociationsDrawerXMLElement($e->get('id'), $e, $as, $prepopulate);
                         }
                         // add it to the unordered list
                         $ul->appendChild($li);
                     }
                     $element->appendChild($ul);
                     // If we are only showing 'some' of the entries, then show this on the UI
                     if ($entries['total-entries'] > $show_entries) {
                         $pagination = new XMLElement('li', null, array('class' => 'association-more', 'data-current-page' => '1', 'data-total-pages' => ceil($entries['total-entries'] / $show_entries), 'data-total-entries' => $entries['total-entries']));
                         $counts = new XMLElement('a', __('Show more entries'), array('href' => $link));
                         $pagination->appendChild($counts);
                         $ul->appendChild($pagination);
                     }
                     // No entries
                 } else {
                     $element->setAttribute('class', 'association child empty');
                     $header->appendChild(new XMLElement('p', __('No links in %s', array($a->generate()))));
                 }
                 $header->appendChild($create);
                 $element->prependChild($header);
                 $content->appendChild($element);
             }
         }
     }
     $drawer = Widget::Drawer('section-associations', __('Show Associations'), $content);
     $this->insertDrawer($drawer, $drawer_position, 'prepend');
 }
コード例 #6
0
 private function createCheckbox($text, $key)
 {
     $order = $this->get('sortorder');
     $lbl = new XMLElement('label', __($text), array('class' => 'column'));
     $input = new XMLElement('input', NULL, array('type' => 'checkbox', 'name' => "fields[{$order}][{$key}]"));
     $input->setSelfClosingTag(true);
     if ($this->get($key) == 'yes') {
         $input->setAttribute('checked', 'checked');
     }
     $lbl->prependChild($input);
     return $lbl;
 }
コード例 #7
0
ファイル: extension.driver.php プロジェクト: hotdoy/EDclock
 private function createHidden($id)
 {
     $h = new XMLElement('input', NULL, array('id' => $id, 'name' => "fields[{$id}]", 'type' => 'hidden'));
     $h->setSelfClosingTag(true);
     return $h;
 }
コード例 #8
0
 public function view()
 {
     Administration::instance()->Page->addStylesheetToHead(URL . '/extensions/members/assets/styles.css', 'screen', 9125341);
     Administration::instance()->Page->addStylesheetToHead(URL . '/extensions/members/assets/jquery-ui.css', 'screen', 9125342);
     Administration::instance()->Page->addScriptToHead(URL . '/extensions/members/assets/jquery-ui.js', 9126342);
     Administration::instance()->Page->addScriptToHead(URL . '/extensions/members/assets/members.js', 9126343);
     $formHasErrors = is_array($this->_errors) && !empty($this->_errors);
     if ($formHasErrors) {
         $this->pageAlert(__('An error occurred while processing this form. <a href="#error">See below for details.</a>'), AdministrationPage::PAGE_ALERT_ERROR);
     }
     $this->setPageType('form');
     $this->appendSubheading(__('Untitled'));
     $fields = array();
     if (isset($_POST['fields'])) {
         $fields = $_POST['fields'];
     }
     $fieldset = new XMLElement('fieldset');
     $fieldset->setAttribute('class', 'settings type-file');
     $fieldset->appendChild(new XMLElement('legend', __('Essentials')));
     $label = Widget::Label(__('Name'));
     $label->appendChild(Widget::Input('fields[name]', General::sanitize($fields['name'])));
     if (isset($this->_errors['name'])) {
         $fieldset->appendChild(Widget::wrapFormElementWithError($label, $this->_errors['name']));
     } else {
         $fieldset->appendChild($label);
     }
     $this->Form->appendChild($fieldset);
     $EventManager = new EventManager($this->_Parent);
     $events = $EventManager->listAll();
     if (is_array($events) && !empty($events)) {
         foreach ($events as $handle => $e) {
             $show_in_role_permissions = method_exists("event{$handle}", 'showInRolePermissions') && call_user_func(array("event{$handle}", 'showInRolePermissions')) === true ? true : false;
             if (!$e['can_parse'] && !$show_in_role_permissions) {
                 unset($events[$handle]);
             }
         }
     }
     $fieldset = new XMLElement('fieldset');
     $fieldset->setAttribute('class', 'settings type-file');
     $fieldset->appendChild(new XMLElement('legend', __('Event Level Permissions')));
     $aTableHead = array(array(__('Event'), 'col'), array(__('Create'), 'col'), array(__('Edit'), 'col'));
     $aTableBody = array();
     /*
     <tr class="global">
     	<td>Set Global Permissions</td>
     	<td class="add">
     		<input type="checkbox" name="add-global" value="no"/>
     	</td>
     	<td class="edit">
     		<p class="global-slider"></p>
     		<span>n/a</span>
     	</td>
     	<!--<td class="delete">
     		<p class="global-slider"></p>
     		<span>n/a</span>
     	</td>-->
     </tr>
     */
     ## Setup each cell
     $td1 = Widget::TableData(__('Global Permissions'));
     $td2 = Widget::TableData(Widget::Input('global-add', '1', 'checkbox'), 'add');
     $td3 = Widget::TableData(NULL, 'edit');
     $td3->appendChild(new XMLElement('p', NULL, array('class' => 'global-slider')));
     $td3->appendChild(new XMLElement('span', 'n/a'));
     $td4 = Widget::TableData(NULL, 'delete');
     $td4->appendChild(new XMLElement('p', NULL, array('class' => 'global-slider')));
     $td4->appendChild(new XMLElement('span', 'n/a'));
     ## Add a row to the body array, assigning each cell to the row
     $aTableBody[] = Widget::TableRow(array($td1, $td2, $td3), 'global');
     //, $td4
     if (is_array($events) && !empty($events)) {
         foreach ($events as $event_handle => $event) {
             $permissions = $fields['permissions'][$event_handle];
             ## Setup each cell
             $td1 = Widget::TableData($event['name']);
             $td2 = Widget::TableData(Widget::Input("fields[permissions][{$event_handle}][create]", '1', 'checkbox', $permissions['create'] == 1 ? array('checked' => 'checked') : NULL), 'add');
             $td3 = Widget::TableData(NULL, 'edit');
             $td3->appendChild(new XMLElement('p', NULL, array('class' => 'slider')));
             $span = new XMLElement('span');
             $span->setSelfClosingTag(false);
             $td3->appendChild($span);
             $td3->appendChild(Widget::Input('fields[permissions][' . $event_handle . '][edit]', isset($permissions['edit']) ? $permissions['edit'] : '0', 'hidden'));
             $td4 = Widget::TableData(NULL, 'delete');
             $td4->appendChild(new XMLElement('p', NULL, array('class' => 'slider')));
             $span = new XMLElement('span');
             $span->setSelfClosingTag(false);
             $td4->appendChild($span);
             $td4->appendChild(Widget::Input('fields[permissions][' . $event_handle . '][delete]', isset($permissions['delete']) ? $permissions['delete'] : '0', 'hidden'));
             /*
             <tr>
             	<td>{EVENT-NAME}</td>
             	<td class="add">
             		<input type="checkbox" name="{ANY NAME}" value="{EXISTING STATE:No}"/>
             	</td>
             	<td class="edit">
             		<p class="slider"></p>
             		<span></span>
             		<input type="hidden" name="{ANY NAME}" value="{EXISTING-VALUE:1}"/>
             	</td>
             	<!--<td class="delete">
             		<p class="slider"></p>
             		<span></span>
             		<input type="hidden" name="{ANY NAME}" value="{EXISTING-VALUE:1}"/>
             	</td>-->
             </tr>
             */
             ## Add a row to the body array, assigning each cell to the row
             $aTableBody[] = Widget::TableRow(array($td1, $td2, $td3));
             //, $td4));
         }
     }
     $table = Widget::Table(Widget::TableHead($aTableHead), NULL, Widget::TableBody($aTableBody), 'role-permissions');
     $fieldset->appendChild($table);
     $this->Form->appendChild($fieldset);
     ####
     # Delegate: MemberRolePermissionFieldsetsEdit
     # Description: Add custom fieldsets to the role page
     Administration::instance()->ExtensionManager->notifyMembers('MemberRolePermissionFieldsetsEdit', '/extension/members/roles_edit/', array('form' => &$this->Form, 'permissions' => $fields['permissions']));
     #####
     $fieldset = new XMLElement('fieldset');
     $fieldset->setAttribute('class', 'settings type-file');
     $fieldset->appendChild(new XMLElement('legend', __('Page Level Permissions')));
     $pages = ASDCLoader::instance()->query(sprintf("SELECT * FROM `tbl_pages` %s ORDER BY `title` ASC", $this->_context[0] == 'edit' ? "WHERE `id` != '{$page_id}' " : NULL));
     $label = Widget::Label(__('Deny Access'));
     $options = array();
     if ($pages->length() > 0) {
         foreach ($pages as $page) {
             $options[] = array($page->id, @in_array($page->id, $fields['page_access']), '/' . Administration::instance()->resolvePagePath($page->id));
         }
     }
     $label->appendChild(Widget::Select('fields[page_access][]', $options, array('multiple' => 'multiple')));
     $fieldset->appendChild($label);
     $this->Form->appendChild($fieldset);
     $div = new XMLElement('div');
     $div->setAttribute('class', 'actions');
     $div->appendChild(Widget::Input('action[save]', __('Create'), 'submit', array('accesskey' => 's')));
     $this->Form->appendChild($div);
 }
コード例 #9
0
 protected function addJStoRenewLock($entry_id, $author_id)
 {
     $script = new XMLElement('script');
     $script->setSelfClosingTag(false);
     $script->setAttributeArray(array('type' => 'text/javascript'));
     $script->setValue("\n\t\t\t\tjQuery(document).ready(function() {\n\t\t\t\t\tLocking.init();\n\t\t\t\t\tLocking.renewLock('" . $entry_id . "', '" . $author_id . "', '" . $this->renew_lock . "');\n\t\t\t\t});\t\t\t\t\t\t\t\t\n\t\t\t");
     return $script;
 }
コード例 #10
0
    public function __publishPanelJS($ctx)
    {
        // context array contains: &$oPage
        $Admin = Administration::instance();
        if (!is_array($Admin->markitup) || empty($Admin->markitup)) {
            return;
        }
        $fileMode = $Admin->Configuration->get('write_mode', 'file');
        asort($Admin->markitup);
        $path = CACHE . '/markitup_' . md5(implode(',', $Admin->markitup));
        $cacheJS = $path . '.js';
        $cacheCSS = $path . '.css';
        if (file_exists($cacheJS)) {
            $cacheJSTime = filemtime($cacheJS);
        }
        if (file_exists($cacheCSS)) {
            $cacheCSSTime = filemtime($cacheCSS);
        }
        $path = EXTENSIONS . '/markitup/assets/markitup/sets';
        $refresh = false;
        foreach ($Admin->markitup as $type) {
            if (file_exists("{$path}/{$type}/set.js") && filemtime("{$path}/{$type}/set.js") > $cacheJSTime) {
                $refresh = true;
                break;
            }
            if (file_exists("{$path}/{$type}/style.css") && filemtime("{$path}/{$type}/style.css") > $cacheCSSTime) {
                $refresh = true;
                break;
            }
        }
        if ($refresh) {
            $supported = $Admin->Configuration->get('markitup');
            $data = '';
            $data .= "\n\t\tvar markItUpFormatters = {";
            foreach ($supported as $format => $class) {
                $data .= "\n\t\t\t'{$format}': '{$class}',";
            }
            $data .= "\n\t\t};\n";
            $data .= "\n\t\tvar markItUpFormattersRegex = /(^| )(" . implode('|', array_keys($supported)) . ')( |$)/;';
            $data .= "\n\n";
            foreach ($Admin->markitup as $type) {
                $data .= $this->convertJS(file_get_contents("{$path}/{$type}/set.js"), $type);
                $data .= "\n\n";
            }
            $data = file_get_contents(EXTENSIONS . '/markitup/assets/jquery.pack.js') . ";\n\n" . file_get_contents(EXTENSIONS . '/markitup/assets/markitup/jquery.markitup.pack.js') . ";\n\n" . '
(function($) { 
' . $data . '
	$(document).ready(function() {
		$(".markItUp").each(function(){
			var formatter = this.className.match(markItUpFormattersRegex);
			if (!formatter[2]) return;
			formatter = formatter[2];

			var c = markItUpFormatters[formatter];
			if (c != "default") {
				myMarkItUpSettings[c].previewParserPath = "' . URL . '/symphony/extension/markitup/preview/"+formatter+"/";
				myMarkItUpSettings[c].previewParserVar = "data";
			}
			$(this).markItUp(myMarkItUpSettings[c]);

		});
	});
})(jQuery);
jQuery.noConflict();
';
            if (!General::writeFile($cacheJS, $data, $fileMode)) {
                $script = new XMLElement('script', $data, array('type' => 'text/javascript'));
                $script->setSelfClosingTag(false);
                $ctx['oPage']->addElementToHead($script, 1001);
                $cacheJS = NULL;
            }
        }
        if ($cacheJS) {
            $ctx['oPage']->addScriptToHead(str_replace(DOCROOT, URL, $cacheJS), 1001);
        }
        if ($refresh) {
            $data = file_get_contents(EXTENSIONS . '/markitup/assets/markitup/skins/symphony/style.css') . "\n";
            $url = str_replace(DOCROOT, URL, $path);
            foreach ($Admin->markitup as $type) {
                $data .= $this->convertCSS(file_get_contents("{$path}/{$type}/style.css"), $type, "{$url}/{$type}");
            }
            if (!General::writeFile($cacheCSS, $data, $fileMode)) {
                $style = new XMLElement('style', $data, array('type' => 'text/css', 'media' => 'screen'));
                $ctx['oPage']->addElementToHead($style, 1002);
                $cacheCSS = NULL;
            }
        }
        if ($cacheCSS) {
            $ctx['oPage']->addStylesheetToHead(str_replace(DOCROOT, URL, $cacheCSS), 'screen', 1002);
        }
    }