Sitemap done for backend and fronted
This commit is contained in:
parent
934b515914
commit
a8cc581279
|
@ -1,8 +1,8 @@
|
|||
class Admin::SitesController < ApplicationController
|
||||
|
||||
layout "new_admin"
|
||||
before_filter :authenticate_user!
|
||||
before_filter :is_admin?
|
||||
before_filter :authenticate_user!, :except => [:sitemap_frontend]
|
||||
before_filter :is_admin?, :except => [:sitemap_frontend]
|
||||
before_filter :get_site
|
||||
|
||||
# def index
|
||||
|
@ -31,6 +31,11 @@ class Admin::SitesController < ApplicationController
|
|||
@items = get_homepage.children rescue []
|
||||
end
|
||||
|
||||
def sitemap_frontend
|
||||
@items = get_homepage.children.excludes(sitemap_enabled: false) rescue []
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
def sitemap_toggle
|
||||
@item = Item.find(params[:id])
|
||||
@item.sitemap_enabled = !@item.sitemap_enabled
|
||||
|
|
|
@ -21,7 +21,7 @@ class Item
|
|||
validates_associated :parent, :children
|
||||
|
||||
before_destroy :destroy_children
|
||||
after_rearrange :rebuild_path
|
||||
after_rearrange :rebuild_path, :if => "parent_id_changed?"
|
||||
|
||||
|
||||
def self.find_by_name(item_name)
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<% if @r_tag.eql?('sub_menu') %>
|
||||
<%= f.hidden_field :public_r_tag_object_id, :value => @part.page.id %>
|
||||
<%#= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %>
|
||||
<% elsif @r_tag.eql?('sitemap') %>
|
||||
<% else %>
|
||||
<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %>
|
||||
<% end %>
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<%#= content_tag :li, link_to(t('admin.site_language'), admin_site_language_path(@site)), :class => active_for_action('sites', 'language') %>
|
||||
<%= content_tag :li, link_to(t('admin.mail_setting'), admin_site_mail_setting_path(@site)), :class => active_for_action('sites', 'mail_setting') %>
|
||||
<%#= content_tag :li, link_to(t('admin.ui_theme'), admin_site_ui_theme_path(@site)), :class => active_for_action('sites', 'ui_theme') %>
|
||||
<%= content_tag :li, link_to(t('site_map'), admin_site_sitemap_path(@site)), :class => active_for_action('sites', 'sitemap') %>
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<div class="map-block <%= 'disabled' if !sitemap_block.sitemap_enabled %>">
|
||||
<h4>
|
||||
<button id="<%= sitemap_block.id %>" class="onoff pull-right"><%= sitemap_block.sitemap_enabled ? t('on_upcase') : t('off_upcase') %></button>
|
||||
<span><%= sitemap_block.i18n_variable[I18n.locale] %></span>
|
||||
<span><%= sitemap_block_counter + 1 %> <%= sitemap_block.title %></span>
|
||||
</h4>
|
||||
<ul>
|
||||
<% sitemap_block.children.each do |child| %>
|
||||
<% sitemap_block.children.each_with_index do |child, i| %>
|
||||
<li class="clear <%= 'disabled' if !child.sitemap_enabled %>">
|
||||
<button id="<%= child.id %>" class="onoff pull-right" disabled="<%= 'disabled' if !sitemap_block.sitemap_enabled %>" ><%= child.sitemap_enabled ? t('on_upcase') : t('off_upcase') %></button>
|
||||
<span><%= child.i18n_variable[I18n.locale] %></span>
|
||||
<%= content_tag :button, :id => child.id, :class => "onoff pull-right", :disabled => !sitemap_block.sitemap_enabled do %>
|
||||
<%= child.sitemap_enabled ? t('on_upcase') : t('off_upcase') %>
|
||||
<% end %>
|
||||
<span><%= "#{sitemap_block_counter + 1}-#{i + 1}" %> <%= child.title %></span>
|
||||
</li>
|
||||
<% end if sitemap_block.children %>
|
||||
</ul>
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<div class="site-map">
|
||||
<% @items.each_with_index do |item, i| %>
|
||||
<div class="map-block">
|
||||
<h4><%= i+1 %> <%= item.title %></h4>
|
||||
<ul>
|
||||
<% item.children.each_with_index do |child, ii| %>
|
||||
<li class="clear"><%= "#{i+1}-#{ii+1}" %> <%= child.title %></span></li>
|
||||
<% end if item.children %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= javascript_include_tag "lib/jquery.masonry.min.js" %>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$('.site-map').masonry({
|
||||
itemSelector: '.map-block',
|
||||
columnWidth: 260,
|
||||
isAnimated: true
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -10,6 +10,7 @@ markups:
|
|||
public_r_tags:
|
||||
- ad_banner
|
||||
- sub_menu
|
||||
- sitemap
|
||||
|
||||
page_part_kinds:
|
||||
- text
|
||||
|
|
|
@ -68,6 +68,7 @@ en:
|
|||
role: Role
|
||||
site_info: Site Info
|
||||
site_name: Site Name
|
||||
sitemap: Sitemap
|
||||
statistics: Statistics
|
||||
title: Title
|
||||
total_visitors: Total Visitors
|
||||
|
|
|
@ -66,6 +66,7 @@ zh_tw:
|
|||
role: 角色
|
||||
site_info: 網站資訊
|
||||
site_name: 網站名稱
|
||||
sitemap: 網站地圖
|
||||
statistics: 統計
|
||||
title: 標題
|
||||
total_visitors: 造訪次數
|
||||
|
|
|
@ -117,6 +117,7 @@ Orbit::Application.routes.draw do
|
|||
get 'mail_setting'
|
||||
get 'site_info'
|
||||
get 'sitemap'
|
||||
get 'sitemap_frontend'
|
||||
get 'sitemap_toggle', :on => :member
|
||||
get 'system_info'
|
||||
get 'ui_theme'
|
||||
|
|
|
@ -161,6 +161,15 @@ module ParserCommon
|
|||
end
|
||||
end
|
||||
|
||||
# sitemap
|
||||
def parse_sitemaps(body = nil, page = nil, edit=nil)
|
||||
sitemap = body.css('sitemap').first
|
||||
url = admin_site_sitemap_frontend_path(@site)
|
||||
options = "?inner=true"
|
||||
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load' path='#{url + options}'></div>")
|
||||
sitemap.swap(fragment)
|
||||
end
|
||||
|
||||
# page_contents
|
||||
def parse_contents(body, page, edit=nil)
|
||||
public_r_tags = []
|
||||
|
|
Reference in New Issue