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

MT(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);
        my $name = $rf_obj->name();
        push(@result, $name);
}

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

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


¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

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