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); }
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"); }
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; }
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); }
public static function clearcache() { tfiler::delete(litepublisher::$paths->data . 'themes', false, false); litepublisher::$urlmap->clearcache(); }
public function log($s) { echo date('r') . "\n{$s}\n\n"; flush(); if (litepublisher::$debug) { tfiler::log($s, 'cron.log'); } }
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); }
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; }
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(); }
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); } }
<?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";
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(); } }
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); }
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; }
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'); } }
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; }
public static function deletedir($dir) { if (!@file_exists($dir)) { return false; } tfiler::delete($dir, true, true); @rmdir($dir); }
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'); } }
public static function clearcache() { tfiler::delete(self::getcachedir(), false, false); self::i()->loaded = array(); }