3 * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
4 * Copyright (C) 2002-2009 The Nucleus Group
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 * (see nucleus/documentation/index.html#license for more info)
13 * Media popup window for Nucleus
16 * - can be openen from an add-item form or bookmarklet popup
17 * - shows a list of recent files, allowing browsing, search and
19 * - close the popup by selecting a file in the list. The file gets
20 * passed through to the add-item form (linkto, popupimg or inline img)
22 * @license http://nucleuscms.org/license.txt GNU General Public License
23 * @copyright Copyright (C) 2002-2009 The Nucleus Group
24 * @version $Id: MediumActions.php 1873 2012-06-17 07:23:22Z sakamocchi $
28 class MediumActions extends BaseActions
32 static private $default_actions = array(
44 static public $normal_skin_types = array(
45 'login' => 'NP_Medium',
46 'choose' => _UPLOAD_TITLE,
47 'select' => _SKIN_PART_ALIST,
51 static public function getNormalSkinTypes()
53 return self::$normal_skin_types;
56 public function getAvailableActions()
60 $extra_actions = array();
62 switch ( $manager->getPlugin('NP_Medium')->type )
65 $extra_actions = array(
70 $extra_actions = array(
79 $extra_actions = array(
85 $extra_actions = array(
91 $defined_actions = array_merge(self::$default_actions, $extra_actions);
93 return array_merge($defined_actions, parent::getAvailableActions());
97 * MediumActions::_construct
99 * @param string $type always 'fileparse'
102 public function __construct($type)
104 parent::__construct();
108 public function parse_conf($key)
111 if ( array_key_exists($key, $CONF) )
118 public function parse_actionurl()
121 echo "{$CONF['ActionURL']}?action=plugin&name=medium";
125 public function parse_collection()
128 echo (string) $manager->getPlugin('NP_Medium')->collection;
132 public function parse_pagehead()
135 $path = $manager->getPlugin('NP_Medium')->getDirectory() . 'skins/pagehead.skn';
136 $contents = $this->parser->skin->getContentFromFile($path);
137 $this->parser->parse($contents);
141 public function parse_pagefoot()
144 $path = $manager->getPlugin('NP_Medium')->getDirectory() . 'skins/pagefoot.skn';
145 $contents = $this->parser->skin->getContentFromFile($path);
146 $this->parser->parse($contents);
150 public function parse_stylesheet($name)
153 echo "{$CONF['PluginURL']}medium/styles/{$name}";
157 public function parse_script($name)
160 echo "{$CONF['PluginURL']}medium/scripts/{$name}";
164 public function parse_name()
168 if ( !$member->isLoggedIn() )
170 echo (string) requestVar('login');
174 echo (string) $member->getDisplayName();
179 public function parse_filter()
182 echo (string) $manager->getPlugin('NP_Medium')->filter;
186 public function parse_ticket()
189 echo $manager->addTicketHidden();
193 public function parse_message()
196 echo (string) $manager->getPlugin('NP_Medium')->message;
200 public function parse_pluginextras()
204 $manager->notify("MediaUploadFormExtras", $data);
208 public function parse_amount()
211 echo (string) $manager->getPlugin('NP_Medium')->amount;
215 public function parseoffset()
218 echo (string) $manager->getPlugin('NP_Medium')->offset;
222 public function parse_prev()
225 echo (string) $manager->getPlugin('NP_Medium')->prev;
229 public function parse_next()
232 echo (string) $manager->getPlugin('NP_Medium')->next;
236 public function parse_collectionlist()
238 global $CONF, $manager;
240 $plugin = $manager->getPlugin('NP_Medium');
243 'actionurl' => "{$CONF['ActionURL']}?action=plugin&type=medium"
245 $this->parser->parse(Template::fill($plugin->getOption('collectionlist_head'), $data));
247 $collections = Media::getCollectionList();
248 foreach ( $collections as $name => $desc )
255 if ( $plugin->collection == $name )
257 $data['selected'] = 'selected="selected"';
260 $this->parser->parse(Template::fill($plugin->getOption('collectionlist_body'), $data));
264 'actionurl' => "{$CONF['ActionURL']}?action=plugin&type=medium",
265 'collection' => $plugin->collection
267 $this->parser->parse(Template::fill($plugin->getOption('collectionlist_foot'), $data));
270 public function parse_medialist()
272 global $CONF, $manager;
274 $plugin = $manager->getPlugin('NP_Medium');
277 'actionurl' => "{$CONF['ActionURL']}?action=plugin&type=medium",
278 'collection' => $plugin->collection,
279 'description' => $plugin->description
281 $this->parser->parse(Template::fill($plugin->getOption('medialist_head'), $data));
283 $image_template = $plugin->getOption('medialist_body_image');
284 $other_template = $plugin->getOption('medialist_body_other');
286 foreach ( $plugin->media as $medium )
290 'mime' => $medium->mime,
291 'collection' => $medium->collection,
292 'filename' => $medium->filename,
293 'shortfilename' => Entity::shorten($medium->filename, 24, '...'),
294 'prefix' => $medium->prefix,
295 'name' => $medium->name,
296 'suffix' => $medium->suffix,
297 'timestamp' => date("Y-m-d", $medium->timestamp),
298 'size' => round($medium->size / 1000),
299 'width' => $medium->width,
300 'height' => $medium->height,
301 'mediumurl' => "{$CONF['MediaURL']}{$medium->collection}/{$medium->filename}"
304 if ( !array_key_exists($medium->mime, Media::$image_mime) )
306 $this->parser->parse(Template::fill($other_template, $data));
310 $this->parser->parse(Template::fill($image_template, $data));
315 $this->parser->parse(Template::fill($plugin->getOption('medialist_foot'), $data));
320 protected function checkCondition($field, $name='', $value = '')
324 $plugin = $manager->getPlugin('NP_Medium');
330 $condition = (boolean) ($plugin->prev != $plugin->offset );
333 $condition = (boolean) $plugin->next;