Movable Type/³«È¯Tips/RightFields¥×¥é¥°¥¤¥ó¤Î³ÈÄ¥¥Ç¡¼¥¿Æɤ߽Ф· http://www.ark-web.jp/sandbox/wiki/3228.html

Movable Type/³«È¯Tips/RightFields¥×¥é¥°¥¤¥ó¤Î³ÈÄ¥¥Ç¡¼¥¿Æɤ߽Ф·

MovableType¤ÎRightFields¥×¥é¥°¥¤¥ó¤Ç³ÈÄ¥¡ÊÄɲáˤ·¤¿¹àÌܤÎÆɤ߽Ф·¤ò¹Ô¤¤¤¿¤¯¤ÆÊýË¡¤òÄ´¤Ù¤Æ¤ß¤Þ¤·¤¿¡Ê¥°¥°¤Ã¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡¢´ØÏ¢¾ðÊó¤âAPI¥Þ¥Ë¥å¥¢¥ë¤â¤ß¤Ä¤±¤é¤ì¤Ê¤«¤Ã¤¿¤Î¤Ç [sad]RightFields¥×¥é¥°¥¤¥ó¤Î¥³¡¼¥É¤òľÀÜÄ´¤Ù¤Æ¸«¤Ä¤±¤¿ÊýË¡¤Ç¤¹¡£¥ª¥Õ¥£¥·¥ã¥ë¤ÊÊýË¡¤Ç¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¡Ë¡£

°Ê²¼¤Ç¤Ï¡¢¥Ö¥í¥°Æâ¤Î³Æ¥¨¥ó¥È¥ê¡¼¤ËÂФ·¤Æ³ÈÄ¥¤·¤¿¥Ç¡¼¥¿¹àÌܤòÆɤ߽Ф·¤ÆÇÛÎó¤Ë¤¹¤ëÊýË¡¤òµ­ºÜ¤·¤Þ¤¹¡£

¤Þ¤º¡¢ºÇ½é¤Ë¥é¥¤¥Ö¥é¥ê¥Ñ¥¹¤Î»ØÄê¤ÈMT¡¢RightFields¥¯¥é¥¹¤ò¥í¡¼¥É¤·¤Þ¤¹¡£

use lib qw(lib plugins/RightFields/lib);
use MT;
use RightFields qw( load_plugindata save_plugindata config_key fld_name
       mt_fields mt_field_order new_obj );

MT¥¯¥é¥¹¤Ï¥¨¥ó¥È¥ê¡¼¾ðÊó¤òÆɤ߽Ф¹¤¿¤á¤Ë¡¢RightFiedlds¥¯¥é¥¹¤ÏÆɤ߽Ф·¤¿¥¨¥ó¥È¥ê¡¼¾ðÊ󤬻ý¤Ä³ÈÄ¥¥Ç¡¼¥¿¹àÌܤΥǡ¼¥¿¤òÆɤ߽Ф¹API¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¥í¡¼¥É¤·¤Æ¤·¤Þ¤¹¡£

¼¡¤Ë¡¢MT¥¯¥é¥¹¤òÍøÍѤ·¤ÆMT¤Î¥¨¥ó¥È¥ê¡¼¾ðÊó¤òÇÛÎó¤Ë¼èÆÀ¤·¤Þ¤¹¡£

my $mt = MT->new or "cannot load mt";
my @entries = MT::Entry->load(
        { blog_id => 1 },
        {
                sort => 'created_on',
                direction => 'descend',
        }
);

MT¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¡¢MT::*¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤ò»È¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£(MT¥¯¥é¥¹¤Ïnew¤¹¤ë»þ¤Ëmt-config.cgi¤òÆɤ߹þ¤ó¤Ç½é´üÀßÄê¤ò¹Ô¤¤¡¢°Ü¹Ô¡¢MT API(MT::*¥¯¥é¥¹) ¤òÍøÍѤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£¾Ü¤·¤¯¤ÏMovable Type ¥ª¥Ö¥¸¥§¥¯¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤Î¤³¤È¡Ë

¤³¤ì¤ÇMT::Entry¤Îload¥á¥½¥Ã¥É¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
MT::Entry->load()¤Ï¥Ñ¥é¥á¡¼¥¿¤Ë°ìÃפ¹¤ë¥¨¥ó¥È¥ê¡¼¾ðÊó(=MT::Entry¥ª¥Ö¥¸¥§¥¯¥È)¤òÇÛÎó¤ÇÊÖ¤·¤Þ¤¹¡£¾å¤Î¥³¡¼¥É¤Ç¤Ï¡¢blog_id = 1¤Î¥Ö¥í¥°¤Î¥¨¥ó¥È¥ê¡¼¾ðÊó¤òºîÀ®Æü¡Êcreated_on¡Ë¤ÎµÕ½ç¡Êdescend¡Ë¤Ç¼è¤ê½Ð¤¹¥Ñ¥é¥á¡¼¥¿¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£

¼¡¤Ë¡¢RightFields¥¯¥é¥¹¤Îload_plugindata¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ³ÈÄ¥¥Ç¡¼¥¿¹àÌܤ˴ؤ¹¤ë¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó¾ðÊó¤ò¼èÆÀ¤·¤Þ¤¹¡£

my $cfg = load_plugindata(config_key(1, 'extra'));

load_plugindata¥á¥½¥Ã¥É¤Ë¤ÏRightFields¥¯¥é¥¹¤Îconfig_key¥á¥½¥Ã¥É¤ÎÊÖ¤êÃͤòkeyʸ»úÎó¤È¤·¤ÆÍ¿¤¨¤Þ¤¹¡£config_key¥á¥½¥Ã¥É¤Ë¤Ï¥Ö¥í¥°ID(=¤³¤ÎÎã¤Ç¤Ï1¡Ë¤È³ÈÄ¥¥Ç¡¼¥¿¹àÌܤǤ¢¤ë¤³¤È¤ò¼¨¤¹extra¤ò»ØÄꤷ¤Þ¤¹¡£

ºÇ¸å¤Ë¡¢³Æ¥¨¥ó¥È¥ê¡¼¾ðÊó¤ËÂФ·¤Æ¡¢RightFields¤Î³ÈÄ¥¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¡¢Æɤ߽Ф·¡¢ÇÛÎóºîÀ®¤ò¹Ô¤¤¤Þ¤¹¡£

my @result;
foreach my $entry (@entries) {
        my $rf_obj = new_obj($cfg, $entry->id);
        # ³ÈÄ¥¥Ç¡¼¥¿¹àÌܤΥե£¡¼¥ë¥É̾¤¬name¤Ç¤¢¤ë¾ì¹ç
        my $name = $rf_obj->name();
        push(@result, $name);
}

foreachʸ¤Ç³Æ¥¨¥ó¥È¥ê¡¼¾ðÊó(MT::Entry¥ª¥Ö¥¸¥§¥¯¥È)ñ°Ì¤Ë¥ë¡¼¥×¤µ¤»¤Æ¤¤¤Þ¤¹¡£

¥ë¡¼¥×Æâ¤Ç¤ÏRightFields¥¯¥é¥¹¤Înew_obj¥á¥½¥Ã¥É¤Ë$cfg¤È¥¨¥ó¥È¥ê¡¼ID¤òÍ¿¤¨¤Æ¡¢³ºÅö¤¹¤ë¥¨¥ó¥È¥ê¡¼¤Î³ÈÄ¥¥Ç¡¼¥¿¤òÊÝ»ý¤¹¤ë³ÈÄ¥¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£¥¨¥ó¥È¥ê¡¼ID¤ÏMT::Entry¥ª¥Ö¥¸¥§¥¯¥È¤Îgetter¤ò»È¤Ã¤Æ$entry->id¤Ç¼èÆÀ¤Ç¤­¤Þ¤¹¡£

¾å¤Î¥³¡¼¥É¤Ï³ÈÄ¥¥Ç¡¼¥¿¹àÌܤΥե£¡¼¥ë¥É̾(Extra Fields¤Ë»ØÄꤷ¤¿field̾)¤òname¤È¤·¤¿¾ì¹ç¤ÎÎã¤Ç¤¹¡£³ÈÄ¥¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¼èÆÀ¤·¤¿¤¤³ÈÄ¥¥Ç¡¼¥¿¹àÌܤΥե£¡¼¥ë¥É̾¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ù¤Ð¡¢¤½¤Î³ÈÄ¥¥Ç¡¼¥¿¹àÌܤξðÊó¤ò¼èÆÀ¤·¤Æ¤¯¤ì¤ë»ÅÁȤߤǤ¹¡£hoge¤È¤¤¤¦Ì¾Á°¤Î³ÈÄ¥¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¡¢¤½¤Î¥Ç¡¼¥¿¤ò¼èÆÀ¤·¤¿¾ì¹ç¤Ï¾å¤Î¥³¡¼¥É¤Ç

my $hoge = $rf_obj->hoge();

¤È¤¹¤ì¤Ð$hoge¤Ë¥Ç¡¼¥¿¤ò¼èÆÀ¤Ç¤­¤Þ¤¹¡£

RightFields¥×¥é¥°¥¤¥ó¤Ç¤Ï³ÈÄ¥¥Ç¡¼¥¿¤ÎÊݸÊýË¡¤òCustom SQL database table¡¢PluginData¤Î£²¼ïÎफ¤éÁª¤Ù¤Þ¤¹¤¬¡¢new_obj¥á¥½¥Ã¥É¤ÏÊݸÊýË¡¤Ë´Ø¤ï¤é¤º³ÈÄ¥¥Ç¡¼¥¿¤òÆɤ߽Ф»¤ë³ÈÄ¥¥Ç¡¼¥¿¥ª¥Ö¥¸¥§¥¯¥È¤òŬÀÚ¤ËÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£¾ÜºÙ¤ËΩ¤ÁÆþ¤ë¤Ènew_obj¥á¥½¥Ã¥É¤ÏCustom SQL database table¤Î»þ¤Ë¤ÏRightFieldsObject¡¢PluginData¤Î»þ¤ÏRightFieldsPseudo¤òÊÖ¤·¤Þ¤¹¡£RightFieldsObject¡¢RightFieldsPseudo¤È¤â¤ËMT::Object¤ò¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤È¤·¤Æ·Ñ¾µ¤·¤Æ¤¤¤Æ¡¢¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÅý°ì¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢API¤òÍøÍѤ¹¤ë¦¤Ï¤É¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬ÊÖ¤µ¤ì¤¿¤«¤ò°Õ¼±¤·¤Ê¤¤¤Ç°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤Þ¤¿¡¢°Õ¼±¤·¤¿¥³¡¼¥É¤Ï¿ä¾©¤µ¤ì¤Ê¤¤¤Ç¤·¤ç¤¦¡£

Åê¹Æ¼Ô¿ÊÃÏ | ¥Ñ¡¼¥Þ¥ê¥ó¥¯

| append.gif

tag: Movable Type, MT, MTPlugin, RightFields


¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2006-10-23 (·î) 08:21:57 (6387d)

¥¢¡¼¥¯¥¦¥§¥Ö¤Î¥µ¡¼¥Ó¥¹¤ä¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¤³¤Á¤é