public function getcontent() { $id = tadminhtml::idparam(); $menus = tmenus::i(); if ($id != 0 && !$menus->itemexists($id)) { return self::error403(); } $menu = tmenu::i($id); if (litepublisher::$options->group == 'author' && litepublisher::$options->user != $menu->author) { return self::error403(); } if ($id > 0 && !$menus->itemexists($id)) { return self::error403(); } $views = tviews::i(); $theme = tview::i($views->defaults['admin'])->theme; $html = tadminhtml::i(); $html->section = 'menu'; switch ($_GET['get']) { case 'view': $result = tadminviews::getcomboview($id == 0 ? $views->defaults['menu'] : $menu->idview); break; case 'seo': $args = targs::i(); $args->url = $menu->url; $args->keywords = $menu->keywords; $args->description = $menu->description; $args->head = $menu->data['head']; $result = $html->parsearg('[text=url] [text=description] [text=keywords] [editor=head]', $args); break; default: $result = var_export($_GET, true); } return turlmap::htmlheader(false) . $result; }
public function processform() { $theme = tview::i(tviews::i()->defaults['admin'])->theme; $plugin = ttagreplacer::i(); $plugin->lock(); $plugin->items = array(); foreach ($_POST as $name => $value) { if (!strbegin($name, 'where-')) { continue; } $id = substr($name, strlen('where-')); $where = trim($value); if (!isset($theme->templates[$where]) || !is_string($theme->templates[$where])) { continue; } $search = $_POST["search-{$id}"]; if ($search == '') { continue; } $plugin->items[] = array('where' => $where, 'search' => $search, 'replace' => $_POST["replace-{$id}"]); } $plugin->unlock(); ttheme::clearcache(); return ''; }
function tthemegeneratorInstall($self) { if (!ttheme::exists('generator')) { die('Theme "generator" not exists'); } //litepublisher::$urlmap->addget('/theme-generator.htm', get_class($self)); $about = tplugins::getabout(tplugins::getname(__FILE__)); $name = basename(dirname(__FILE__)); $merger = tlocalmerger::i(); $merger->lock(); $merger->add('themegenerator', "plugins/{$name}/res/scheme.ini"); $merger->add('themegenerator', sprintf('plugins/%s/res/%s.ini', $name, litepublisher::$options->language)); $merger->unlock(); $js = tjsmerger::i(); $js->lock(); $js->add('themegenerator', '/plugins/colorpicker/js/colorpicker.js'); $js->add('themegenerator', '/js/swfupload/swfupload.js'); $js->add('themegenerator', sprintf('/plugins/%s/themegenerator.min.js', basename(dirname(__FILE__)))); $js->addlang('themegenerator', 'lang', array('upload_header' => $about['upload_header'], 'upload_logo' => $about['upload_logo'])); $js->unlock(); $dir = litepublisher::$paths->files . 'themegen'; if (!is_dir($dir)) { mkdir($dir, 0777); @chmod($dir, 0777); file_put_contents($dir . DIRECTORY_SEPARATOR . 'index.htm', ' '); @chmod($dir . DIRECTORY_SEPARATOR . 'index.htm', 0666); } tcron::i()->addnightly(get_class($self), 'cron', null); $self->lock(); $self->title = $about['name']; $views = tviews::i(); $self->idview = $views->add($about['name']); $view = tview::i($self->idview); $view->themename = 'generator'; $self->leftview = $views->add($about['left']); $view = tview::i($self->leftview); $view->themename = 'generator-left'; $self->rightview = $views->add($about['right']); $view = tview::i($self->rightview); $view->themename = 'generator-right'; $self->url = '/theme-generator.htm'; $self->content = get_themegen_content($self); $self->parseselectors(); $menus = tmenus::i(); $menus->lock(); $menus->add($self); $fake = new tfakemenu(); $fake->title = $about['left']; $fake->url = $self->url . '?type=left'; $fake->parent = $self->id; $menus->add($fake); $fake = new tfakemenu(); $fake->title = $about['right']; $fake->url = $self->url . '?type=right'; $fake->parent = $self->id; $menus->add($fake); $menus->unlock(); $self->unlock(); litepublisher::$urlmap->setvalue($self->idurl, 'type', 'get'); }
public function getcontent() { $type = tadminhtml::getparam('type', 'tags') == 'tags' ? 'tags' : 'categories'; $tags = $type == 'tags' ? ttags::i() : tcategories::i(); if ($err = self::auth()) { return $err; } $id = tadminhtml::idparam(); if ($id > 0 && !$tags->itemexists($id)) { return self::error403(); } $theme = tview::i(tviews::i()->defaults['admin'])->theme; $html = tadminhtml::i(); $html->section = 'tags'; $lang = tlocal::i('tags'); if ($id == 0) { $views = tviews::i(); $name = $type == 'tags' ? 'tag' : 'category'; $item = array('title' => '', 'idview' => isset($views->defaults[$name]) ? $views->defaults[$name] : 1, 'idperm' => 0, 'icon' => 0, 'includechilds' => $tags->includechilds, 'includeparents' => $tags->includeparents, 'invertorder' => false, 'lite' => $tags->lite, 'liteperpage' => 1000, 'url' => '', 'keywords' => '', 'description' => '', 'head' => ''); } else { $item = $tags->getitem($id); } switch ($_GET['get']) { case 'view': if ($id > 0) { foreach (array('includechilds', 'includeparents', 'invertorder', 'lite') as $prop) { $item[$prop] = (int) $item[$prop] > 0; } } $args = new targs(); $args->add($item); $result = $html->parsearg('[checkbox=includechilds] [checkbox=includeparents] [checkbox=invertorder] [checkbox=lite] [text=liteperpage]', $args); $result .= $this->getviewicon($item['idview'], $item['icon']); $result .= tadminperms::getcombo($item['idperm']); break; case 'seo': $args = targs::i(); if ($id == 0) { $args->url = ''; $args->keywords = ''; $args->description = ''; $args->head = ''; } else { $args->add($tags->contents->getitem($id)); $args->url = $tags->items[$id]['url']; } $result = $html->parsearg('[text=url] [text=description] [text=keywords] [editor=head]', $args); break; case 'text': $result = $this->geteditor('raw', $id == 0 ? '' : $tags->contents->getcontent($id), true); $result .= $this->gethead(); break; default: $result = var_export($_GET, true); } return turlmap::htmlheader(false) . $result; }
public function themeparsed(ttheme $theme) { $name = $theme->name; $views = tviews::i(); foreach ($views->items as &$itemview) { if ($name == $itemview['themename']) { $itemview['custom'] = $theme->templates['custom']; } } $views->save(); }
public function setthemename($name) { if ($name != $this->themename) { if (!ttheme::exists($name)) { return $this->error(sprintf('Theme %s not exists', $name)); } $this->data['themename'] = $name; $this->themeinstance = $this->get_theme_instance($name); $this->data['custom'] = $this->themeinstance->templates['custom']; $this->save(); tviews::i()->themechanged($this); } }
/** * Lite Publisher * Copyright (C) 2010 - 2013 Vladimir Yushko http://litepublisher.ru/ http://litepublisher.com/ * Dual licensed under the MIT (mit.txt) * and GPL (gpl.txt) licenses. **/ function tforumInstall($self) { litepublisher::$options->reguser = true; tadminoptions::i()->usersenabled = true; $name = basename(dirname(__FILE__)); tlocalmerger::i()->addplugin($name); $lang = tlocal::admin('forum'); //prevent double create view $idview = 0; $views = tviews::i(); foreach ($views->items as $id => $item) { if ('forum' == $item['themename']) { $idview = $id; break; } } if (!$idview) { $view = new tview(); $view->name = $lang->forum; $view->themename = 'forum'; $idview = $views->addview($view); } $lang->section = 'forum'; $cats = tcategories::i(); $idcat = $cats->add(0, $lang->forum); $cats->setvalue($idcat, 'includechilds', 1); $cats->setvalue($idcat, 'idview', $idview); $cats->contents->setcontent($idcat, $lang->intro . sprintf(' <a href="%s/admin/plugins/forum/">%s</a>', litepublisher::$site->url, tlocal::get('names', 'adminpanel'))); $self->rootcat = $idcat; $self->idview = $idview; $self->categories_changed(); $self->save(); $cat = $cats->getitem($idcat); tmenus::i()->addfake($cat['url'], $cat['title']); tjsmerger::i()->add('default', '/plugins/forum/forum.min.js'); $linkgen = tlinkgenerator::i(); $linkgen->data['forum'] = '/forum/[title].htm'; $linkgen->save(); $cats = tcategories::i(); $cats->lock(); $cats->changed = $self->categories_changed; $cats->added = $self->catadded; $cats->unlock(); tthemeparser::i()->parsed = $self->themeparsed; ttheme::clearcache(); litepublisher::$classes->add('tforumeditor', 'admin.forumeditor.class.php', $name); $adminmenus = tadminmenus::i(); $adminmenus->createitem($adminmenus->url2id('/admin/plugins/'), 'forum', 'author', 'tforumeditor'); }
function titemsreplacerUninstall($self) { $views = tviews::i(); $views->lock(); foreach ($views->items as $id => &$item) { if ('tviewthemereplacer' == $item['class']) { $item['class'] = 'tview'; } } $views->unbind($self); $views->unlock(); litepublisher::$classes->delete('tviewthemereplacer'); litepublisher::$classes->delete('tthemereplacer'); ttheme::clearcache(); }
public function add(tmenu $item) { if ($item instanceof tfakemenu) { return $this->addfakemenu($item); } //fix null fields foreach ($item->get_owner_props() as $prop) { if (!isset($item->data[$prop])) { $item->data[$prop] = ''; } } if ($item instanceof thomepage) { $item->url = '/'; } else { $linkgen = tlinkgenerator::i(); $item->url = $linkgen->addurl($item, 'menu'); } if ($item->idview == 1) { $views = tviews::i(); if (isset($views->defaults['menu'])) { $item->data['idview'] = $views->defaults['menu']; } } $id = ++$this->autoid; $this->items[$id] = array('id' => $id, 'class' => get_class($item)); //move props foreach ($item->get_owner_props() as $prop) { if (array_key_exists($prop, $item->data)) { $this->items[$id][$prop] = $item->data[$prop]; unset($item->data[$prop]); } else { $this->items[$id][$prop] = $item->{$prop}; } } $item->id = $id; $item->idurl = litepublisher::$urlmap->Add($item->url, get_class($item), $item->id); if ($item->status != 'draft') { $item->status = 'published'; } $this->lock(); $this->sort(); $item->save(); $this->unlock(); $this->added($id); litepublisher::$urlmap->clearcache(); return $id; }
/** * Lite Publisher * Copyright (C) 2010 - 2015 Vladimir Yushko http://litepublisher.ru/ http://litepublisher.com/ * Dual licensed under the MIT (mit.txt) * and GPL (gpl.txt) licenses. **/ function thomepageInstall($self) { litepublisher::$site->home = '/'; $menus = tmenus::i(); $menus->lock(); $self->lock(); $self->url = '/'; $self->title = tlocal::i()->home; $self->idview = tviews::i()->add(tlocal::get('adminmenus', 'home')); $homeview = tview::i($self->idview); $homeview->disableajax = true; $homeview->save(); $menus->idhome = $menus->add($self); $self->unlock(); $menus->unlock(); tposts::i()->addevent('changed', get_class($self), 'postschanged'); }
public function processform() { $plugin = titemsreplacer::i(); if (!empty($_GET['id'])) { $id = (int) $_GET['id']; if (isset($plugin->items[$id])) { $plugin->lock(); $i = 0; foreach ($plugin->items[$id] as $tag => $replace) { $k = "replace-{$i}"; if (!isset($_POST[$k])) { continue; } $v = trim($_POST[$k]); if ($v) { $plugin->items[$id][$tag] = $v; } else { unset($plugin->items[$id][$tag]); } $i++; } if (!empty($_POST['addtag'])) { $tag = trim($_POST['addtag']); $theme = tview::i(tviews::i()->defaults['admin'])->theme; if (isset($theme->templates[$tag])) { $plugin->items[$id][$tag] = trim($_POST['addreplace']); } } $plugin->unlock(); } } if (isset($_GET['action']) && 'add' == $_GET['action']) { $views = tviews::i(); $view = new tviewthemereplacer(); $view->name = trim($_POST['viewname']); $id = $views->addview($view); $plugin->add($id); $view->themename = tview::i(1)->themename; $adminurl = tadminhtml::getadminlink('/admin/plugins/', 'plugin=' . basename(dirname(__FILE__))); return litepublisher::$urlmap->redir("{$adminurl}&id={$id}"); } ttheme::clearcache(); return ''; }
public function install() { if (!file_exists(litepublisher::$paths->home . 'mobile' . DIRECTORY_SEPARATOR . 'index.php')) { die("folder 'mobile' with requried files not exists. Please copy required folder from plugin."); } $about = tplugins::getabout(tplugins::getname(__FILE__)); $views = tviews::i(); if (!isset($views->defaults['mobile'])) { $views->defaults['mobile'] = $views->add($about['menutitle']); } $idview = $views->defaults['mobile']; $view = tview::i($idview); if ($view->themename != 'pda') { $view->themename = 'pda'; $view->disableajax = true; $view->save(); } $menus = tmenus::i(); $menus->addfake('/mobile/', $about['menutitle']); $robot = trobotstxt::i(); $robot->AddDisallow('/mobile/'); litepublisher::$urlmap->clearcache(); }
public function processform() { //dumpvar($_POST); $result = ''; switch ($this->name) { case 'views': $views = tviews::i(); $idview = (int) tadminhtml::getparam('idview', 0); if (!$idview || !$views->itemexists($idview)) { return ''; } if ($this->action == 'delete') { if ($idview > 1) { $views->delete($idview); } return ''; } $view = tview::i($idview); if ($idview > 1) { $view->customsidebar = isset($_POST['customsidebar']); $view->disableajax = isset($_POST['disableajax']); } $view->name = trim($_POST['name']); $view->themename = trim($_POST['theme_idview']); $view->menuclass = $_POST['menu']; $view->hovermenu = isset($_POST['hovermenu']); $this->set_custom($idview); if ($idview == 1 || $view->customsidebar) { $widgets = twidgets::i(); foreach (range(0, 2) as $index) { $view->sidebars[$index] = array(); $idwidgets = explode(',', trim($_POST["sidebar{$index}"])); foreach ($idwidgets as $idwidget) { $idwidget = (int) trim($idwidget); if (!$widgets->itemexists($idwidget)) { continue; } $view->sidebars[$index][] = array('id' => $idwidget, 'ajax' => isset($_POST["inline{$idwidget}"]) ? 'inline' : isset($_POST["ajax{$idwidget}"])); } } } $view->save(); break; case 'addview': $name = trim($_POST['name']); if ($name != '') { $views = tviews::i(); $id = $views->add($name); } break; case 'spec': foreach (self::getspecclasses() as $classname) { $obj = getinstance($classname); $obj->lock(); $obj->setidview($_POST["idview-{$classname}"]); if (isset($obj->data['keywords'])) { $obj->keywords = $_POST["keywords-{$classname}"]; } if (isset($obj->data['description '])) { $obj->description = $_POST["description-{$classname}"]; } if (isset($obj->data['head'])) { $obj->head = $_POST["head-{$classname}"]; } $obj->unlock(); } break; case 'group': switch ($_POST['action']) { case 'posts': $posts = tposts::i(); $idview = (int) $_POST['postview']; if (dbversion) { $posts->db->update("idview = '{$idview}'", 'id > 0'); } else { foreach ($posts->items as $id => $item) { $post = tpost::i($id); $post->idview = $idview; $post->save(); $post->free(); } } break; case 'menus': $idview = (int) $_POST['menuview']; $menus = tmenus::i(); foreach ($menus->items as $id => $item) { $menu = tmenu::i($id); $menu->idview = $idview; $menu->save(); } break; case 'themes': $themename = $_POST['themeview']; $views = tviews::i(); $views->lock(); foreach ($views->items as $id => $item) { $view = tview::i($id); $view->themename = $themename; $view->save(); } $views->unlock(); break; } break; case 'defaults': $views = tviews::i(); foreach ($views->defaults as $name => $id) { $views->defaults[$name] = (int) $_POST[$name]; } $views->save(); break; case 'headers': $template = ttemplate::i(); $template->heads = $_POST['heads']; $template->save(); $adminmenus = tadminmenus::i(); $adminmenus->heads = $_POST['adminheads']; $adminmenus->save(); $ajax = tajaxposteditor::i(); $ajax->lock(); $ajax->ajaxvisual = isset($_POST['ajaxvisual']); $ajax->visual = trim($_POST['visual']); $ajax->unlock(); litepublisher::$options->show_file_perm = isset($_POST['show_file_perm']); break; case 'admin': return $this->adminoptionsform->processform(); } ttheme::clearcache(); }
public static function fix() { $widgets = twidgets::i(); foreach ($widgets->classes as $classname => &$items) { foreach ($items as $i => $item) { if (!isset($widgets->items[$item['id']])) { unset($items[$i]); } } } $views = tviews::i(); foreach ($views->items as &$viewitem) { if ($viewitem['id'] != 1 && !$viewitem['customsidebar']) { continue; } unset($sidebar); foreach ($viewitem['sidebars'] as &$sidebar) { for ($i = count($sidebar) - 1; $i >= 0; $i--) { //echo $sidebar[$i]['id'], '<br>'; if (!isset($widgets->items[$sidebar[$i]['id']])) { array_delete($sidebar, $i); } } } } $views->save(); }
public function getcontent() { $theme = tview::i(tviews::i()->defaults['admin'])->theme; $html = tadminhtml::i(); $html->section = 'editor'; $lang = tlocal::i('editor'); $post = tpost::i($this->idpost); ttheme::$vars['post'] = $post; switch ($_GET['get']) { case 'tags': $result = $html->getedit('tags', $post->tagnames, $lang->tags); $lang->section = 'editor'; $result .= $html->h4->addtags; $items = array(); $tags = $post->factory->tags; $list = $tags->getsorted(-1, 'name', 0); foreach ($list as $id) { $items[] = '<a href="" class="posteditor-tag">' . $tags->items[$id]['title'] . "</a>"; } $result .= sprintf('<p>%s</p>', implode(', ', $items)); break; case 'status': $args = new targs(); $args->comstatus = tadminhtml::array2combo(array('closed' => $lang->closed, 'reg' => $lang->reg, 'guest' => $lang->guest, 'comuser' => $lang->comuser), $post->comstatus); $args->pingenabled = $post->pingenabled; $args->status = tadminhtml::array2combo(array('published' => $lang->published, 'draft' => $lang->draft), $post->status); $args->perms = tadminperms::getcombo($post->idperm); $args->password = $post->password; $result = $html->parsearg('[combo=comstatus] [checkbox=pingenabled] [combo=status] $perms [password=password] <p>$lang.notepassword</p>', $args); break; case 'view': $result = $this->getviewicon($post->idview, $post->icon); break; default: $result = var_export($_GET, true); } //tfiler::log($result); return turlmap::htmlheader(false) . $result; }
public function getpartial($plugins, $theme, $lib) { set_time_limit(300); $this->createarchive(); if (dbversion) { $this->addfile('dump.sql', $this->getdump(), $this->filer->chmod_file); } //$this->readdata(litepublisher::$paths->data); $this->setdir('storage'); $this->readdir('storage/data'); if ($lib) { $this->setdir('lib'); $this->readdir('lib'); $this->setdir('js'); $this->readdir('js'); $this->readhome(); } if ($theme) { $this->setdir('themes'); $views = tviews::i(); $names = array(); foreach ($views->items as $id => $item) { if (in_array($item['themename'], $names)) { continue; } $names[] = $item['themename']; $this->readdir('themes/' . $item['themename']); } } if ($plugins) { $this->setdir('plugins'); $plugins = tplugins::i(); foreach ($plugins->items as $name => $item) { if (@is_dir(litepublisher::$paths->plugins . $name)) { $this->readdir('plugins/' . $name); } } } return $this->savearchive(); }
public function getidview() { return tviews::i()->defaults['admin']; }
public function add($parent, $title) { $title = trim($title); if (empty($title)) { return false; } if ($id = $this->indexof('title', $title)) { return $id; } $parent = (int) $parent; if ($parent != 0 && !$this->itemexists($parent)) { $parent = 0; } $url = tlinkgenerator::i()->createurl($title, $this->PermalinkIndex, true); $views = tviews::i(); $idview = isset($views->defaults[$this->PermalinkIndex]) ? $views->defaults[$this->PermalinkIndex] : 1; $item = array('idurl' => 0, 'customorder' => 0, 'parent' => $parent, 'title' => $title, 'idview' => $idview, 'idperm' => 0, 'icon' => 0, 'itemscount' => 0, 'includechilds' => $this->includechilds, 'includeparents' => $this->includeparents, 'invertorder' => false, 'lite' => $this->lite, 'liteperpage' => 1000); $id = $this->db->add($item); $this->items[$id] = $item; $idurl = litepublisher::$urlmap->add($url, get_class($this), $id, $this->urltype); $this->setvalue($id, 'idurl', $idurl); $this->items[$id]['url'] = $url; $this->added($id); $this->changed(); litepublisher::$urlmap->clearcache(); return $id; }
public function request($arg) { $this->cache = false; $id = self::getget('id'); $sidebar = self::getget('sidebar'); $this->idurlcontext = self::getget('idurl'); if ($id === false || $sidebar === false || !$this->itemexists($id)) { return $this->error_request('Invalid params'); } $themename = isset($_GET['themename']) ? trim($_GET['themename']) : tview::i(1)->themename; if (!preg_match('/^\\w[\\w\\.\\-_]*+$/', $themename) || !ttheme::exists($themename)) { $themename = tviews::i(1)->themename; } $theme = ttheme::getinstance($themename); try { $result = $this->getwidgetcontent($id, $sidebar); return turlmap::htmlheader(false) . $result; } catch (Exception $e) { return $this->error_request('Cant get widget content'); } }
protected function get_view($context) { $views = tviews::i(); $idview = isset($views->defaults['mobile']) ? $views->defaults['mobile'] : 1; return tview::i($idview); }