public function request($id) { $files = tfiles::i(); if (!$files->itemexists($id)) { return 404; } $item = $files->getitem($id); $filename = '/files/' . $item['filename']; if ((int) $item['idperm'] == 0) { if ($filename == litepublisher::$urlmap->url) { header('HTTP/1.1 500 Internal Server Error', true, 500); exit; } return litepublisher::$urlmap->redir($filename); } $this->id = $id; $this->item = $item; $result = '<?php Header(\'Cache-Control: no-cache, must-revalidate\'); Header(\'Pragma: no-cache\'); ?>'; $perm = tperm::i($item['idperm']); $result .= $perm->getheader($this); $result .= sprintf('<?php %s::sendfile(%s); ?>', get_class($this), var_export($item, true)); //die(htmlspecialchars($result)); return $result; }
public function reqest($args) { if (!isset($_GET['id'])) { return 404; } $id = (int) $_GET['fileid']; $files = tfiles::i(); if (!$files->itemexists($id)) { return 404; } if (dbversion) { if ($count = $this->db->getvalue($id, 'downloaded')) { $count++; $this->db->setvalue($id, 'downloaded', $count); } else { $this->db->add(array('id' => $id, 'downloaded' => 1)); } } else { if (!isset($this->items[$id])) { $this->items[$id] = 1; } else { $this->items[$id]++; } $this->save(); } $url = $files->geturl($id); litepublisher::$urlmap->redir($url); }
public function getcontent() { $result = ''; $files = tfiles::i(); $icons = ticons::i(); $html = $this->html; $lang = tlocal::admin('files'); $args = targs::i(); $a = array(); //добавить 0 для отсутствия иконки $a[0] = $lang->noicon; $allicons = self::getallicons(); foreach ($allicons as $id) { $args->id = $id; $item = $files->getitem($id); $args->add($item); $a[$id] = $html->comboitem($args); } $list = ''; foreach ($icons->items as $name => $id) { $args->name = $name; $title = $lang->{$name}; if ($title == '') { $title = tlocal::usefile('install')->{$name}; } $args->title = $title; $args->combo = $html->array2combo($a, $id); $list .= $html->iconitem($args); } $args->formtitle = $lang->iconheader; $result .= $html->adminform($list, $args); return $html->fixquote($result); }
public function fileadded($id) { $files = tfiles::i(); $item = $files->getitem($id); if ('image' != $item['media']) { return; } $fileurl = $files->geturl($id); if ($s = http::get('http://www.smushit.com/ysmush.it/ws.php?img=' . urlencode($fileurl))) { $json = json_decode($s); if (isset($json->error) || -1 === (int) $json->dest_size || !$json->dest) { return; } $div = $item['size'] - (int) $json->dest_size; if ($div / ($item['size'] / 100) < 3) { return; } $dest = urldecode($json->dest); if (!strbegin($dest, 'http')) { $dest = 'http://www.smushit.com/' . $dest; } if ($content = http::get($dest)) { return $files->setcontent($id, $content); } } }
function trssMultimediaUninstall($self) { turlmap::unsub($self); $files = tfiles::i(); $files->unbind($self); $meta = tmetawidget::i(); $meta->delete('media'); }
public function geticon($name) { if (isset($this->items[$name]) && $this->items[$name] > 0) { $files = tfiles::i(); return $files->geticon($this->items[$name]); } return ''; }
public function addfile($id) { $files = tfiles::i(); $file = $files->getitem($id); $posts = $files->itemsposts->getposts($id); if (count($posts) == 0) { $postlink = litepublisher::$site->url . '/'; } else { $post = tpost::i($posts[0]); $postlink = $post->link; } $item = $this->domrss->AddItem(); tnode::addvalue($item, 'title', $file['title']); tnode::addvalue($item, 'link', $postlink); tnode::addvalue($item, 'pubDate', $file['posted']); $media = tnode::add($item, 'media:content'); tnode::attr($media, 'url', $files->geturl($id)); tnode::attr($media, 'fileSize', $file['size']); tnode::attr($media, 'type', $file['mime']); tnode::attr($media, 'medium', $file['media']); tnode::attr($media, 'expression', 'full'); if ($file['width'] > 0 && $file['height'] > 0) { tnode::attr($media, 'height', $file['height']); tnode::attr($media, 'width', $file['width']); } /* if (!empty($file['bitrate'])) tnode::attr($media, 'bitrate', $file['bitrate']); if (!empty($file['framerate'])) tnode::attr($media, 'framerate', $file['framerate']); if (!empty($file['samplingrate'])) tnode::attr($media, 'samplingrate', $file['samplingrate']); if (!empty($file['channels'])) tnode::attr($media, 'channels', $file['channels']); if (!empty($file['duration'])) tnode::attr($media, 'duration', $file['duration']); */ $hash = tnode::addvalue($item, 'media:hash', self::hashtomd5($file['hash'])); tnode::attr($hash, 'algo', "md5"); if (!empty($file['keywords'])) { tnode::addvalue($item, 'media:keywords', $file['keywords']); } if (!empty($file['description'])) { $description = tnode::addvalue($item, 'description', $file['description']); tnode::attr($description, 'type', 'html'); } if ($file['preview'] > 0) { $idpreview = $file['preview']; $preview = $files->getitem($idpreview); $thumbnail = tnode::add($item, 'media:thumbnail'); tnode::attr($thumbnail, 'url', $files->geturl($idpreview)); if ($preview['width'] > 0 && $preview['height'] > 0) { tnode::attr($thumbnail, 'height', $preview['height']); tnode::attr($thumbnail, 'width', $preview['width']); } } $this->onitem($item, $file); }
public function processform() { if (!($id = $this->getidfile())) { return $this->notfound; } $files = tfiles::i(); $item = $files->getitem($id); if (isset($_POST['delete'])) { $files->delete($item['preview']); $files->setvalue($id, 'preview', 0); return $this->html->h4->deleted; } $isauthor = 'author' == litepublisher::$options->group; if (isset($_FILES['filename']['error']) && $_FILES['filename']['error'] > 0) { $error = tlocal::get('uploaderrors', $_FILES["filename"]["error"]); return "<h3>{$error}</h3>\n"; } if (!is_uploaded_file($_FILES['filename']['tmp_name'])) { return sprintf($this->html->h4red->attack, $_FILES["filename"]["name"]); } if ($isauthor && ($r = tauthor_rights::i()->canupload())) { return $r; } $filename = $_FILES['filename']['name']; $tempfilename = $_FILES['filename']['tmp_name']; $parser = tmediaparser::i(); $filename = tmediaparser::linkgen($filename); $parts = pathinfo($filename); $newtemp = $parser->gettempname($parts); if (!move_uploaded_file($tempfilename, litepublisher::$paths->files . $newtemp)) { return sprintf($this->html->h4->attack, $_FILES["filename"]["name"]); } $resize = !isset($_POST['noresize']); $idpreview = $parser->add(array('filename' => $filename, 'tempfilename' => $newtemp, 'enabledpreview' => $resize, 'ispreview' => $resize)); if ($idpreview) { if ($item['preview'] > 0) { $files->delete($item['preview']); } $files->setvalue($id, 'preview', $idpreview); $files->setvalue($idpreview, 'parent', $id); if ($item['idperm'] > 0) { $files->setvalue($idpreview, 'idperm', $item['idperm']); tprivatefiles::i()->setperm($idpreview, (int) $item['idperm']); } return $this->html->h4->success; } }
public function uninstall() { $files = tfiles::i(); $files->lock(); $icons = ticons::i(); $icons->lock(); $this->delete('post', 'document-list.png'); $this->delete('categories', 'asterisk.png'); $this->delete('tags', 'tag-label.png'); $this->delete('archives', 'book.png'); $this->delete('audio', 'document-music.png'); $this->delete('video', 'film.png'); $this->delete('bin', 'document-binary.png'); $this->delete('document', 'document-text.png'); $this->delete('news', 'blog-blue.png'); $icons->unlock(); $files->unlock(); litepublisher::$urlmap->clearcache(); }
<?php Header('Cache-Control: no-cache, must-revalidate'); Header('Pragma: no-cache'); error_reporting(E_ALL | E_NOTICE | E_STRICT | E_WARNING); ini_set('display_errors', 1); define('litepublisher_mode', 'xmlrpc'); include 'index.php'; litepublisher::$debug = true; set_time_limit(300); $p = tmediaparser::i(); if ($p->maxwidth == 0 || $p->maxheight == 0) { die('0 max sizes'); } $files = tfiles::i(); if ($items = $files->db->getitems("media = 'image' and parent = 0 and (width > {$p->maxwidth} or height > {$p->maxheight})")) { echo count($items), ' count<br>'; foreach ($items as $item) { $srcfilename = litepublisher::$paths->files . $item['filename']; if ($source = tmediaparser::readimage($srcfilename)) { $sourcex = imagesx($source); $sourcey = imagesy($source); $x = $p->maxwidth; $y = $p->maxheight; $ratio = $sourcex / $sourcey; if ($x / $y > $ratio) { $x = $y * $ratio; } else { $y = $x / $ratio; } $dest = imagecreatetruecolor($x, $y);
public function addpost(tpost $post) { $item = $this->domrss->AddItem(); tnode::addvalue($item, 'title', $post->title); tnode::addvalue($item, 'link', $post->link); tnode::addvalue($item, 'comments', $post->link . '#comments'); tnode::addvalue($item, 'pubDate', $post->pubdate); $guid = tnode::addvalue($item, 'guid', $post->link); tnode::attr($guid, 'isPermaLink', 'true'); if (class_exists('tprofile')) { $profile = tprofile::i(); tnode::addvalue($item, 'dc:creator', $profile->nick); } else { tnode::addvalue($item, 'dc:creator', 'admin'); } $categories = tcategories::i(); $names = $categories->getnames($post->categories); foreach ($names as $name) { if (empty($name)) { continue; } tnode::addcdata($item, 'category', $name); } $tags = ttags::i(); $names = $tags->getnames($post->tags); foreach ($names as $name) { if (empty($name)) { continue; } tnode::addcdata($item, 'category', $name); } $content = ''; $this->callevent('beforepost', array($post->id, &$content)); if ($this->template == '') { $content .= $post->replacemore($post->rss, true); } else { $content .= ttheme::parsevar('post', $post, $this->template); } $this->callevent('afterpost', array($post->id, &$content)); tnode::addcdata($item, 'content:encoded', $content); tnode::addcdata($item, 'description', strip_tags($content)); tnode::addvalue($item, 'wfw:commentRss', $post->rsscomments); if (count($post->files) > 0) { $files = tfiles::i(); $files->loaditems($post->files); foreach ($post->files as $idfile) { $file = $files->getitem($idfile); $enclosure = tnode::add($item, 'enclosure'); tnode::attr($enclosure, 'url', litepublisher::$site->files . '/files/' . $file['filename']); tnode::attr($enclosure, 'length', $file['size']); tnode::attr($enclosure, 'type', $file['mime']); } } $post->onrssitem($item); $this->onpostitem($item, $post); return $item; }
public function getfiles() { return tfiles::i(); }
public function uploadthumb($filename, &$content) { $hash = trim(base64_encode(md5($content, true)), '='); $files = tfiles::i(); if (($id = $files->indexof('hash', $hash)) || ($id = $files->getdb('imghashes')->findid('hash = ' . dbquote($hash)))) { return $id; } if ($image = imagecreatefromstring($content)) { if (!strbegin($filename, litepublisher::$paths->files)) { $filename = litepublisher::$paths->files . ltrim($filename, '\\/'); } $destfilename = self::replace_ext($filename, '.jpg'); $destfilename = self::makeunique($destfilename); if (self::createthumb($image, $destfilename, $this->previewwidth, $this->previewheight, $this->ratio, $this->clipbounds, $this->quality_snapshot)) { $info = getimagesize($destfilename); $item = $this->getdefaultvalues(str_replace(DIRECTORY_SEPARATOR, '/', substr($destfilename, strlen(litepublisher::$paths->files)))); $item['media'] = 'image'; $item['mime'] = $info['mime']; $item['width'] = $info[0]; $item['height'] = $info[1]; $id = $files->additem($item); if ($hash != $files->getvalue($id, 'hash')) { $files->getdb('imghashes')->insert(array('id' => $id, 'hash' => $hash)); } $this->added($id); return $id; } } return false; }
public function geticonlink($id) { $item = $this->getitem($id); if ($item['icon'] == 0) { return ''; } $files = tfiles::i(); if ($files->itemexists($item['icon'])) { return $files->geticon($item['icon'], $item['title']); } $this->setvalue($id, 'icon', 0); if (!$this->dbversion) { $this->save(); } return ''; }
function tdownloadcounterUninstall($self) { turlmap::unsub($self); $files = tfiles::i(); $files->unbind($self); }
public function files_upload(array $args) { if ('POST' != $_SERVER['REQUEST_METHOD']) { return $this->forbidden(); } if (!isset($_FILES['Filedata']) || !is_uploaded_file($_FILES['Filedata']['tmp_name']) || $_FILES['Filedata']['error'] != 0) { return $this->forbidden(); } //psevdo logout litepublisher::$options->user = null; if (!litepublisher::$options->hasgroup('author')) { return $this->forbidden(); } if (in_array(litepublisher::$options->groupnames['author'], litepublisher::$options->idgroups) && ($r = tauthor_rights::i()->canupload())) { return $r; } $parser = tmediaparser::i(); $id = $parser->uploadfile($_FILES['Filedata']['name'], $_FILES['Filedata']['tmp_name'], '', '', '', false); if (isset($_POST['idperm'])) { $idperm = (int) $_POST['idperm']; if ($idperm > 0) { tprivatefiles::i()->setperm($id, (int) $_POST['idperm']); } } $this->uploaded($id); $files = tfiles::i(); $item = $files->db->getitem($id); $files->items[$id] = $item; $result = array('id' => $id, 'item' => $item); if ($item['preview'] > 0) { $result['preview'] = $files->db->getitem($item['preview']); } return $result; }
public function processform() { $files = tfiles::i(); $html = $this->html; if (empty($_GET['action'])) { $isauthor = 'author' == litepublisher::$options->group; if ($_POST['uploadmode'] == 'file') { if (isset($_FILES['filename']['error']) && $_FILES['filename']['error'] > 0) { return $html->h4(tlocal::get('uploaderrors', $_FILES['filename']['error'])); } if (!is_uploaded_file($_FILES['filename']['tmp_name'])) { return sprintf($this->html->h4red->attack, $_FILES["filename"]["name"]); } if ($isauthor && ($r = tauthor_rights::i()->canupload())) { return $r; } $overwrite = isset($_POST['overwrite']); $parser = tmediaparser::i(); $id = $parser->uploadfile($_FILES['filename']['name'], $_FILES['filename']['tmp_name'], $_POST['title'], $_POST['description'], $_POST['keywords'], $overwrite); } else { //downloadurl $content = http::get($_POST['downloadurl']); if ($content == false) { return $this->html->h2->errordownloadurl; } $filename = basename(trim($_POST['downloadurl'], '/')); if ($filename == '') { $filename = 'noname.txt'; } if ($isauthor && ($r = tauthor_rights::i()->canupload())) { return $r; } $overwrite = isset($_POST['overwrite']); $parser = tmediaparser::i(); $id = $parser->upload($filename, $content, $_POST['title'], $_POST['description'], $_POST['keywords'], $overwrite); } if (isset($_POST['idperm'])) { tprivatefiles::i()->setperm($id, (int) $_POST['idperm']); } return $this->html->h4->success; } elseif ($_GET['action'] == 'edit') { $id = $this->idget(); if (!$files->itemexists($id)) { return $this->notfound; } $files->edit($id, $_POST['title'], $_POST['description'], $_POST['keywords']); if (isset($_POST['idperm'])) { tprivatefiles::i()->setperm($id, (int) $_POST['idperm']); } return $this->html->h4->edited; } return ''; }
/** * 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 ticonsInstall($self) { $files = tfiles::i(); $files->lock(); $files->deleted = $self->filedeleted; }
public function geticon() { $result = ''; if (isset($this->context) && isset($this->context->icon)) { $icon = $this->context->icon; if ($icon > 0) { $files = tfiles::i(); if ($files->itemexists($icon)) { $result = $files->geturl($icon); } } } if ($result == '') { return litepublisher::$site->files . '/favicon.ico'; } return $result; }
public function getfilelist() { $html = tadminhtml::i(); $html->push_section('editor'); $args = new targs(); $args->fileperm = $this->getfileperm(); $post = ttheme::$vars['post']; $files = tfiles::i(); $where = litepublisher::$options->ingroup('editor') ? '' : ' and author = ' . litepublisher::$options->user; $args->pages = (int) ceil($files->db->getcount(" parent = 0 {$where}") / 20); $args->jsitems = '{}'; $args->files = ''; if ($post->id) { $list = $files->itemsposts->getitems($post->id); if (count($list)) { $items = implode(',', $list); $args->files = $items; if (defined('JSON_NUMERIC_CHECK')) { $jsattr = JSON_NUMERIC_CHECK | (defined('JSON_UNESCAPED_UNICODE') ? JSON_UNESCAPED_UNICODE : 0); $args->jsitems = json_encode($files->db->res2items($files->db->query("select * from {$files->thistable} where id in ({$items}) or parent in ({$items})")), $jsattr); } else { $args->jsitems = json_encode($files->db->res2items($files->db->query("select * from {$files->thistable} where id in ({$items}) or parent in ({$items})"))); } } } $result = $html->filelist($args); $html->pop_section(); return $result; }