=') ){ ACTIONLOG :: add(WARNING, 'NP_MoblogはPHP>=4.3.0であることが必要です。'); } class NP_Moblog extends NucleusPlugin { // name of plugin function getName() { return 'Moblog'; } // author of plugin function getAuthor() { return 'hsur'; } // an URL to the plugin website // can also be of the form mailto:foo@bar.com function getURL() { return 'http://blog.cles.jp/np_cles/category/31/subcatid/2'; } // version of the plugin function getVersion() { return '1.17.1'; } function hasAdminArea() { return 1; } function getEventList() { return array('PrePluginOptionsEdit'); } function event_PrePluginOptionsEdit(&$data) { switch($data['context']){ case 'member': // idandcat $m =& MEMBER :: createFromID($data['contextid']); $trimChar = array( '=' => '', '|' => '', ';' => '', ); $blogs = Array(); $res = sql_query('SELECT bnumber, bname FROM '.sql_table('blog')); while( $o = mysql_fetch_object($res) ){ if( $m->isTeamMember($o->bnumber) ){ $blogs[$o->bnumber] = $o->bname; } } $idandcatTypeInfo = ''; foreach($blogs as $blogid => $blogname){ $res = sql_query('SELECT catid, cname FROM '.sql_table('category').' WHERE cblog='.$blogid); if( @mysql_num_rows($res) > 0) { while( $o = mysql_fetch_object($res) ){ if($idandcatTypeInfo) $idandcatTypeInfo .= '|'; $o->cname = strtr($o->cname, $trimChar); $blogname = strtr($blogname, $trimChar); $idandcatTypeInfo .= "{$o->cname} ({$blogname})|{$blogid},{$o->catid}"; } } } if( ! $idandcatTypeInfo ){ $idandcatTypeInfo = "!!投稿可能なblogがありません!!|0,0"; } // collection & thumb_col $collections = MEDIA::getCollectionList(); $mid = intval($m->getID()); $collections[$mid] = 'デフォルト(useridディレクトリ)'; $collectionTypeInfo = ''; foreach( $collections as $collection => $name ){ if($collectionTypeInfo) $collectionTypeInfo .= '|'; $name = strtr($name, $trimChar); $collection = strtr($collection, $trimChar); $collectionTypeInfo .= "{$name}|{$collection}"; } // set options foreach($data['options'] as $oid => $option ){ switch($data['options'][$oid]['name']){ case 'idandcat': $data['options'][$oid]['typeinfo'] = $idandcatTypeInfo; break; case 'collection': case 'thumb_col': $data['options'][$oid]['typeinfo'] = $collectionTypeInfo; break; } } break; default: // nothing } } function install() { $this->createMemberOption('enable', 'プラグインを有効にするか?', 'yesno', 'no'); $this->createMemberOption('host', 'POP3 ホスト名', 'text', 'localhost'); $this->createMemberOption('port', 'POP3 ポート', 'text', '110', 'numerical=true'); $this->createMemberOption('user', 'POP3 ユーザー名', 'text', ''); $this->createMemberOption('pass', 'POP3 パスワード', 'password', ''); $this->createMemberOption('useAPOP', 'APOPを使用するか?', 'yesno', 'no'); $this->createMemberOption('idandcat', 'Nucleusカテゴリ(Blog)', 'select', '', ''); $this->createMemberOption('collection', '画像を保存するディレクトリ', 'select', '', ''); $this->createMemberOption('thumb_col', 'サムネイルをを保存するディレクトリ', 'select', '', ''); $this->createMemberOption('imgonly', 'イメージ添付メールのみ追加?', 'yesno', 'no'); $this->createMemberOption('DefaultPublish', 'デフォルトで公開するか?', 'yesno', 'no'); $this->createMemberOption('optionsKeyword', 'オプション記述開始の区切り文字', 'text', '@'); $this->createMemberOption('blogKeyword', 'オプションでblogidを指定する場合のキー', 'text', 'b'); $this->createMemberOption('categoryKeyword', 'オプションでカテゴリを指定する場合のキー', 'text', 'c'); $this->createMemberOption('publishKeyword', 'オプションでストレートにpublish指定する場合のキー', 'text', 's'); $this->createMemberOption('moreDelimiter', '追記にする場合の区切り文字(利用しない場合は空欄)', 'text', ''); $this->createMemberOption('accept', '投稿許可アドレス(複数の場合改行で区切ってください)', 'textarea', ''); $this->createMemberOption('acceptSubjectPrefix','投稿許可SubjectPrefix(制限無しの場合は空欄)','text',''); $this->createMemberOption('nosubject', '件名がないときの題名', 'text', ''); $this->createMemberOption('no_strip_tags', 'htmlメールの場合に除去しないタグ', 'textarea', '