Пример #1
0
 /**
  * Get list of currently available archives slugs that has a template
  * @return array
  */
 public static function getArchiveTemplateSlugs()
 {
     $archives = get_post_types(array('has_archive' => true), 'names');
     $templates = array();
     foreach ($archives as $archive) {
         $template = \Modularity\Helper\Wp::findCoreTemplates(array('archive-' . $archive));
         if ($template) {
             $templates[] = $template;
         } else {
             $templates[] = 'archive';
         }
     }
     array_unique($templates);
     return $templates;
 }
Пример #2
0
 /**
  * Detects core templates
  * @return string Template
  */
 public static function detectCoreTemplate($post)
 {
     if ((int) get_option('page_on_front') == (int) $post->ID) {
         return \Modularity\Helper\Wp::findCoreTemplates(array('front-page', 'page'));
     }
     switch ($post->post_type) {
         case 'post':
             return 'single';
             break;
         case 'page':
             return 'page';
             break;
         default:
             return \Modularity\Helper\Wp::findCoreTemplates(array('single-' . $post->post_type, 'single', 'page'));
             break;
     }
     return 'index';
 }
<?php

$fields = json_decode(json_encode(get_fields($module->ID)));
if (isset($fields->contacts) && count($fields->contacts) > 0) {
    $displayMode = 'cards';
    if (isset($fields->display_mode) && !empty($fields->display_mode)) {
        $displayMode = $fields->display_mode;
    }
    switch ($displayMode) {
        case 'list':
            include \Modularity\Helper\Wp::getTemplate($module->post_type . '-list', 'module/modularity-mod-contact', false);
            break;
        default:
            include \Modularity\Helper\Wp::getTemplate($module->post_type . '-cards', 'module/modularity-mod-contact', false);
            break;
    }
} else {
    ?>

<div class="<?php 
    echo implode(' ', apply_filters('Modularity/Module/Classes', array('box', 'box-card'), $module->post_type, $args));
    ?>
" itemscope="person" itemtype="http://schema.org/Organization">

    <?php 
    if (isset($fields->picture) && !empty($fields->picture)) {
        $image = wp_get_attachment_image_src($fields->picture->id, apply_filters('modularity/image/contact', municipio_to_aspect_ratio('16:9', array(400, 400)), $args));
    } else {
        $image = false;
    }
    ?>
Пример #4
0
 public function __construct()
 {
     if (\Modularity\Helper\Wp::isThickBox()) {
         $this->init();
     }
 }
Пример #5
0
 /**
  * Display module with shortcode
  * @param  array $args Args
  * @return string      Html markup
  */
 public function shortcodeDisplay($args)
 {
     $args = shortcode_atts(array('id' => false, 'inline' => true), $args);
     if (!is_numeric($args['id'])) {
         return;
     }
     $module = \Modularity\Editor::getModule($args['id']);
     if (substr($module->post_type, 0, 4) != 'mod-' || $module->post_status == 'private' && !is_user_logged_in()) {
         return;
     }
     $templatePath = \Modularity\Helper\Wp::getTemplate($module->post_type, 'module-inline', false);
     if (!$templatePath || $args['inline'] !== true) {
         $templatePath = \Modularity\Helper\Wp::getTemplate($module->post_type, 'module', false);
     }
     if (!$templatePath) {
         return false;
     }
     ob_start();
     include $templatePath;
     $moduleMarkup = ob_get_clean();
     $moduleMarkup = apply_filters('Modularity/Display/Markup', $moduleMarkup, $module);
     $moduleMarkup = apply_filters('Modularity/Display/' . $module->post_type . '/Markup', $moduleMarkup, $module);
     return '<div class="' . $module->post_type . '">' . $moduleMarkup . '</div>';
 }
}
$order = $fields->posts_sort_order;
$filters = array('orderby' => sanitize_text_field($sortBy), 'order' => sanitize_text_field($order));
if ($sortBy == 'meta_key') {
    $filters['meta_key'] = $orderby;
}
if (isset($fields->posts_taxonomy_type) && $fields->posts_taxonomy_type) {
    $taxType = $fields->posts_taxonomy_type;
    $taxValues = (array) $fields->posts_taxonomy_value;
    $taxValues = implode('|', $taxValues);
    $filters['term[]'] = $taxType . '|' . $taxValues;
}
switch ($fields->posts_display_as) {
    case 'list':
        $template = \Modularity\Helper\Wp::getTemplate($module->post_type . '-list', 'module/modularity-mod-posts', false);
        break;
    case 'news':
        $template = \Modularity\Helper\Wp::getTemplate($module->post_type . '-news', 'module/modularity-mod-posts', false);
        break;
    case 'items':
        $template = \Modularity\Helper\Wp::getTemplate($module->post_type . '-items', 'module/modularity-mod-posts', false);
        break;
    case 'index':
        $template = \Modularity\Helper\Wp::getTemplate($module->post_type . '-index', 'module/modularity-mod-posts', false);
        break;
    case 'expandable-list':
        $template = \Modularity\Helper\Wp::getTemplate($module->post_type . '-expandable-list', 'module/modularity-mod-posts', false);
        break;
}
$template = apply_filters('Modularity/Module/Posts/template', $template, $module, $fields);
include $template;
Пример #7
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);
 }
Пример #8
0
 /**
  * Metabox content: Modules
  * @return void
  */
 public function metaBoxModules()
 {
     $available = \Modularity\Module::$available;
     uasort($available, function ($a, $b) {
         return strcmp($a['labels']['name'], $b['labels']['name']);
     });
     global $modularityOptions;
     $enabled = isset($modularityOptions['enabled-modules']) && is_array($modularityOptions['enabled-modules']) ? $modularityOptions['enabled-modules'] : array();
     $templatePath = \Modularity\Helper\Wp::getTemplate('modules', 'options/partials');
     include $templatePath;
 }
Пример #9
0
 /**
  * Get active areas for template.
  * If nothing found on the specific template (eg. archive-cars), fallback to the default template (eg. archive)
  * @param  string $template Template
  * @return array            Active sidebars
  */
 public function getActiveAreas($template)
 {
     $originalTemplate = $template;
     $options = get_option('modularity-options');
     $active = isset($options['enabled-areas'][$template]) ? $options['enabled-areas'][$template] : array();
     self::$isEditing['template'] = $template;
     // Fallback
     if (count($active) === 0 && !is_numeric($template) && strpos($template, 'archive-') !== false && !in_array($template, \Modularity\Options\Archives::getArchiveTemplateSlugs())) {
         $template = explode('-', $template, 2)[0];
         self::$isEditing['template'] = $template;
         $active = isset($options['enabled-areas'][$template]) ? $options['enabled-areas'][$template] : array();
     }
     if (self::$isEditing['title'] == 'archive-post') {
         $home = \Modularity\Helper\Wp::findCoreTemplates(array('home'));
         if ($home) {
             $active = isset($options['enabled-areas']['home']) ? $options['enabled-areas']['home'] : array();
             self::$isEditing['template'] = 'home';
         }
     }
     return $active;
 }
Пример #10
0
 /**
  * Enqueues scripts and styles
  * @return void
  */
 public function enqueueAdmin()
 {
     if (!$this->isModularityPage()) {
         return;
     }
     // Style
     wp_register_style('modularity', MODULARITY_URL . '/dist/css/modularity.' . self::$assetSuffix . '.css', false, filemtime(MODULARITY_PATH . '/dist/css/modularity.' . self::$assetSuffix . '.css'));
     wp_enqueue_style('modularity');
     // Scripts
     wp_register_script('modularity', MODULARITY_URL . '/dist/js/modularity.' . self::$assetSuffix . '.js', false, filemtime(MODULARITY_PATH . '/dist/js/modularity.' . self::$assetSuffix . '.js'), true);
     wp_localize_script('modularity', 'modularityAdminLanguage', array('langedit' => __('Edit', 'modularity'), 'langimport' => __('Import', 'modularity'), 'langremove' => __('Remove', 'modularity'), 'langhide' => __('Hide', 'modularity'), 'actionRemove' => __('Are you sure you want to remove this module?', 'modularity'), 'isSaving' => __('Saving…', 'modularity'), 'close' => __('Close', 'modularity'), 'width' => __('Width', 'modularity'), 'widthOptions' => $this->editor->getWidthOptions(), 'deprecated' => __('Deprecated', 'modularity')));
     wp_enqueue_script('modularity');
     add_action('admin_head', function () {
         echo "\n                <script>\n                    var admin_url = '" . admin_url() . "';\n                </script>\n            ";
     });
     // If editor
     if (\Modularity\Helper\Wp::isEditor()) {
         wp_enqueue_script('jquery-ui-sortable');
         wp_enqueue_script('jquery-ui-draggable');
         wp_enqueue_script('jquery-ui-droppable');
         add_action('admin_head', function () {
             global $post;
             global $archive;
             $id = isset($post->ID) ? $post->ID : "'" . $archive . "'";
             echo "\n                    <script>\n                        var modularity_post_id = " . $id . "\n                    </script>\n                ";
         });
     }
 }