X-Git-Url: http://git.osdn.net/view?p=nucleus-jp%2Fnucleus-next.git;a=blobdiff_plain;f=nucleus%2Fplugins%2Fmedium%2FMediumActions.php;fp=nucleus%2Fplugins%2Fmedium%2FMediumActions.php;h=f6febf0760f4b05ac17d2c6ec1ab35077a7b9edb;hp=0000000000000000000000000000000000000000;hb=c90b0980cfa3e79cd4bc7eed551a64a5e2b02a5c;hpb=fe4e862f6b23596d657c5228588785dfe537fb8f diff --git a/nucleus/plugins/medium/MediumActions.php b/nucleus/plugins/medium/MediumActions.php new file mode 100644 index 0000000..f6febf0 --- /dev/null +++ b/nucleus/plugins/medium/MediumActions.php @@ -0,0 +1,340 @@ + 'NP_Medium', + 'choose' => _UPLOAD_TITLE, + 'select' => _SKIN_PART_ALIST, + 'error' => _ERROR + ); + + static public function getNormalSkinTypes() + { + return self::$normal_skin_types; + } + + public function getAvailableActions() + { + global $manager; + + $extra_actions = array(); + + switch ( $manager->getPlugin('NP_Medium')->type ) + { + case 'login': + $extra_actions = array( + 'name', + ); + break; + case 'select': + $extra_actions = array( + 'amount', + 'filter', + 'medialist', + 'next', + 'prev' + ); + break; + case 'choose': + $extra_actions = array( + 'pluginextras', + 'ticket', + ); + break; + case 'error': + $extra_actions = array( + 'message', + ); + break; + } + + $defined_actions = array_merge(self::$default_actions, $extra_actions); + + return array_merge($defined_actions, parent::getAvailableActions()); + } + + /** + * MediumActions::_construct + * + * @param string $type always 'fileparse' + * @return void + */ + public function __construct($type) + { + parent::__construct(); + return; + } + + public function parse_conf($key) + { + global $CONF; + if ( array_key_exists($key, $CONF) ) + { + echo $CONF[$key]; + } + return; + } + + public function parse_actionurl() + { + global $CONF; + echo "{$CONF['ActionURL']}?action=plugin&name=medium"; + return; + } + + public function parse_collection() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->collection; + return; + } + + public function parse_pagehead() + { + global $manager; + $path = $manager->getPlugin('NP_Medium')->getDirectory() . 'skins/pagehead.skn'; + $contents = $this->parser->skin->getContentFromFile($path); + $this->parser->parse($contents); + return; + } + + public function parse_pagefoot() + { + global $manager; + $path = $manager->getPlugin('NP_Medium')->getDirectory() . 'skins/pagefoot.skn'; + $contents = $this->parser->skin->getContentFromFile($path); + $this->parser->parse($contents); + return; + } + + public function parse_stylesheet($name) + { + global $CONF; + echo "{$CONF['PluginURL']}medium/styles/{$name}"; + return; + } + + public function parse_script($name) + { + global $CONF; + echo "{$CONF['PluginURL']}medium/scripts/{$name}"; + return; + } + + public function parse_name() + { + global $member; + + if ( !$member->isLoggedIn() ) + { + echo (string) requestVar('login'); + } + else + { + echo (string) $member->getDisplayName(); + } + return; + } + + public function parse_filter() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->filter; + return; + } + + public function parse_ticket() + { + global $manager; + echo $manager->addTicketHidden(); + return; + } + + public function parse_message() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->message; + return; + } + + public function parse_pluginextras() + { + global $manager; + $data = array(); + $manager->notify("MediaUploadFormExtras", $data); + return; + } + + public function parse_amount() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->amount; + return; + } + + public function parseoffset() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->offset; + return; + } + + public function parse_prev() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->prev; + return; + } + + public function parse_next() + { + global $manager; + echo (string) $manager->getPlugin('NP_Medium')->next; + return; + } + + public function parse_collectionlist() + { + global $CONF, $manager; + + $plugin = $manager->getPlugin('NP_Medium'); + + $data = array( + 'actionurl' => "{$CONF['ActionURL']}?action=plugin&type=medium" + ); + $this->parser->parse(Template::fill($plugin->getOption('collectionlist_head'), $data)); + + $collections = Media::getCollectionList(); + foreach ( $collections as $name => $desc ) + { + $data = array( + 'name' => $name, + 'desc' => $desc + ); + + if ( $plugin->collection == $name ) + { + $data['selected'] = 'selected="selected"'; + } + + $this->parser->parse(Template::fill($plugin->getOption('collectionlist_body'), $data)); + } + + $data = array( + 'actionurl' => "{$CONF['ActionURL']}?action=plugin&type=medium", + 'collection' => $plugin->collection + ); + $this->parser->parse(Template::fill($plugin->getOption('collectionlist_foot'), $data)); + } + + public function parse_medialist() + { + global $CONF, $manager; + + $plugin = $manager->getPlugin('NP_Medium'); + + $data = array( + 'actionurl' => "{$CONF['ActionURL']}?action=plugin&type=medium", + 'collection' => $plugin->collection, + 'description' => $plugin->description + ); + $this->parser->parse(Template::fill($plugin->getOption('medialist_head'), $data)); + + $image_template = $plugin->getOption('medialist_body_image'); + $other_template = $plugin->getOption('medialist_body_other'); + + foreach ( $plugin->media as $medium ) + { + $medium->refine(); + $data = array( + 'mime' => $medium->mime, + 'collection' => $medium->collection, + 'filename' => $medium->filename, + 'shortfilename' => Entity::shorten($medium->filename, 24, '...'), + 'prefix' => $medium->prefix, + 'name' => $medium->name, + 'suffix' => $medium->suffix, + 'timestamp' => date("Y-m-d", $medium->timestamp), + 'size' => round($medium->size / 1000), + 'width' => $medium->width, + 'height' => $medium->height, + 'mediumurl' => "{$CONF['MediaURL']}{$medium->collection}/{$medium->filename}" + ); + + if ( !array_key_exists($medium->mime, Media::$image_mime) ) + { + $this->parser->parse(Template::fill($other_template, $data)); + } + else + { + $this->parser->parse(Template::fill($image_template, $data)); + } + } + + $data = array(); + $this->parser->parse(Template::fill($plugin->getOption('medialist_foot'), $data)); + + return; + } + + protected function checkCondition($field, $name='', $value = '') + { + global $manager; + + $plugin = $manager->getPlugin('NP_Medium'); + + $condition = 0; + switch ( $field ) + { + case 'prev': + $condition = (boolean) ($plugin->prev != $plugin->offset ); + break; + case 'next': + $condition = (boolean) $plugin->next; + break; + default: + break; + } + return $condition; + } +}