コード例 #1
0
ファイル: App.php プロジェクト: helsingborg-stad/Modularity
 /**
  * Add buttons to admin bar (public)
  * @return void
  */
 public function setupAdminBar()
 {
     // Link to editor from page
     add_action('admin_bar_menu', function () {
         $options = get_option('modularity-options');
         if (is_admin() || !current_user_can('edit_posts')) {
             return;
         }
         global $wp_admin_bar;
         global $post;
         $editorLink = admin_url('options.php?page=modularity-editor&id=' . get_the_id());
         $archiveSlug = \Modularity\Helper\Wp::getArchiveSlug();
         if ($archiveSlug) {
             $editorLink = admin_url('options.php?page=modularity-editor&id=' . $archiveSlug);
         }
         if (isset($options['enabled-post-types']) && is_array($options['enabled-post-types']) && !in_array(get_post_type(), $options['enabled-post-types'])) {
             $editorLink = null;
         }
         $editorLink = apply_filters('Modularity/adminbar/editor_link', $editorLink, $post, $archiveSlug, $this->currentUrl());
         if (empty($editorLink)) {
             return;
         }
         $wp_admin_bar->add_node(array('id' => 'modularity_editor', 'title' => __('Edit', 'modularity') . ' ' . strtolower(__('Modules', 'modularity')), 'href' => $editorLink, 'meta' => array('class' => 'modularity-editor-icon')));
     }, 1050);
 }
コード例 #2
0
 /**
  * Initialize, get post's/page's modules and start output
  * @return void
  */
 public function init()
 {
     global $post;
     global $wp_query;
     if (is_admin()) {
         return;
     }
     $archiveSlug = \Modularity\Helper\Wp::getArchiveSlug();
     if (isset($wp_query->query['modularity_template']) && !empty($wp_query->query['modularity_template'])) {
         $this->modules = \Modularity\Editor::getPostModules($wp_query->query['modularity_template']);
         $this->options = get_option('modularity_' . $wp_query->query['modularity_template'] . '_sidebar-options');
     } elseif ($archiveSlug) {
         $this->modules = \Modularity\Editor::getPostModules($archiveSlug);
         $this->options = get_option('modularity_' . $archiveSlug . '_sidebar-options');
     } else {
         $this->modules = \Modularity\Editor::getPostModules($post->ID);
         $this->options = get_post_meta($post->ID, 'modularity-sidebar-options', true);
     }
     add_action('dynamic_sidebar_before', array($this, 'outputBefore'));
     add_action('dynamic_sidebar_after', array($this, 'outputAfter'));
     add_filter('sidebars_widgets', array($this, 'hideWidgets'));
 }
コード例 #3
0
 /**
  * Checks if a page has a modules
  * @return boolean
  */
 public function hasModule()
 {
     global $post;
     $postId = null;
     $modules = array();
     $archiveSlug = \Modularity\Helper\Wp::getArchiveSlug();
     if ($archiveSlug) {
         $postId = $archiveSlug;
     } elseif (isset($post->ID)) {
         $postId = $post->ID;
     } else {
         return apply_filters('Modularity/hasModule', false, null);
     }
     $modules = \Modularity\Editor::getPostModules($postId);
     $modules = json_encode($modules);
     return apply_filters('Modularity/hasModule', strpos($modules, '"post_type":"' . $this->moduleSlug . '"') == true, $archiveSlug);
 }