サイトの全ページで使われるグローバルナビゲーションを設定します。
プラグインを有効にすると、管理画面のサイドバーに「グローバルナビ」というメニューができます。
グローバルナビゲーションの設定画面ではヘッダーとフッターのそれぞれにグローバルナビゲーションを表示するかどうか、するとしたら、それぞれどのページを使うか、を設定します。このサイトのように、同じページ(GlobalNavigation)を使うこともできます。
次に、指定したページを作ると、そのページが自動的にヘッダーやフッターで読み込まれて、ナビゲーションとなります。
実際には、ナビゲーションに限らず、ヘッダーやフッターに好きなページの内容を差し込むプラグインですね。
add_body_enter_proc do if @conf['global_nav.header_enabled'] cache = @db.load_cache(@conf['global_nav.header_used_page']) unless cache page = @conf['global_nav.header_used_page'] page = 'Header' if page.empty? cache = @conf.parser.new(@conf).parse(@db.load(page) || '') @db.save_cache(@conf['global_nav.header_used_page'], cache) end @conf.formatter.new(cache, @db, self, @conf).to_s end end add_body_leave_proc do if @conf['global_nav.footer_enabled'] cache = @db.load_cache(@conf['global_nav.footer_used_page']) unless cache page = @conf['global_nav.footer_used_page'] page = 'Footer' if page.empty? cache = @conf.parser.new(@conf).parse(@db.load(page) || '') @db.save_cache(@conf['global_nav.footer_used_page'], cache) end @conf.formatter.new(cache, @db, self, @conf).to_s end end add_conf_proc('global_nav', global_nav_label) do if @mode == 'saveconf' @conf['global_nav.header_enabled'] = (@cgi.params['global_nav.header_enabled'][0] == 'true') @conf['global_nav.footer_enabled'] = (@cgi.params['global_nav.footer_enabled'][0] == 'true') @conf['global_nav.header_used_page'] = @cgi.params['global_nav.header_used_page'][0] @conf['global_nav.footer_used_page'] = @cgi.params['global_nav.footer_used_page'][0] end <<EOH <p>#{global_nav_desc}</p> <h3>#{global_nav_header_label}</h3> <p>#{global_nav_header_enabled_desc}</p> <p> <select name="global_nav.header_enabled"> <option value="true"#{@conf['global_nav.header_enabled'] ? ' selected' : ''}>#{global_nav_enabled_true_label}</option> <option value="false"#{@conf['global_nav.header_enabled'] ? '' : ' selected'}>#{global_nav_enabled_false_label}</option> </select> </p> <p>#{global_nav_used_page_as_header_desc}</p> <p><input name="global_nav.header_used_page" value="#{@conf['global_nav.header_used_page']}"></p> <h3>#{global_nav_footer_label}</h3> <p>#{global_nav_footer_enabled_desc}</p> <p> <select name="global_nav.footer_enabled"> <option value="true"#{@conf['global_nav.footer_enabled'] ? ' selected' : ''}>#{global_nav_enabled_true_label}</option> <option value="false"#{@conf['global_nav.footer_enabled'] ? '' : ' selected'}>#{global_nav_enabled_false_label}</option> </select> </p> <p>#{global_nav_used_page_as_footer_desc}</p> <p><input name="global_nav.footer_used_page" value="#{@conf['global_nav.footer_used_page']}"></p> EOH end
# encoding: euc-jp def global_nav_label; 'グローバルナビ'; end def global_nav_header_label; 'ヘッダー'; end def global_nav_footer_label; 'フッター'; end def global_nav_desc; 'グローバルナビゲーションを設定します。'; end def global_nav_header_enabled_desc; 'ヘッダーを有効にするかどうかを指定します。'; end def global_nav_footer_enabled_desc; 'フッターを有効にするかどうかを指定します。'; end def global_nav_enabled_true_label; '有効にする'; end def global_nav_enabled_false_label; '無効にする'; end def global_nav_used_page_as_header_desc; '使用するページ名を指定します。空欄の場合は「Header」ページが使われます。'; end def global_nav_used_page_as_footer_desc; '使用するページ名を指定します。空欄の場合は「Footer」ページが使われます。'; end
def global_nav_label; 'Global Nav'; end def global_nav_desc; 'Set up global navigation.'; end def global_nav_header_label; 'Header'; end def global_nav_footer_label; 'Footer'; end def global_nav_header_enabled_desc; 'Set whether or not you enable the header.'; end def global_nav_footer_enabled_desc; 'Set whether or not you enable the footer.'; end def global_nav_enabled_true_label; 'Enable'; end def global_nav_enabled_false_label; 'Disable'; end def global_nav_used_page_as_header_desc; 'Set the name of page used as header. "Header" is used if blank.'; end def global_nav_used_page_as_footer_desc; 'Set the name of page used as footer. "Footer" is used if blank.'; end