OSDN Git Service

WordPressテンプレート機能更新。
authornaoki hirata <naoki@magic3.org>
Tue, 20 Jun 2017 12:40:56 +0000 (21:40 +0900)
committernaoki hirata <naoki@magic3.org>
Tue, 20 Jun 2017 12:40:56 +0000 (21:40 +0900)
include/container/baseFrameContainer.php
include/sql/update/2017032701_to_2017060501.sql
include/wp/contentApi.php
include/wp/menuApi.php [new file with mode: 0644]
include/wp/wp-includes/class-walker-page.php [new file with mode: 0644]

index 24cf598..9787fcd 100644 (file)
@@ -686,6 +686,7 @@ class BaseFrameContainer extends Core
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-walker.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-query.php');
+                       require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-walker-page.php');
 //                     require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-walker-nav-menu.php');
 //                     require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-dependency.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-post.php');                   // コンテンツAPIマネージャーからWP_Post型でデータを取得
@@ -724,7 +725,8 @@ class BaseFrameContainer extends Core
                        if ( file_exists(TEMPLATEPATH . '/functions.php')) include(TEMPLATEPATH . '/functions.php');
                
                        // Magic3用インターフェイス
-                       require_once($this->gEnv->getWordpressRootPath() . '/contentApi.php');// コンテンツ取得用API
+                       require_once($this->gEnv->getWordpressRootPath() . '/contentApi.php');  // コンテンツ取得API
+                       require_once($this->gEnv->getWordpressRootPath() . '/menuApi.php');             // メニュー情報取得API
                        require_once($this->gEnv->getWordpressRootPath() . '/wpInit.php');              // 初期値設定
                        
 
@@ -745,7 +747,8 @@ class BaseFrameContainer extends Core
                        $GLOBALS['wp'] = new WP();
                        $GLOBALS['wp_the_query'] = new WP_Query();
                        $GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
-                       $GLOBALS['gContentApi'] = new contentApi();                     // Magic3コンテンツアクセスクラス
+                       $GLOBALS['gContentApi'] = new contentApi();                     // Magic3コンテンツAPIオブジェクト
+                       $GLOBALS['gMenuApi'] = new menuApi();                   // Magic3メニュー情報APIオブジェクト
                        
                        // 初期処理
                        do_action('setup_theme');
index 655be60..f90ea51 100644 (file)
 -- *** システムベーステーブル ***
 -- システム設定マスター
 INSERT INTO _system_config 
-(sc_id,                 sc_value,         sc_name) VALUES
-('default_content_type', 'blog',     'デフォルトコンテンツタイプ');
+(sc_id,                        sc_value,       sc_name) VALUES
+('default_content_type',       'blog',         'デフォルトコンテンツタイプ'),                -- WordPressテンプレートで使用
+('default_menu_id',            'main_menu',    'フロント画面用デフォルトメニューID'),        -- WordPressテンプレートで使用
+('mobile_default_menu_id',     'm_main_menu',  '携帯画面用デフォルトメニューID'),            -- WordPressテンプレートで使用
+('smartphone_default_menu_id', 's_main_menu',  'スマートフォン画面用デフォルトメニューID');  -- WordPressテンプレートで使用
 
 -- *** システム標準テーブル ***
 -- 汎用コンテンツマスター
index 80068d2..b89032f 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * コンテンツAPIマネージャー
+ * コンテンツAPI
  *
  * 主コンテンツ取得API。外部公開用にアクセス制限をチェックしアクティブなコンテンツのみ取得可能。
  *
diff --git a/include/wp/menuApi.php b/include/wp/menuApi.php
new file mode 100644 (file)
index 0000000..7a50b60
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * メニューAPI
+ *
+ * メニュー作成用のデータにアクセス
+ *
+ * PHP versions 5
+ *
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+ *
+ * @package    Magic3 Framework
+ * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+ * @copyright  Copyright 2006-2017 Magic3 Project.
+ * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
+ * @version    SVN: $Id$
+ * @link       http://www.magic3.org
+ */
+class MenuApi
+{
+
+       /**
+        * コンストラクタ
+        */
+       function __construct()
+       {
+
+       }
+
+}
+?>
diff --git a/include/wp/wp-includes/class-walker-page.php b/include/wp/wp-includes/class-walker-page.php
new file mode 100644 (file)
index 0000000..30831bb
--- /dev/null
@@ -0,0 +1,209 @@
+<?php
+/**
+ * Post API: Walker_Page class
+ *
+ * @package WordPress
+ * @subpackage Template
+ * @since 4.4.0
+ */
+
+/**
+ * Core walker class used to create an HTML list of pages.
+ *
+ * @since 2.1.0
+ *
+ * @see Walker
+ */
+class Walker_Page extends Walker {
+
+       /**
+        * What the class handles.
+        *
+        * @since 2.1.0
+        * @access public
+        * @var string
+        *
+        * @see Walker::$tree_type
+        */
+       public $tree_type = 'page';
+
+       /**
+        * Database fields to use.
+        *
+        * @since 2.1.0
+        * @access private
+        * @var array
+        *
+        * @see Walker::$db_fields
+        * @todo Decouple this.
+        */
+       public $db_fields = array( 'parent' => 'post_parent', 'id' => 'ID' );
+
+       /**
+        * Outputs the beginning of the current level in the tree before elements are output.
+        *
+        * @since 2.1.0
+        * @access public
+        *
+        * @see Walker::start_lvl()
+        *
+        * @param string $output Passed by reference. Used to append additional content.
+        * @param int    $depth  Optional. Depth of page. Used for padding. Default 0.
+        * @param array  $args   Optional. Arguments for outputting the next level.
+        *                       Default empty array.
+        */
+       public function start_lvl( &$output, $depth = 0, $args = array() ) {
+               if ( isset( $args['item_spacing'] ) && 'preserve' === $args['item_spacing'] ) {
+                       $t = "\t";
+                       $n = "\n";
+               } else {
+                       $t = '';
+                       $n = '';
+               }
+               $indent = str_repeat( $t, $depth );
+               $output .= "{$n}{$indent}<ul class='children'>{$n}";
+       }
+
+       /**
+        * Outputs the end of the current level in the tree after elements are output.
+        *
+        * @since 2.1.0
+        * @access public
+        *
+        * @see Walker::end_lvl()
+        *
+        * @param string $output Passed by reference. Used to append additional content.
+        * @param int    $depth  Optional. Depth of page. Used for padding. Default 0.
+        * @param array  $args   Optional. Arguments for outputting the end of the current level.
+        *                       Default empty array.
+        */
+       public function end_lvl( &$output, $depth = 0, $args = array() ) {
+               if ( isset( $args['item_spacing'] ) && 'preserve' === $args['item_spacing'] ) {
+                       $t = "\t";
+                       $n = "\n";
+               } else {
+                       $t = '';
+                       $n = '';
+               }
+               $indent = str_repeat( $t, $depth );
+               $output .= "{$indent}</ul>{$n}";
+       }
+
+       /**
+        * Outputs the beginning of the current element in the tree.
+        *
+        * @see Walker::start_el()
+        * @since 2.1.0
+        * @access public
+        *
+        * @param string  $output       Used to append additional content. Passed by reference.
+        * @param WP_Post $page         Page data object.
+        * @param int     $depth        Optional. Depth of page. Used for padding. Default 0.
+        * @param array   $args         Optional. Array of arguments. Default empty array.
+        * @param int     $current_page Optional. Page ID. Default 0.
+        */
+       public function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) {
+               if ( isset( $args['item_spacing'] ) && 'preserve' === $args['item_spacing'] ) {
+                       $t = "\t";
+                       $n = "\n";
+               } else {
+                       $t = '';
+                       $n = '';
+               }
+               if ( $depth ) {
+                       $indent = str_repeat( $t, $depth );
+               } else {
+                       $indent = '';
+               }
+
+               $css_class = array( 'page_item', 'page-item-' . $page->ID );
+
+               if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
+                       $css_class[] = 'page_item_has_children';
+               }
+
+               if ( ! empty( $current_page ) ) {
+                       $_current_page = get_post( $current_page );
+                       if ( $_current_page && in_array( $page->ID, $_current_page->ancestors ) ) {
+                               $css_class[] = 'current_page_ancestor';
+                       }
+                       if ( $page->ID == $current_page ) {
+                               $css_class[] = 'current_page_item';
+                       } elseif ( $_current_page && $page->ID == $_current_page->post_parent ) {
+                               $css_class[] = 'current_page_parent';
+                       }
+               } elseif ( $page->ID == get_option('page_for_posts') ) {
+                       $css_class[] = 'current_page_parent';
+               }
+
+               /**
+                * Filters the list of CSS classes to include with each page item in the list.
+                *
+                * @since 2.8.0
+                *
+                * @see wp_list_pages()
+                *
+                * @param array   $css_class    An array of CSS classes to be applied
+                *                              to each list item.
+                * @param WP_Post $page         Page data object.
+                * @param int     $depth        Depth of page, used for padding.
+                * @param array   $args         An array of arguments.
+                * @param int     $current_page ID of the current page.
+                */
+               $css_classes = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
+
+               if ( '' === $page->post_title ) {
+                       /* translators: %d: ID of a post */
+                       $page->post_title = sprintf( __( '#%d (no title)' ), $page->ID );
+               }
+
+               $args['link_before'] = empty( $args['link_before'] ) ? '' : $args['link_before'];
+               $args['link_after'] = empty( $args['link_after'] ) ? '' : $args['link_after'];
+
+               $output .= $indent . sprintf(
+                       '<li class="%s"><a href="%s">%s%s%s</a>',
+                       $css_classes,
+                       get_permalink( $page->ID ),
+                       $args['link_before'],
+                       /** This filter is documented in wp-includes/post-template.php */
+                       apply_filters( 'the_title', $page->post_title, $page->ID ),
+                       $args['link_after']
+               );
+
+               if ( ! empty( $args['show_date'] ) ) {
+                       if ( 'modified' == $args['show_date'] ) {
+                               $time = $page->post_modified;
+                       } else {
+                               $time = $page->post_date;
+                       }
+
+                       $date_format = empty( $args['date_format'] ) ? '' : $args['date_format'];
+                       $output .= " " . mysql2date( $date_format, $time );
+               }
+       }
+
+       /**
+        * Outputs the end of the current element in the tree.
+        *
+        * @since 2.1.0
+        * @access public
+        *
+        * @see Walker::end_el()
+        *
+        * @param string  $output Used to append additional content. Passed by reference.
+        * @param WP_Post $page   Page data object. Not used.
+        * @param int     $depth  Optional. Depth of page. Default 0 (unused).
+        * @param array   $args   Optional. Array of arguments. Default empty array.
+        */
+       public function end_el( &$output, $page, $depth = 0, $args = array() ) {
+               if ( isset( $args['item_spacing'] ) && 'preserve' === $args['item_spacing'] ) {
+                       $t = "\t";
+                       $n = "\n";
+               } else {
+                       $t = '';
+                       $n = '';
+               }
+               $output .= "</li>{$n}";
+       }
+
+}