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 '';
 }
 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 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;
 }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
0
 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);
     }
 }
Ejemplo n.º 6
0
/**
* 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();
}
Ejemplo n.º 8
0
 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 '';
 }
Ejemplo n.º 11
0
 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 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;
 }
Ejemplo n.º 13
0
 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;
 }
Ejemplo n.º 14
0
 public function getidview()
 {
     return tviews::i()->defaults['admin'];
 }
Ejemplo n.º 15
0
 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();
 }
Ejemplo n.º 16
0
 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();
 }
Ejemplo n.º 17
0
 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();
 }
function tthemegeneratorUninstall($self)
{
    if ($self->id == 0) {
        if ($id = $self->getowner()->class2id(get_class($self))) {
            $self->loaddata($id);
        }
    }
    $views = tviews::instance();
    $views->delete($self->idview);
    $views->delete($self->leftview);
    $views->delete($self->rightview);
    $merger = tlocalmerger::i();
    unset($merger->items['themegenerator']);
    $merger->save();
    $js = tjsmerger::i();
    unset($js->items['themegenerator']);
    $js->save();
    $template = ttemplate::i();
    unset($template->data['jsmerger_themegenerator']);
    $template->save();
    tcron::i()->unbind($self);
    $menus = tmenus::i();
    $menus->deletetree($self->id);
    tfiler::delete(litepublisher::$paths->files . 'themegen', true, true);
}
Ejemplo n.º 19
0
 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');
     }
 }
Ejemplo n.º 20
0
 protected function get_view($context)
 {
     $views = tviews::i();
     $idview = isset($views->defaults['mobile']) ? $views->defaults['mobile'] : 1;
     return tview::i($idview);
 }