function announce($tagname, $sort = null, $size = null, $parent = null) { global $_out; $xml = new xml(null, $tagname, false); $ns = $this->query('.//img'); if ($ns->length) { if ($sort == 'desc') { $c = 0; for ($i = $ns->length - 1; $i >= 0; $i--) { $xml->de()->appendChild($xml->importNode($ns->item($i))); $c++; if ($size && $c == $size) { break; } } } else { foreach ($ns as $i => $e) { if ($i == $size) { break; } $xml->de()->appendChild($xml->importNode($e)); } } $_out->xmlIncludeTo($xml, $parent); } }
function settings($action) { global $_out, $_struct; if (($xml = $this->getDataXML()) && ($e = $xml->getElementById('settings'))) { $form = new form($e); $form->replaceURI(array('MODULE' => $this->getId(), 'SECTION' => $this->getSection()->getId(), 'PATH_DATA_FILE_CLIENT' => ABS_PATH_DATA_CLIENT . ap::id($this->getSection()->getId()) . '.xml', 'PATH_DATA_FILE_AP' => ABS_PATH_DATA_AP . ap::id($this->getSection()->getId()) . '.xml')); if ($ff = $form->getField('section')) { apSectionEdit::seclist(ap::getClientstructure()->de(), $ff, $ar = array()); } switch ($action) { case 'update': case 'apply_update': $form->save($_REQUEST); break; case 'edit': if (($id = param('section')) && ($sec = $_struct->getSection($id)) && ($modules = $sec->getModules())) { $xml = new xml(null, 'modules', false); foreach ($modules as $m) { $xml->de()->appendChild($xml->importNode($m->getRootElement(), false)); } ap::ajaxResponse($xml); } break; } $form->load(); $_out->addSectionContent($form->getRootElement()); $this->addTemplate('tpl.xsl'); } }
function run() { global $_out, $_sec; if (ap::isCurrentModule($this)) { ap::addMessage($this->getMessage()); if ($form = $this->getForm()) { $form->replaceURI(array('ID' => $_sec->getId(), 'MD' => $this->getId(), 'PARENT' => $this->getSection()->GetParent()->getId())); switch ($action = param('action')) { case 'save': $values = $this->initImages($form, true); $values = array_merge($_REQUEST, $values); $form->save($values); $this->updateImagesSize($form); $this->redirect('save_ok'); break; case 'fileinfo': if (($path = urldecode(param('path'))) && ($f = ap::getFileInfo($_SERVER['DOCUMENT_ROOT'] . $path))) { $f['path'] = $path; $xml = new xml(null, 'file', false); foreach ($f as $tagName => $value) { $xml->de()->appendChild($xml->createElement($tagName, null, $value)); } ap::ajaxResponse($xml); } vdump('Error file not found ' . $path); break; } $this->initImages($form, false); $form->load(); $_out->elementIncludeTo($form->getRootElement(), '/page/section'); } else { throw new Exception('Form not found', EXCEPTION_XML); } } }
function run() { if (ap::isCurrentModule($this)) { switch ($this->getAction()) { case 'bannersize': if (($path = urldecode(param('path'))) && is_file($path)) { list($width, $height) = getimagesize($path); $xml = new xml(null, 'size', false); $xml->de()->setAttribute('width', $width); $xml->de()->setAttribute('height', $height); ap::ajaxResponse($xml); } vdump('Error file not found ' . $path); break; } } parent::run(); }
function __construct($val, $num_rows = null, $cur_page = null, $page_size = null) { $xml = new xml('xml/_rowlist' . microtime() . '.tmp.xml', 'rowlist'); parent::__construct($xml->de(), 'row'); $this->setPageSize($page_size); $this->setNumRows($num_rows); $this->setCurrentPage($cur_page); if ($val instanceof DOMElement) { $this->importSettings($val); } else { $this->setHeaders($val); } }
function __construct(xml $xml, $tagName = null) { global $_struct; if (!$tagName) { $tagName = 'modules'; } if ($modules = $xml->query($query = '/*/' . $tagName)->item(0)) { } else { $modules = $xml->de()->appendChild($xml->createElement($tagName)); } parent::__construct($modules, 'module'); $this->keyAttribute = 'id'; $this->setStructure($_struct); }
function run() { global $_out; if (ap::isCurrentModule($this)) { switch ($action = param('action')) { case 'fileinfo': if (($path = urldecode(param('path'))) && ($f = $this->getFileInfo($_SERVER['DOCUMENT_ROOT'] . $path))) { $f['path'] = $path; $xml = new xml(null, 'file', false); foreach ($f as $tagName => $value) { $xml->de()->appendChild($xml->createElement($tagName, null, $value)); } ap::ajaxResponse($xml); } vdump('Error file not found ' . $path); break; } parent::run(); } }
protected static function create($tagName, $type, $fieldName, $label = null, $uri = null) { $xml = new xml(null, $tagName); $xml->de()->setAttribute('type', $type); $xml->de()->setAttribute('name', $fieldName); if ($label) { $xml->de()->setAttribute('label', $label); } if ($uri) { $xml->de()->setAttribute('uri', $uri); } switch ($type) { case 'image': return new formImageField($xml->de()); case 'multiselect': return new formSelect($xml->de()); default: if ($xml->de()->tagName == 'param') { return new formHiddenField($xml->de()); } elseif (class_exists($classname = 'form' . ucfirst($type))) { return new $classname($xml->de()); } else { return new formField($xml->de()); } } }
function __construct($uri) { $xml = new xml($uri, 'events'); parent::__construct($xml->de(), 'event'); $this->xml = $xml; }
function run() { global $_out, $_sec; if (ap::isCurrentModule($this)) { ap::addMessage($this->getMessage()); $action = param('action'); $nowId = $this->getSection()->getId(); $path = "//sec[@id='" . substr($nowId, 3) . "']"; $form = $this->getForm(); // если это корневой раздел то показываем форму по добавлению нового раздела switch ($action) { case 'ajax': if ($parent = param('parent')) { if (($sec_parent = ap::getClientSection($parent)) || $parent == 'apStruct') { header('Content-type: text/xml'); $xml = new xml(null, 'seclist', false); $res = ap::getClientstructure()->query($parent == 'apStruct' ? '/structure/sec' : '//sec[@id="' . $sec_parent->getId() . '"]/sec'); foreach ($res as $sec) { $xml->de()->appendChild($xml->createElement('sec', array('id' => $sec->getAttribute('id'), 'title' => $sec->getAttribute('title')))); } echo $xml; } die; } break; case 'remove': $struct = ap::getClientstructure(); $id = $this->getSection()->getParent()->getId(); apSectionEdit::removeSection($nowId); $this->redirect($action, $id); break; case 'save': $form->replaceURI(array('PATH' => $this->getQueryPath(), 'PATH_STRUCT_CLIENT' => ABS_PATH_STRUCT_CLIENT)); // сохранение атрибутов $form->save($_REQUEST); // перенос элемента со сменой родителя и порядка $struct = ap::getClientstructure(false); if ($id = ap::getClientSection(param('id_sec'))->getId()) { if (!($parent = $struct->query('/structure//sec[@id="' . param('parent') . '"]')->item(0))) { $parent = $struct->query('/structure')->item(0); } if ($parent) { $sec = $struct->query('/structure//sec[@id="' . $id . '"]')->item(0); $sec = $sec->parentNode->removeChild($sec); if (($pos = param('position')) && ($before = $struct->query('/structure//sec[@id="' . $pos . '"]')->item(0))) { $parent->insertBefore($sec, $before); } else { $parent->appendChild($sec); } $struct->save(); } } $this->redirect($action, param('id_sec')); break; case 'newtpl': if (apSectionTemplate::createPackage(ap::id($this->getSection()->getId()), param('title'))) { $this->redirect('newtpl_ok'); } else { $this->redirect('newtpl_fail'); } break; default: $form->replaceURI(array('PATH' => $path, 'PATH_STRUCT_CLIENT' => ABS_PATH_STRUCT_CLIENT)); $form->getRootElement()->setAttribute('title', str_replace("%TITLE%", $_sec->getTitle(), $form->getRootElement()->getAttribute('title'))); //список разделов if (($ff = $form->getField('parent')) && ($s = ap::getClientstructure()->getSection(ap::id($nowId)))) { $ff->addOption('apStruct', 'Root'); $ar = array($s->getId()); $p = $s->getParent(); $this->seclist(ap::getClientstructure()->de(), $ff, $ar); $ff->setValue($p ? $p->getId() : 'apStruct'); } if ($ff = $form->getField('position')) { $ff->setValue(ap::id($nowId)); } if (!($nowId == 'apStruct')) { $form->load(); } $_sec->getTemplate()->addTemplate('../../modules/' . $this->getName() . '/template/sectionedit.xsl'); $_out->elementIncludeTo($form->getRootElement(), '/page/section'); break; } } }
function getTagList() { $xml = new xml('xml/list.xml', 'row', false); return new taglist($xml->de(), 'row'); }
function disable($val) { $xml = new xml($this->e); $nocache_xml = new xml($xml->documentURI(), $xml->de()->tagName, false); $users = new users($nocache_xml, $this->e->tagName); if ($usr = $users->getUser($this->getLogin())) { $val = $val ? 'disabled' : null; $usr->setDisabled($val); $nocache_xml->save(); $this->setDisabled($val); } }
function run() { global $_out, $_struct, $_sec; if (ap::isCurrentModule($this)) { ap::addMessage($this->getMessage()); $action = param('action'); $nowId = $this->getSection()->getId(); $form = $this->getForm(); //если это корневой раздел то показываем форму по добавлению нового раздела switch ($action) { case 'ajax': if ($parent = param('parent')) { if (($sec_parent = ap::getClientSection($parent)) || $parent == 'apStruct') { header('Content-type: text/xml'); $xml = new xml(null, 'seclist', false); $res = ap::getClientstructure()->query($parent == 'apStruct' ? '/structure/sec' : '//sec[@id="' . $sec_parent->getId() . '"]/sec'); foreach ($res as $sec) { $xml->de()->appendChild($xml->createElement('sec', array('id' => $sec->getAttribute('id'), 'title' => $sec->getAttribute('title')))); } echo $xml; } die; } if ($issetid = param('isset')) { echo ap::getClientSection($issetid) ? '0' : '1'; die; } break; case 'add': case 'apply': if (is_array($sec = param('sec')) && $sec['id']) { $form->replaceURI(array('PATH' => $this->getQueryPath(param('parent')), 'PATH_STRUCT_CLIENT' => ABS_PATH_STRUCT_CLIENT)); $form->save($_REQUEST); $_struct->addSection($sec['id'], $sec['title']); /* позиция */ if (($id_pos = param('position')) && ($struct = ap::getClientstructure(false))) { if (($sec_new = $struct->getSection($sec['id'])) && ($sec_pos = $struct->getSection($id_pos))) { $sec_pos->getElement()->parentNode->insertBefore($sec_new->getElement(), $sec_pos->getElement()); $struct->save(); } } /* установить выбранный шаблон раздела */ if ($tpl_id = param('template')) { apSectionTemplate::applyTemplate(ap::id($sec['id']), $tpl_id); } $this->redirect($action, $sec["id"]); } else { $this->redirect('fail'); } break; default: $form->replaceURI(array('PATH' => '', 'PATH_STRUCT_CLIENT' => ABS_PATH_STRUCT_CLIENT)); //список разделов if ($ff = $form->getField('parent')) { $s = ap::getClientstructure()->getSection(ap::id($nowId)); $ff->addOption('apStruct', 'Root'); $ar = array(); if ($s) { $p = $s->getParent(); } $this->seclist(ap::getClientstructure()->de(), $ff, $ar); $ff->setValue($p ? $p->getId() : 'apStruct'); } // список разделов шаблонов if (($ff = $form->getField('template')) && ($tl = apSectionTemplate::getPackages())) { if ($tl->getNum()) { foreach ($tl as $e) { $ff->addOption($e->getAttribute('id'), $e->getAttribute('title')); } } else { $ff->remove(); } } $_sec->getTemplate()->addTemplate('../../modules/' . $this->getName() . '/template/sectionadd.xsl'); $_out->elementIncludeTo($form->getRootElement(), '/page/section'); break; } } }
function getList($param) { $rl_xml = new xml(PATH_MODULE . __CLASS__ . '/form/rowlist.xml'); if ($list_element = $rl_xml->de()) { $templates = $this->getTemplate(); $rl = new rowlist($list_element, count($templates), param('page')); $headers = $rl->getHeaders(); if (!$param['count']) { $list_elem = $rl->getRootElement(); $list_elem->removeAttribute('add'); } if ($templates) { foreach ($templates as $i => $template) { if ($i >= $rl->getStartIndex() && $i <= $rl->getFinishIndex()) { $rl->addRow($template->getAttribute('id'), array('id_template' => $template->getAttribute('id'))); } } } return $rl->getRootElement(); } }
static function ajaxResponse($val, $message = null) { if ($val instanceof xml) { $xml = $val; } elseif ($val instanceof DOMElement) { $xml = new xml(); $xml->appendChild($xml->importNode($val)); } else { $xml = new xml(null, 'response', false); $xml->de()->appendChild($xml->createElement('value', null, $val)); if ($message) { $xml->de()->appendChild($xml->createElement('message', null, $message)); } } if ($xml) { header('Content-Type: text/xml; charset=utf-8'); echo $xml; } die; }