. */ /** * Styles panel. * * @package Admin\CSS */ if (!defined('txpinterface')) { die('txpinterface is undefined.'); } if ($event == 'css') { require_privs('css'); bouncer($step, array( 'pour' => false, 'css_save' => true, 'css_delete' => true, 'css_edit' => false, )); switch (strtolower($step)) { case '': css_edit(); break; case 'pour': css_edit(); break; case 'css_save': css_save(); break; case 'css_delete': css_delete(); break; case 'css_edit': css_edit(); break; } } /** * Renders a list of stylesheets. * * @param string $current The active stylesheet * @param string $default Not used * @return string HTML */ function css_list($current, $default) { $out = array(); $protected = safe_column("DISTINCT css", 'txp_section', "1 = 1"); $criteria = 1; $criteria .= callback_event('admin_criteria', 'css_list', 0, $criteria); $rs = safe_rows_start("name", 'txp_css', $criteria); if ($rs) { while ($a = nextRow($rs)) { extract($a); $active = ($current === $name); $edit = eLink('css', '', 'name', $name, $name); if (!array_key_exists($name, $protected)) { $edit .= dLink('css', 'css_delete', 'name', $name); } $out[] = tag(n.$edit.n, 'li', array( 'class' => $active ? 'active' : '', )); } $out = tag(join(n, $out), 'ul', array( 'class' => 'switcher-list', )); return wrapGroup('all_styles', $out, 'all_stylesheets'); } } /** * The main stylesheet editor panel. * * @param string|array $message The activity message */ function css_edit($message = '') { global $event, $step; pagetop(gTxt('edit_css'), $message); $default_name = safe_field("css", 'txp_section', "name = 'default'"); extract(array_map('assert_string', gpsa(array( 'copy', 'save_error', 'savenew', )))); $name = sanitizeForPage(assert_string(gps('name'))); $newname = sanitizeForPage(assert_string(gps('newname'))); if ($step == 'css_delete' || empty($name) && $step != 'pour' && !$savenew) { $name = $default_name; } elseif (((($copy || $savenew) && $newname) || ($newname && ($newname != $name))) && !$save_error) { $name = $newname; } $titleblock = inputLabel( 'new_style', fInput('text', 'newname', $name, 'input-medium', '', '', INPUT_MEDIUM, '', 'new_style', false, true), 'css_name', array('', 'instructions_style_name'), array('class' => 'txp-form-field name') ); if ($name === '') { $titleblock .= hInput('savenew', 'savenew'); } else { $titleblock .= hInput('name', $name); } $titleblock .= eInput('css').sInput('css_save'); $thecss = gps('css'); if (!$save_error) { $thecss = fetch('css', 'txp_css', 'name', $name); } $actionsExtras = ''; if ($name) { $actionsExtras .= href(' '.gTxt('duplicate'), '#', array( 'class' => 'txp-clone', 'data-form' => 'style_form', )); } $actions = graf( sLink('css', 'pour', ' '.gTxt('create_new_css'), 'txp-new'). $actionsExtras, array('class' => 'txp-actions txp-actions-inline') ); $buttons = graf( tag_void('input', array( 'class' => 'publish', 'type' => 'submit', 'method' => 'post', 'value' => gTxt('save'), )), ' class="txp-save"' ); echo n.'