Module: Pageflow::EntriesHelper
- Included in:
- SocialShareHelper
- Defined in:
- app/helpers/pageflow/entries_helper.rb
Overview
rubocop:todo Style/Documentation
Defined Under Namespace
Modules: PrettyUrl
Instance Method Summary collapse
- #entry_css_class(entry) ⇒ Object
- #entry_file_rights(entry) ⇒ Object
-
#entry_global_links(entry) ⇒ Object
rubocop:todo Metrics/AbcSize.
- #entry_header_css_class(entry) ⇒ Object
- #entry_mobile_navigation_pages(entry) ⇒ Object
- #entry_privacy_link_url(entry) ⇒ Object
- #entry_stylesheet_link_tag(entry) ⇒ Object
- #entry_summary(entry) ⇒ Object
- #entry_theme_stylesheet_link_tag(entry) ⇒ Object
- #pretty_entry_title(entry) ⇒ Object
- #pretty_entry_url(entry, options = {}) ⇒ Object
Instance Method Details
#entry_css_class(entry) ⇒ Object
157 158 159 160 161 162 |
# File 'app/helpers/pageflow/entries_helper.rb', line 157 def entry_css_class(entry) [ (entry), entry.emphasize_chapter_beginning ? 'emphasize_chapter_beginning' : nil ].compact.join(' ') end |
#entry_file_rights(entry) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'app/helpers/pageflow/entries_helper.rb', line 83 def entry_file_rights(entry) rights = Pageflow.config.file_types.map { |file_type| entry.find_files(file_type.model).map do |file| file.rights.presence || entry.account.default_file_rights.presence end }.flatten.compact.sort.uniq if rights.any? content_tag :p, class: 'rights' do "#{I18n.t('pageflow.helpers.entries.image_rights')}: #{rights * ', '}" end else '' end end |
#entry_global_links(entry) ⇒ Object
rubocop:todo Metrics/AbcSize
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'app/helpers/pageflow/entries_helper.rb', line 99 def entry_global_links(entry) # rubocop:todo Metrics/AbcSize legal_info = entry.legal_info candidates = [ [legal_info.imprint.label, legal_info.imprint.url, 'legal'], [legal_info.copyright.label, legal_info.copyright.url, 'copy'], [I18n.t('pageflow.public.privacy_notice'), entry_privacy_link_url(entry), 'privacy'] ] links = candidates.filter_map do |label, url, css_class| next if label.blank? || url.blank? link_to(raw(label), url, target: url.start_with?('javascript:') ? nil : '_blank', tabindex: 2, class: css_class) end return '' if links.empty? content_tag(:span, I18n.t('pageflow.helpers.entries.global_links'), class: 'hidden') + safe_join(links, ''.html_safe) end |
#entry_header_css_class(entry) ⇒ Object
164 165 166 167 168 |
# File 'app/helpers/pageflow/entries_helper.rb', line 164 def entry_header_css_class(entry) css_class = 'header' css_class += ' invert' if entry.pages.any? && entry.pages.first.configuration['invert'] css_class end |
#entry_mobile_navigation_pages(entry) ⇒ Object
149 150 151 152 153 154 155 |
# File 'app/helpers/pageflow/entries_helper.rb', line 149 def (entry) entry.pages..tap do |pages| if entry.pages.any? && !entry.pages.first. [entry.pages.first, pages].flatten end end end |
#entry_privacy_link_url(entry) ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'app/helpers/pageflow/entries_helper.rb', line 74 def entry_privacy_link_url(entry) url = entry.legal_info.privacy_url return unless url.present? return url if url.start_with?('javascript:') "#{url}?lang=#{entry.locale}" end |
#entry_stylesheet_link_tag(entry) ⇒ Object
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
# File 'app/helpers/pageflow/entries_helper.rb', line 130 def entry_stylesheet_link_tag(entry) url = pageflow.polymorphic_path(entry.stylesheet_model, action: :stylesheet, v: entry.stylesheet_cache_key, p: Pageflow::VERSION, format: 'css') # We cannot use stylesheet_link_tag here since that always uses # the asset host. Entry stylesheet requests are subject to # `Configuration#public_entry_request_scope` and # `Configuration#public_entry_redirect` which might depend on # the hostname. tag(:link, rel: 'stylesheet', href: url, media: 'all', data: {name: 'entry'}) end |
#entry_summary(entry) ⇒ Object
170 171 172 173 174 |
# File 'app/helpers/pageflow/entries_helper.rb', line 170 def entry_summary(entry) return '' if entry.summary.blank? (entry.summary.gsub(%r{<br ?/?>}, ' ').squish) end |
#entry_theme_stylesheet_link_tag(entry) ⇒ Object
124 125 126 127 128 |
# File 'app/helpers/pageflow/entries_helper.rb', line 124 def entry_theme_stylesheet_link_tag(entry) stylesheet_link_tag(entry.theme.stylesheet_path, media: 'all', data: {name: 'theme'}) end |
#pretty_entry_title(entry) ⇒ Object
3 4 5 6 7 8 |
# File 'app/helpers/pageflow/entries_helper.rb', line 3 def pretty_entry_title(entry) return entry.title if entry.site.title == ' ' [entry.title, entry.site.display_title].compact.join(' - ') end |