'タイトル:', 'type'=>'text', 'default'=>'fukuoka'); $atnd_options['widget_fields']['keyword'] = array('label'=>'キーワード(AND)カンマ区切り:', 'type'=>'text', 'default'=>''); $atnd_options['widget_fields']['keyword_or'] = array('label'=>'キーワード(OR)カンマ区切り:', 'type'=>'text', 'default'=>''); $atnd_options['widget_fields']['count'] = array('label'=>'表示件数:', 'type'=>'text', 'default'=>'5'); $atnd_options['widget_fields']['author_name'] = array('label'=>'主催者を表示:', 'type'=>'checkbox', 'default'=>true); $atnd_options['widget_fields']['update'] = array('label'=>'更新日時を表示:', 'type'=>'checkbox', 'default'=>true); $atnd_options['widget_fields']['linked'] = array('label'=>'ATNDリンク:', 'type'=>'text', 'default'=>'>>'); $atnd_options['widget_fields']['encode_utf8'] = array('label'=>'UTF8 Encode:', 'type'=>'checkbox', 'default'=>false); $atnd_options['prefix'] = 'atnd'; // atnd ログ表示 function atnd_messages($keyword = '', $keyword_or = '', $count = 1, $list = false, $author_name = true, $update = true, $linked = '#', $encode_utf8 = false) { global $atnd_options; include_once(ABSPATH . WPINC . '/rss.php'); $messages = fetch_rss('http://api.atnd.org/events/?keyword='.$keyword.'&keyword_or='.$keyword_or.'&count='.$count.'&format=atom'); //echo "
";
    //var_dump($messages);
    //echo "
"; if ($list) echo ''; } // atndウィジット設定情報 function widget_atnd_init() { if ( !function_exists('register_sidebar_widget') ){ return; } // widget_atnd からオプションの取得 $check_options = get_option('widget_atnd'); if ($check_options['number']=='') { $check_options['number'] = 1; // widget_atnd からオプションを更新 update_option('widget_atnd', $check_options); } // atndウィジット設定 function widget_atnd($args, $number = 1) { global $atnd_options; extract($args); include_once(ABSPATH . WPINC . '/rss.php'); $options = get_option('widget_atnd'); $item = $options[$number]; foreach($atnd_options['widget_fields'] as $key => $field) { if (! isset($item[$key])) { $item[$key] = $field['default']; } } //$messages = fetch_rss('http://api.atnd.org/events/?keyword='.$item['keyword'].'&keyword_or='.$item['keyword_or'].'&count='.$item['count'].'&format=atom'); //var_dump ($messages); echo $before_widget . $before_title . ''. $item['title'] . '' . $after_title; //echo "
";
        //var_dump ($item);
        //echo "
"; atnd_messages( $item['keyword'], $item['keyword_or'], $item['count'], true, $item['author_name'], $item['update'], $item['linked'], $item['encode_utf8'] ); echo $after_widget; } // atnd ウィジットコントロール画面 function widget_atnd_control($number) { global $atnd_options; $options = get_option('widget_atnd'); if ( isset($_POST['atnd-submit']) ) { foreach($atnd_options['widget_fields'] as $key => $field) { $options[$number][$key] = $field['default']; $field_name = sprintf('%s_%s_%s', $atnd_options['prefix'], $key, $number); if ($field['type'] == 'text') { $options[$number][$key] = strip_tags(stripslashes($_POST[$field_name])); } elseif ($field['type'] == 'checkbox') { $options[$number][$key] = isset($_POST[$field_name]); } } update_option('widget_atnd', $options); } foreach($atnd_options['widget_fields'] as $key => $field) { $field_name = sprintf('%s_%s_%s', $atnd_options['prefix'], $key, $number); $field_checked = ''; if ($field['type'] == 'text') { $field_value = htmlspecialchars($options[$number][$key], ENT_QUOTES); } elseif ($field['type'] == 'checkbox') { $field_value = 1; if (! empty($options[$number][$key])) { $field_checked = 'checked="checked"'; } } printf('

', $field_name, __($field['label']), $field_name, $field_name, $field['type'], $field_value, $field['type'], $field_checked ); } echo ''; } // atnd ウィジットセットアップ function widget_atnd_setup() { $options = $newoptions = get_option('widget_atnd'); if ( isset($_POST['atnd-number-submit']) ) { $number = (int) $_POST['atnd-number']; $newoptions['number'] = $number; } if ( $options != $newoptions ) { update_option('widget_atnd', $newoptions); widget_atnd_register(); } } // atnd ウィジット登録 function widget_atnd_register() { $options = get_option('widget_atnd'); $dims = array('width' => 350, 'height' => 300); $class = array('classname' => 'widget_atnd'); for ($i = 1; $i <= 9; $i++) { $name = sprintf(__('atnd #%d'), $i); $id = "atnd-$i"; // Never never never translate an id wp_register_sidebar_widget($id, $name, $i <= $options['number'] ? 'widget_atnd' : /* 未登録 */ '', $class, $i); wp_register_widget_control($id, $name, $i <= $options['number'] ? 'widget_atnd_control' : /* 未登録 */ '', $dims, $i); } add_action('sidebar_admin_setup', 'widget_atnd_setup'); } widget_atnd_register(); } // widget_atnd_init をウィジットに登録 add_action('widgets_init', 'widget_atnd_init'); ?>