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');
}
Beispiel #6
0
 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();
 }
Beispiel #10
0
<?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);
Beispiel #11
0
 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;
 }
Beispiel #12
0
 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;
 }
Beispiel #20
0
 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;
 }