Esempio n. 1
0
 public function request($param)
 {
     global $HTTP_RAW_POST_DATA;
     if (!isset($HTTP_RAW_POST_DATA)) {
         $HTTP_RAW_POST_DATA = file_get_contents('php://input');
     }
     if (isset($HTTP_RAW_POST_DATA)) {
         $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA);
     }
     if (litepublisher::$debug) {
         tfiler::log("request:\n" . $HTTP_RAW_POST_DATA, 'xmlrpc.txt');
         $reqname = litepublisher::$paths->data . 'logs' . DIRECTORY_SEPARATOR . 'request.xml';
         file_put_contents($reqname, $HTTP_RAW_POST_DATA);
         @chmod($reqname, 0666);
         //$HTTP_RAW_POST_DATA = file_get_contents($GLOBALS['paths']['home'] . 'raw.txt');
     }
     $this->getmethods();
     $this->Server = new TXMLRPCParser($this);
     $this->Server->IXR_Server($this->items);
     $Result = $this->Server->XMLResult;
     $this->aftercall();
     if (litepublisher::$debug) {
         tfiler::log("responnse:\n" . $Result, 'xmlrpc.txt');
     }
     return $Result;
 }
function tpollsUninstall($self)
{
    tcssmerger::i()->deletestyle(dirname(__FILE__) . '/stars.min.css');
    tjsonserver::i()->unbind($self);
    tlocalmerger::i()->deleteplugin(tplugins::getname(__FILE__));
    $jsmerger = tjsmerger::i();
    $jsmerger->lock();
    $jsmerger->deletefile('default', '/plugins/polls/polls.client.min.js');
    $jsmerger->deletetext('default', 'poll');
    $jsmerger->unlock();
    $adminmenus = tadminmenus::i();
    $adminmenus->deletetree($adminmenus->url2id('/admin/plugins/polls/'));
    litepublisher::$classes->delete('tpolltypes');
    litepublisher::$classes->delete('tpollsman');
    litepublisher::$classes->delete('tpullpolls');
    litepublisher::$classes->delete('tadminpolltemplates');
    litepublisher::$classes->delete('tadminpolltypes');
    litepublisher::$classes->delete('tadminpolloptions');
    litepublisher::$classes->delete('tadminpolls');
    $manager = tdbmanager::i();
    $manager->deletetable($self->table);
    $manager->deletetable($self->users1);
    $manager->deletetable($self->users2);
    $manager->deletetable($self->votes);
    $dir = litepublisher::$paths->data . 'polls';
    tfiler::delete($dir, true, true);
}
 public function getcontent()
 {
     $merger = tlocalmerger::i();
     $tabs = new tuitabs();
     $html = $this->html;
     $lang = tlocal::i('options');
     $args = targs::i();
     foreach ($merger->items as $section => $items) {
         $tab = new tuitabs();
         $tab->add($lang->files, $html->getinput('editor', $section . '_files', tadminhtml::specchars(implode("\n", $items['files'])), $lang->files));
         $tabtext = new tuitabs();
         foreach ($items['texts'] as $key => $text) {
             $tabtext->add($key, $html->getinput('editor', $section . '_text_' . $key, tadminhtml::specchars($text), $key));
         }
         $tab->add($lang->text, $tabtext->get());
         $tabs->add($section, $tab->get());
     }
     $tabs->add('HTML', $html->getinput('editor', 'adminhtml_files', tadminhtml::specchars(implode("\n", $merger->html)), $lang->files));
     $args->formtitle = $lang->optionslocal;
     $args->dateformat = litepublisher::$options->dateformat;
     $dirs = tfiler::getdir(litepublisher::$paths->languages);
     $args->language = tadminhtml::array2combo(array_combine($dirs, $dirs), litepublisher::$options->language);
     $zones = timezone_identifiers_list();
     $args->timezone = tadminhtml::array2combo(array_combine($zones, $zones), litepublisher::$options->timezone);
     return $html->adminform('[text=dateformat]
 [combo=language]
 [combo=timezone]' . $tabs->get(), $args);
 }
 public function processform()
 {
     $plugin = tsourcefiles::i();
     if (isset($_POST['download'])) {
         set_time_limit(300);
         $version = litepublisher::$options->version;
         if (!(($s = http::get("http://litepublisher.googlecode.com/files/litepublisher.{$version}.tar.gz")) || ($s = http::get("http://litepublisher.com/download/litepublisher.{$version}.tar.gz")))) {
             return 'Error download';
         }
         tbackuper::include_tar();
         $tar = new tar();
         $tar->loadfromstring($s);
         if (!is_array($tar->files)) {
             unset($tar);
             return 'Invalid file archive';
         }
         tfiler::delete($plugin->root, true, false);
         foreach ($tar->files as $item) {
             $filename = $plugin->root . $item['name'];
             $dir = dirname($filename);
             if (!is_dir($dir)) {
                 $this->mkdir($dir);
             }
             file_put_contents($filename, $item['file']);
             @chmod($filename, 0666);
         }
         unset($tar);
         $plugin->reread();
     } elseif (isset($_POST['reread'])) {
         $plugin->reread();
     } else {
         $plugin->root = $_POST['root'];
         $plugin->save();
     }
 }
 public static function getlist($tml, $selected)
 {
     $result = '';
     if (!is_array($selected)) {
         $selected = array((string) $selected);
     }
     $html = tadminhtml::i();
     $html->section = 'themes';
     $args = targs::i();
     $list = tfiler::getdir(litepublisher::$paths->themes);
     sort($list);
     $args->filesurl = tadminhtml::getadminlink('/admin/views/themefiles/', 'theme');
     $parser = tthemeparser::i();
     foreach ($list as $name) {
         if ($about = $parser->getabout($name)) {
             $about['name'] = $name;
             if (!isset($about['screenshot'])) {
                 $about['screenshot'] = 'screenshot.png';
             }
             $args->add($about);
             $args->checked = in_array($name, $selected);
             $result .= $html->parsearg($tml, $args);
         }
     }
     return $result;
 }
 public function sendpost($id)
 {
     if ($this->host == '' || $this->login == '') {
         return false;
     }
     $post = tpost::i($id);
     ttheme::$vars['post'] = $post;
     $theme = ttheme::i();
     $content = $theme->parse($this->template);
     $date = getdate($post->posted);
     if ($post->status != 'published') {
         return;
     }
     $meta = $post->meta;
     $client = new IXR_Client($this->host, '/interface/xmlrpc');
     //$client = new IXR_Client($this->host, '/rpc.xml');
     if (!$client->query('LJ.XMLRPC.getchallenge')) {
         if (litepublisher::$debug) {
             tfiler::log('live journal: error challenge');
         }
         return false;
     }
     $response = $client->getResponse();
     $challenge = $response['challenge'];
     $args = array('username' => $this->login, 'auth_method' => 'challenge', 'auth_challenge' => $challenge, 'auth_response' => md5($challenge . md5($this->password)), 'ver' => "1", 'event' => $content, 'subject' => $post->title, 'year' => $date['year'], 'mon' => $date['mon'], 'day' => $date['mday'], 'hour' => $date['hours'], 'min' => $date['minutes'], 'props' => array('opt_nocomments' => !$post->commentsenabled, 'opt_preformatted' => true, 'taglist' => $post->tagnames));
     switch ($this->privacy) {
         case "public":
             $args['security'] = "public";
             break;
         case "private":
             $args['security'] = "private";
             break;
         case "friends":
             $args['security'] = "usemask";
             $args['allowmask'] = 1;
     }
     if ($this->community != '') {
         $args['usejournal'] = $this->community;
     }
     if (isset($meta->ljid)) {
         $method = 'LJ.XMLRPC.editevent';
         $args['itemid'] = $meta->ljid;
     } else {
         $method = 'LJ.XMLRPC.postevent';
     }
     if (!$client->query($method, $args)) {
         if (litepublisher::$debug) {
             tfiler::log('Something went wrong - ' . $client->getErrorCode() . ' : ' . $client->getErrorMessage());
         }
         return false;
     }
     if (!isset($meta->ljid)) {
         $response = $client->getResponse();
         $meta->ljid = $response['itemid'];
     }
     return $meta->ljid;
 }
function tsourcefilesUninstall($self)
{
    //die("Warning! You can lost all tickets!");
    litepublisher::$classes->delete('tsourcefilesmenu');
    $manager = tdbmanager::i();
    $manager->deletetable($self->table);
    Turlmap::unsub($self);
    tfiler::delete(litepublisher::$paths->data . 'sourcefiles', true, true);
}
Esempio n. 8
0
 public function loadall_tml()
 {
     $polls = tpolls::i();
     $filelist = tfiler::getfiles(litepublisher::$paths->data . 'polls');
     foreach ($filelist as $filename) {
         if (preg_match('/^(\\d*+)\\.php$/', $filename, $m)) {
             $id = (int) $m[1];
             $tml = $polls->get_tml($id);
         }
     }
     ksort($polls->tml_items, SORT_NUMERIC);
 }
function tregservicesUninstall($self)
{
    $name = basename(dirname(__FILE__));
    tcommentform::i()->unbind($self);
    turlmap::unsub($self);
    foreach ($self->items as $id => $classname) {
        litepublisher::$classes->delete($classname);
    }
    litepublisher::$classes->delete('tregserviceuser');
    litepublisher::$classes->delete('toauth');
    tfiler::delete(litepublisher::$paths->data . 'regservices', true, true);
    tusers::i()->unbind('tregserviceuser');
    tdbmanager::i()->deletetable('regservices');
    $css = tcssmerger::i();
    $css->deletestyle("/plugins/{$name}/regservices.min.css");
}
Esempio n. 10
0
 public function getpostbody()
 {
     global $HTTP_RAW_POST_DATA;
     if (!isset($HTTP_RAW_POST_DATA)) {
         $HTTP_RAW_POST_DATA = file_get_contents('php://input');
     }
     if (isset($HTTP_RAW_POST_DATA)) {
         $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA);
     }
     if (litepublisher::$debug) {
         tfiler::log("request:\n" . $HTTP_RAW_POST_DATA, 'json.txt');
         /*
         $reqname = litepublisher::$paths->data . 'logs' . DIRECTORY_SEPARATOR  . 'request.json';
         file_put_contents($reqname, $HTTP_RAW_POST_DATA);
         @chmod($reqname, 0666);
         $HTTP_RAW_POST_DATA = file_get_contents($GLOBALS['paths']['home'] . 'raw.txt');
         */
     }
     return $HTTP_RAW_POST_DATA;
 }
Esempio n. 11
0
function auto_convert_themes()
{
    $dir = litepublisher::$paths->home . 'themes4' . DIRECTORY_SEPARATOR;
    @mkdir($dir, 0777);
    @chmod($dir, 0777);
    $list = tfiler::getdir(litepublisher::$paths->themes);
    sort($list);
    echo "<pre>\n";
    foreach ($list as $name) {
        echo "{$name} theme:\n";
        if ($name == 'default') {
            continue;
        }
        $newdir = $dir . $name;
        @mkdir($newdir, 0777);
        @chmod($newdir, 0777);
        $theme = ttheme::getinstance($name);
        tthemeparser::compress($theme, $newdir . DIRECTORY_SEPARATOR);
    }
}
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);
}
Esempio n. 13
0
 public static function clearcache()
 {
     tfiler::delete(litepublisher::$paths->data . 'themes', false, false);
     litepublisher::$urlmap->clearcache();
 }
Esempio n. 14
0
 public function log($s)
 {
     echo date('r') . "\n{$s}\n\n";
     flush();
     if (litepublisher::$debug) {
         tfiler::log($s, 'cron.log');
     }
 }
Esempio n. 15
0
 private function openfile()
 {
     $this->count = 0;
     $this->countfiles++;
     if ($this->fd = gzopen(litepublisher::$paths->files . litepublisher::$domain . ".{$this->countfiles}.xml.gz", 'w')) {
         $this->WriteHeader();
     } else {
         tfiler::log("error write file to folder " . litepublisher::$paths->files);
         exit;
     }
 }
 protected function create()
 {
     parent::create();
     $this->names = tfiler::getdir(litepublisher::$paths->plugins);
     sort($this->names);
 }
Esempio n. 17
0
 public static function savemodified()
 {
     if (self::$modified) {
         if (self::$disabled) {
             return false;
         }
         $lock = litepublisher::$paths->data . 'storage.lok';
         if (($fh = @fopen($lock, 'w')) && flock($fh, LOCK_EX | LOCK_NB)) {
             self::savetofile(litepublisher::$paths->data . 'storage', serialize(self::$data));
             flock($fh, LOCK_UN);
             fclose($fh);
             @chmod($lock, 0666);
         } else {
             tfiler::log('Storage locked, data not saved');
         }
         self::$modified = false;
         return true;
     }
     return false;
 }
Esempio n. 18
0
 public function update(array $list)
 {
     $add = array_diff($list, array_keys($this->items));
     $delete = array_diff(array_keys($this->items), $list);
     $delete = array_intersect($delete, tfiler::getdir(litepublisher::$paths->plugins));
     $this->lock();
     foreach ($delete as $name) {
         $this->Delete($name);
     }
     foreach ($add as $name) {
         $this->Add($name);
     }
     $this->unlock();
 }
Esempio n. 19
0
 public function clear()
 {
     $path = litepublisher::$paths->cache;
     if ($h = @opendir($path)) {
         while (FALSE !== ($filename = @readdir($h))) {
             if ($filename == '.' || $filename == '..' || $filename == '.svn') {
                 continue;
             }
             $file = $path . $filename;
             if (is_dir($file)) {
                 tfiler::delete($file . DIRECTORY_SEPARATOR, true, true);
             } else {
                 unlink($file);
             }
         }
         closedir($h);
     }
 }
Esempio n. 20
0
<?php

define('litepublisher_mode', 'xmlrpc');
include 'index.php';
$o = litepublisher::$options;
echo "<pre>\n";
echo "current options\r\n{$o->filetime_offset} = file timeoffset\r\n{$o->timezone} = time zone\r\n";
$f = litepublisher::$paths->data . 'index.htm';
echo date('r', filemtime($f)), " = file time\n";
touch($f);
clearstatcache();
echo date('r', filemtime($f)), " = file time\n";
echo tfiler::get_filetime_offset(), " = time offset tfiler\n";
Esempio n. 21
0
 public function request($arg)
 {
     if (isset($_POST['submit']) && isset($_POST['assoc_handle'])) {
         $h = $_POST['assoc_handle'];
         if (isset($this->keys[$h]['request'])) {
             $_REQUEST = $this->keys[$h]['request'];
         }
     }
     if (litepublisher::$debug) {
         $log = $_SERVER['REQUEST_URI'];
         $log .= var_export($_REQUEST, true);
         $log .= "\nget:\n";
         $log .= var_export($_GET, true);
         $log .= "\npost:\n";
         $log .= var_export($_POST, true);
         $log .= "\nkeys:\n";
         $log .= var_export($this->keys, true);
         $log .= "\nhas key\n";
         $log .= isset($this->keys[$_REQUEST['openid_assoc_handle']]) ? "true\n\n" : "false\n\n";
         tfiler::log($log, 'openid.log');
     }
     $this->LoadBigMath();
     ini_set('arg_separator.output', '&');
     if (!isset($_REQUEST['openid_mode'])) {
         return $this->nomode();
     }
     switch ($_REQUEST['openid_mode']) {
         case 'associate':
             return $this->associate();
         case 'cancel':
             return $this->cancel();
         case 'checkid_immediate':
             return $this->checkid_immediate();
         case 'checkid_setup':
             return $this->checkid_setup();
         case 'check_authentication':
             return $this->check_authentication();
         case 'error':
             return $this->DoError();
         case 'id_res':
             return $this->id_res();
         default:
             return $this->nomode();
     }
 }
Esempio n. 22
0
 public function getcontent()
 {
     $result = '';
     $views = tviews::i();
     $html = $this->html;
     $lang = tlocal::i('views');
     $args = new targs();
     switch ($this->name) {
         case 'views':
             $html->addsearch('views');
             $lang->addsearch('views');
             $id = tadminhtml::getparam('idview', 0);
             if (!$id || !$views->itemexists($id)) {
                 $adminurl = $this->adminurl . 'view';
                 return $html->h4($html->getlink($this->url . '/addview/', $lang->add)) . $html->buildtable($views->items, array(array('left', $lang->name, "<a href=\"{$adminurl}=\$id\">\$name</a>"), array('center', $lang->delete, "<a href=\"{$adminurl}=\$id&action=delete\" class=\"confirm-delete-link\">{$lang->delete}</a>")));
             }
             $result = self::getviewform($this->url);
             $tabs = new tuitabs();
             $menuitems = array();
             foreach ($views->items as $itemview) {
                 $class = $itemview['menuclass'];
                 $menuitems[$class] = $class == 'tmenus' ? $lang->stdmenu : ($class == 'tadminmenus' ? $lang->adminmenu : $class);
             }
             $itemview = $views->items[$id];
             $args->add($itemview);
             $tabs->add($lang->widgets, $this->get_view_sidebars($id, $html, $lang, $args));
             $args->menu = tadminhtml::array2combo($menuitems, $itemview['menuclass']);
             $tabs->add($lang->name, '[text=name]' . ($id == 1 ? '' : '[checkbox=customsidebar] [checkbox=disableajax]') . '[checkbox=hovermenu] [combo=menu]');
             $view = tview::i($id);
             $lang->firstsearch('themes');
             $tabs->add($lang->theme, tadminthemes::getlist($html->radiotheme, $view->theme->name));
             if (count($view->custom)) {
                 $tabs->add($lang->custom, $this->get_custom($view));
             }
             $result .= $html->h4->help;
             $form = new adminform($args);
             $form->id = 'admin-view-form';
             $form->title = $lang->edit;
             $form->items = $tabs->get();
             $result .= $form->get();
             $result .= ttemplate::i()->getjavascript(ttemplate::i()->jsmerger_adminviews);
             break;
         case 'addview':
             $args->formtitle = $lang->addview;
             $result .= $html->adminform('[text=name]', $args);
             break;
         case 'spec':
             $tabs = new tuitabs();
             $inputs = '';
             foreach (self::getspecclasses() as $classname) {
                 $obj = getinstance($classname);
                 $args->classname = $classname;
                 $name = substr($classname, 1);
                 $args->title = $lang->{$name};
                 $inputs = self::getcomboview($obj->idview, "idview-{$classname}");
                 if (isset($obj->data['keywords'])) {
                     $inputs .= $html->getedit("keywords-{$classname}", $obj->data['keywords'], $lang->keywords);
                 }
                 if (isset($obj->data['description'])) {
                     $inputs .= $html->getedit("description-{$classname}", $obj->data['description'], $lang->description);
                 }
                 if (isset($obj->data['head'])) {
                     $inputs .= $html->getinput('editor', "head-{$classname}", tadminhtml::specchars($obj->data['head']), $lang->head);
                 }
                 $tabs->add($lang->{$name}, $inputs);
             }
             $args->formtitle = $lang->defaults;
             $result .= tuitabs::gethead() . $html->adminform($tabs->get(), $args);
             break;
         case 'group':
             $args->formtitle = $lang->viewposts;
             $result .= $html->adminform(self::getcomboview($views->defaults['post'], 'postview') . '<input type="hidden" name="action" value="posts" />', $args);
             $args->formtitle = $lang->viewmenus;
             $result .= $html->adminform(self::getcomboview($views->defaults['menu'], 'menuview') . '<input type="hidden" name="action" value="menus" />', $args);
             $args->formtitle = $lang->themeviews;
             $view = tview::i();
             $list = tfiler::getdir(litepublisher::$paths->themes);
             sort($list);
             $themes = array_combine($list, $list);
             $result .= $html->adminform($html->getcombo('themeview', tadminhtml::array2combo($themes, $view->themename), $lang->themename) . '<input type="hidden" name="action" value="themes" />', $args);
             break;
         case 'defaults':
             $items = '';
             $theme = ttheme::i();
             $tml = $theme->templates['content.admin.combo'];
             foreach ($views->defaults as $name => $id) {
                 $args->name = $name;
                 $args->value = self::getcombo($id);
                 $args->data['$lang.$name'] = $lang->{$name};
                 $items .= $theme->parsearg($tml, $args);
             }
             $args->items = $items;
             $args->formtitle = $lang->defaultsform;
             $result .= $theme->parsearg($theme->content->admin->form, $args);
             break;
         case 'headers':
             $tabs = new tuitabs();
             $args->heads = ttemplate::i()->heads;
             $tabs->add($lang->headstitle, '[editor=heads]');
             $args->adminheads = tadminmenus::i()->heads;
             $tabs->add($lang->admin, '[editor=adminheads]');
             $ajax = tajaxposteditor::i();
             $args->ajaxvisual = $ajax->ajaxvisual;
             $args->visual = $ajax->visual;
             $args->show_file_perm = litepublisher::$options->show_file_perm;
             $tabs->add($lang->posteditor, '[checkbox=show_file_perm] [checkbox=ajaxvisual] [text=visual]');
             $args->formtitle = $lang->headstitle;
             $result = $html->adminform($tabs->get(), $args);
             $result .= tuitabs::gethead();
             break;
         case 'admin':
             return $this->adminoptionsform->getform();
     }
     return $html->fixquote($result);
 }
Esempio n. 23
0
 private function renamedata()
 {
     if (!is_dir(litepublisher::$paths->backup)) {
         mkdir(litepublisher::$paths->backup, 0777);
         @chmod(litepublisher::$paths->backup, 0777);
     }
     $backup = litepublisher::$paths->backup . 'data-' . time();
     $data = rtrim(litepublisher::$paths->data, DIRECTORY_SEPARATOR);
     rename($data, $backup);
     rename(litepublisher::$paths->storage . 'newdata', $data);
     tfiler::delete($backup, true, true);
 }
 private function getbackupfilelist()
 {
     $list = tfiler::getfiles(litepublisher::$paths->backup);
     if (!count($list)) {
         return '';
     }
     $items = array();
     $html = $this->html;
     foreach ($list as $filename) {
         if (strend($filename, '.gz') || strend($filename, '.zip')) {
             $items[]['filename'] = $filename;
         }
     }
     if (!count($items)) {
         return '';
     }
     $lang = $this->lang;
     return $this->html->h4->backupheadern . $this->html->buildtable($items, array(array('right', $lang->download, "<a href=\"{$this->adminurl}=\$filename&action=download\">\$filename</a>"), array('right', $lang->delete, "<a href=\"{$this->adminurl}=\$filename&action=delete\">{$lang->delete}</a>")));
 }
 public function getcontent()
 {
     $datadir = litepublisher::$paths->data . 'keywords' . DIRECTORY_SEPARATOR;
     $selfdir = dirname(__FILE__) . DIRECTORY_SEPARATOR;
     $tml = parse_ini_file($selfdir . 'keywords.templates.ini', false);
     $about = tplugins::getabout(tplugins::getname(__FILE__));
     $html = $this->html;
     $lang = $this->lang;
     $args = targs::i();
     if (isset($_GET['filename'])) {
         $filename = $_GET['filename'];
         if (!@file_exists($datadir . $filename)) {
             return $html->h3->notfound;
         }
         $args->filename = $filename;
         $args->content = file_get_contents($datadir . $filename);
         $args->formtitle = $about['edithead'];
         return $html->adminform('[editor=content]', $args);
     }
     $page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
     $result = '';
     if ($page == 1) {
         $widget = tkeywordswidget::i();
         $widgets = twidgets::i();
         $idwidget = $widgets->find($widget);
         $args->count = $widget->count;
         $args->trace = $widget->trace;
         $args->notify = $widget->notify;
         $args->optionsform = 1;
         $args->title = $widget->gettitle($idwidget);
         $args->blackwords = tadminhtml::specchars(implode("\n", tkeywordsplugin::i()->blackwords));
         $lang = tplugins::getlangabout(__FILE__);
         $args->formtitle = $about['name'];
         $result .= $html->adminform('[text=title]
   [text=count]
   [checkbox=trace]
   [checkbox=notify]
   [editor=blackwords]
   [hidden=optionsform]', $args);
     }
     $from = 100 * ($page - 1);
     $filelist = tfiler::getfiles($datadir);
     sort($filelist);
     $count = ceil(count($filelist) / 100);
     $links = $this->getlinkpages($page, $count);
     $result .= $links;
     $filelist = array_slice($filelist, $from, 100, true);
     $list = '';
     $args->url = litepublisher::$site->url . '/admin/plugins/' . litepublisher::$site->q . 'plugin=' . basename(dirname(__FILE__));
     foreach ($filelist as $filename) {
         if (!preg_match('/^\\d+?\\.\\d+?\\.php$/', $filename)) {
             continue;
         }
         $args->filename = $filename;
         $args->content = file_get_contents($datadir . $filename);
         $list .= $html->parsearg($tml['item'], $args);
     }
     $args->list = $list;
     $result .= $html->parsearg($tml['form'], $args);
     $result .= $links;
     return $result;
 }
Esempio n. 26
0
 public function update()
 {
     $log = $this->log;
     false;
     if ($log) {
         tfiler::log("begin update", 'update');
     }
     tlocal::clearcache();
     $this->versions = self::getversions();
     $nextver = $this->nextversion;
     if ($log) {
         tfiler::log("update started from litepublisher::{$options->version} to {$this->version}", 'update');
     }
     $v = litepublisher::$options->version + 0.01;
     while (version_compare($v, $nextver) <= 0) {
         $ver = (string) $v;
         if (strlen($ver) == 3) {
             $ver .= '0';
         }
         if (strlen($ver) == 1) {
             $ver .= '.00';
         }
         if ($log) {
             tfiler::log("{$v} selected to update", 'update');
         }
         $this->run($v);
         litepublisher::$options->version = $ver;
         litepublisher::$options->savemodified();
         $v = $v + 0.01;
     }
     ttheme::clearcache();
     tlocal::clearcache();
     tsidebars::fix();
     if ($log) {
         tfiler::log("update finished", 'update');
     }
 }
Esempio n. 27
0
 public function sendfile()
 {
     $themename = isset($_POST['themename']) ? trim($_POST['themename']) : '';
     if ($themename != '') {
         $themename = tlinkgenerator::i()->filterfilename($themename);
     }
     if ($themename == '') {
         $themename = time();
     }
     $path = "themes/generator-{$themename}/";
     litepublisher::$classes->include_file(litepublisher::$paths->libinclude . 'zip.lib.php');
     $zip = new zipfile();
     $themedir = litepublisher::$paths->plugins . 'themegenerator' . DIRECTORY_SEPARATOR . $this->type . DIRECTORY_SEPARATOR;
     $args = new targs();
     $colors = "[themecolors]\nthemename = \"{$themename}\"\n";
     foreach ($this->colors as $name => $value) {
         $colors .= "{$name} = \"{$value}\"\n";
         $args->{$name} = $value;
     }
     foreach (array('headerurl', 'logourl') as $name) {
         if (strbegin($this->colors[$name], 'http://')) {
             $basename = substr($this->colors[$name], strrpos($this->colors[$name], '/') + 1);
             $filename = litepublisher::$paths->files . 'themegen' . DIRECTORY_SEPARATOR . $basename;
             $zip->addFile(file_get_contents($filename), $path . 'images/' . $basename);
             $args->{$name} = 'images/' . $basename;
         }
     }
     $res = $this->res;
     $css = strtr(tfilestorage::getfile($res . 'scheme.tml'), $args->data);
     $zip->addFile($colors, $path . 'colors.ini');
     $filelist = tfiler::getfiles($themedir);
     foreach ($filelist as $filename) {
         $content = tfilestorage::getfile($themedir . $filename);
         switch ($filename) {
             case 'style.css':
                 $content .= $css;
                 break;
             case 'about.ini':
                 $content = str_replace('name = generator', "name = generator-{$themename}", $content);
                 break;
         }
         $zip->addFile($content, $path . $filename);
     }
     $result = $zip->file();
     if (ob_get_level()) {
         @ob_end_clean();
     }
     header('HTTP/1.1 200 OK', true, 200);
     header('Content-type: application/octet-stream');
     header('Content-Disposition: attachment; filename=generator.theme.' . $themename . '.zip');
     header('Content-Length: ' . strlen($result));
     header('Last-Modified: ' . date('r'));
     Header('Cache-Control: no-cache, must-revalidate');
     Header('Pragma: no-cache');
     echo $result;
     exit;
 }
Esempio n. 28
0
 public static function deletedir($dir)
 {
     if (!@file_exists($dir)) {
         return false;
     }
     tfiler::delete($dir, true, true);
     @rmdir($dir);
 }
Esempio n. 29
0
 public function handexception($e)
 {
     $log = "Caught exception:\r\n" . $e->getMessage() . "\r\n";
     $trace = $e->getTrace();
     foreach ($trace as $i => $item) {
         if (isset($item['line'])) {
             $log .= sprintf('#%d %d %s ', $i, $item['line'], $item['file']);
         }
         if (isset($item['class'])) {
             $log .= $item['class'] . $item['type'] . $item['function'];
         } else {
             $log .= $item['function'];
         }
         if (isset($item['args']) && count($item['args'])) {
             $args = array();
             foreach ($item['args'] as $arg) {
                 $args[] = self::var_export($arg);
             }
             $log .= "\n";
             $log .= implode(', ', $args);
         }
         $log .= "\n";
     }
     $log = str_replace(litepublisher::$paths->home, '', $log);
     $this->errorlog .= str_replace("\n", "<br />\n", htmlspecialchars($log));
     tfiler::log($log, 'exceptions.log');
     if (!(litepublisher::$debug || $this->echoexception || $this->admincookie || litepublisher::$urlmap->adminpanel)) {
         tfiler::log($log, 'exceptionsmail.log');
     }
 }
Esempio n. 30
0
 public static function clearcache()
 {
     tfiler::delete(self::getcachedir(), false, false);
     self::i()->loaded = array();
 }