Dotclear

Changeset 2179


Ignore:
Timestamp:
04/11/10 16:22:04 (13 years ago)
Author:
Osku
Message:

Plugin filesAlias - O.3.3 ':

  • serve local media anonymously
  • minor changes
Location:
plugins/filesAlias
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • plugins/filesAlias/_define.php

    r2169 r2179  
    1717     /* Description*/         "Create aliases of your blog's files", 
    1818     /* Author */             "Osku", 
    19      /* Version */            '0.2', 
     19     /* Version */            '0.3.3', 
    2020     /* Permissions */        'contentadmin' 
    2121); 
  • plugins/filesAlias/_prepend.php

    r2169 r2179  
    1414 
    1515$__autoload['FilesAliases'] = dirname(__FILE__).'/inc/class.files.alias.php'; 
     16$__autoload['aliasMedia'] = dirname(__FILE__).'/inc/class.files.alias.php'; 
    1617 
    1718$core->url->register('filesalias',$core->blog->settings->filesalias_prefix,'^' 
  • plugins/filesAlias/_public.php

    r2169 r2179  
    1818     public static function alias($args) 
    1919     { 
    20           $o = new FilesAliases($GLOBALS['core']); 
    21           $dest = $o->getAlias($args); 
    22            
     20          global $core; 
     21          $f = new FilesAliases($core); 
     22          $dest = $f->getAlias($args); 
     23          $owned = false; 
     24                     
    2325          if ($dest->isEmpty()) { 
    2426               self::p404(); 
    2527          } 
    26           $link = $dest->filesalias_destination; 
     28           
     29          $target = $dest->filesalias_destination; 
     30           
    2731          if ($dest->filesalias_disposable) { 
    28                $o->deleteAlias($args); 
     32               $f->deleteAlias($args); 
    2933          } 
    30           http::head(302, 'Found'); 
    31           header('Location: '.$link); 
     34 
     35          $a= new aliasMedia($core); 
     36           
     37          if (!preg_match('/^'.preg_quote($a->root_url,'/').'/',$target)) { 
     38 
     39               $media = $a->getMediaId($target); 
     40 
     41               if (empty($media)) 
     42               { 
     43                    self::p404();             
     44               } 
     45                
     46               $file = $core->media->getFile($media); 
     47           
     48               if (empty($file->file)) 
     49                 { 
     50                   self::p404(); 
     51                   return; 
     52                 } 
     53                  
     54               header('Content-type: '.$file->type); 
     55               header('Content-Length: '.$file->size); 
     56               header('Content-Disposition: attachment; filename="'.$file->basename.'"'); 
     57               readfile($file->file); 
     58               return; 
     59          } 
     60          else 
     61          { 
     62               http::head(302, 'Found'); 
     63               header('Location: '.$target); 
     64               exit; 
     65          } 
    3266     } 
    3367} 
  • plugins/filesAlias/inc/class.files.alias.php

    r2169 r2179  
    4242                    'FROM '.$this->core->prefix.'filesalias '. 
    4343                    "WHERE blog_id = '".$this->core->con->escape($this->core->blog->id)."' ". 
    44                     "AND filesalias_url = '".$url."' ". 
     44                    "AND filesalias_url = '".$this->core->con->escape($url)."' ". 
    4545                    'ORDER BY filesalias_position ASC '; 
    4646 
     
    104104               'DELETE FROM '.$this->core->prefix.'filesalias '. 
    105105               "WHERE blog_id = '".$this->core->con->escape($this->core->blog->id)."' ". 
    106                "AND filesalias_url = '".$url."' " 
     106               "AND filesalias_url = '".$this->core->con->escape($url)."' " 
    107107          ); 
    108108     } 
    109109} 
     110 
     111class  aliasMedia extends dcMedia 
     112{ 
     113     public function __construct($core) 
     114     { 
     115          parent::__construct($core); 
     116     } 
     117 
     118     public function getMediaId($target) 
     119     { 
     120          $strReq = 
     121          'SELECT media_id '. 
     122          'FROM '.$this->table.' '. 
     123          "WHERE media_path = '".$this->path."' ". 
     124          "AND media_file = '".$this->con->escape($target)."' "; 
     125           
     126          $rs = $this->core->con->select($strReq); 
     127          return $rs->media_id; 
     128     } 
     129} 
    110130?> 
  • plugins/filesAlias/index.php

    r2169 r2179  
    1414$o = new FilesAliases($core); 
    1515$aliases = $o->getAliases(); 
     16$media = new dcMedia($core); 
    1617 
    1718# Update aliases 
     
    2930if (isset($_POST['filesalias_url'])) 
    3031{ 
    31      $filesalias_url = empty($_POST['filesalias_url']) ? md5(uniqid(rand(), true)) : $_POST['filesalias_url']; 
     32     $url = empty($_POST['filesalias_url']) ? md5(uniqid(rand(), true)) : $_POST['filesalias_url']; 
     33 
     34     $target = $_POST['filesalias_destination']; 
     35     $totrash = $_POST['filesalias_disposable']; 
    3236      
     37     if (preg_match('/^'.preg_quote($media->root_url,'/').'/',$target)) { 
     38          $target = preg_replace('/^'.preg_quote($media->root_url,'/').'/','',$target); 
     39     } 
     40 
    3341     try { 
    34           $o->createAlias($filesalias_url,$_POST['filesalias_destination'],count($aliases)+1,$_POST['filesalias_disposable']); 
     42          $o->createAlias($url,$target,count($aliases)+1,$totrash); 
    3543          http::redirect($p_url.'&created=1'); 
    3644     } catch (Exception $e) { 
     
    107115          } 
    108116           
    109           $link = '<a href="'.$core->blog->url.$core->url->getBase('filesalias').'/'.html::escapeHTML($v['filesalias_url']).'">'. 
    110                     '<img alt="'.__('Direct link').'" title="'.__('Direct link').'" src="index.php?pf=filesAlias/img/link.png" /></a>'; 
     117          $url = $core->blog->url.$core->url->getBase('filesalias').'/'.html::escapeHTML($v['filesalias_url']); 
     118          $link = '<a href="'.$url.'">'. 
     119                    '<img alt="'.__('Direct link').'" title="'.$url.'" src="index.php?pf=filesAlias/img/link.png" /></a>'; 
     120                     
     121          if (!preg_match('#^http(s)?://#',$v['filesalias_destination'])) { 
     122               $public = 'style="background:#FFF6BF;color:#514721;"'; 
     123          }  
     124          else  
     125          { 
     126               $public = ''; 
     127          } 
    111128      
    112129          echo 
    113           '<tr class='.$line.'>'. 
    114           '<td class="status nowrap">'.$status.form::field(array('a['.$k.'][filesalias_url]'),48,255,html::escapeHTML($v['filesalias_url']),'','','','style="margin-left:10px;"').'&nbsp;&bull;&nbsp;'.$link.'&nbsp;</td>'. 
    115           '<td class=" ">'.form::field(array('a['.$k.'][filesalias_destination]'),70,255,html::escapeHTML($v['filesalias_destination']),'maximal').'</td>'. 
     130          '<tr class="'.$line.'" >'. 
     131          '<td class="status nowrap">'.$link.'&nbsp;'.$status.form::field(array('a['.$k.'][filesalias_url]'),48,255,html::escapeHTML($v['filesalias_url']),'','','','style="margin-left:10px;"').'</td>'. 
     132          '<td class=" ">'.form::field(array('a['.$k.'][filesalias_destination]'),70,255,html::escapeHTML($v['filesalias_destination']),'maximal','','',$public).'</td>'. 
    116133          '<td class="status nowrap">'.form::checkbox(array('a['.$k.'][filesalias_disposable]'),1,$v['filesalias_disposable']).'</td>'. 
    117134          '</tr>'; 
     
    142159'<fieldset>'. 
    143160'<legend>'.__('Prefix of Aliases URLs').'</legend>'. 
    144 '<p>'.__('Base URL scheme:').'&nbsp;&mdash;&nbsp;'.$core->blog->url.'<span style="color : #069">'.$core->url->getBase('filesalias').'</span></p>'. 
     161     '<p>'.__('Base URL scheme:').'&nbsp;&mdash;&nbsp;'.$core->blog->url.'<span style="color : #069">'.$core->url->getBase('filesalias').'</span></p>'. 
    145162'<p><label class="required">' 
    146163.__('Media prefix URL:').' '.form::field('filesalias_prefix',20,255,$core->blog->settings->filesalias_prefix).'</label></p>'. 
Note: See TracChangeset for help on using the changeset viewer.

Sites map