Пример #1
0
 /**
  * Renders the HTML attributes for a single module.
  *
  * @since 1.0
  * @param object $module A module node object.
  * @return void
  */
 public static function render_module_attributes($module)
 {
     $custom_class = apply_filters('fl_builder_module_custom_class', $module->settings->class, $module);
     $active = FLBuilderModel::is_builder_active();
     $global = FLBuilderModel::is_node_global($module);
     // ID
     if (!empty($module->settings->id)) {
         echo ' id="' . esc_attr($module->settings->id) . '"';
     }
     // Class
     echo ' class="fl-module';
     echo ' fl-module-' . $module->settings->type;
     if (!empty($module->settings->responsive_display)) {
         echo ' fl-visible-' . $module->settings->responsive_display;
     }
     if (!empty($module->settings->animation)) {
         echo ' fl-animation fl-' . $module->settings->animation;
     }
     if (!empty($custom_class)) {
         echo ' ' . trim(esc_attr($custom_class));
     }
     if ($global && $active) {
         echo ' fl-node-global';
     }
     echo ' fl-node-' . $module->node;
     echo '"';
     // Data
     echo ' data-node="' . $module->node . '" ';
     echo ' data-animation-delay="' . $module->settings->animation_delay . '" ';
     if ($active) {
         echo ' data-parent="' . $module->parent . '" ';
         echo ' data-type="' . $module->settings->type . '" ';
         echo ' data-name="' . $module->name . '" ';
     }
     if ($global && $active) {
         echo ' data-template="' . $module->template_id . '"';
         echo ' data-template-node="' . $module->template_node_id . '"';
     }
 }
 /**
  * Checks to see if all modules in a node support partial refresh.
  *
  * @since 1.7
  * @access private
  * @param object $node The node to check.
  * @return bool
  */
 private static function node_modules_support_partial_refresh($node)
 {
     $nodes = FLBuilderModel::get_categorized_nodes();
     if ('row' == $node->type) {
         $template_post_id = FLBuilderModel::is_node_global($node);
         foreach ($nodes['groups'] as $group) {
             if ($node->node == $group->parent || $template_post_id && $node->template_node_id == $group->parent) {
                 foreach ($nodes['columns'] as $column) {
                     if ($group->node == $column->parent) {
                         foreach ($nodes['modules'] as $module) {
                             if ($column->node == $module->parent) {
                                 if (!$module->partial_refresh) {
                                     return false;
                                 }
                             }
                         }
                     }
                 }
             }
         }
     } else {
         if ('column-group' == $node->type) {
             foreach ($nodes['columns'] as $column) {
                 if ($node->node == $column->parent) {
                     foreach ($nodes['modules'] as $module) {
                         if ($column->node == $module->parent) {
                             if (!$module->partial_refresh) {
                                 return false;
                             }
                         }
                     }
                 }
             }
         } else {
             if ('column' == $node->type) {
                 foreach ($nodes['modules'] as $module) {
                     if ($node->node == $module->parent) {
                         if (!$module->partial_refresh) {
                             return false;
                         }
                     }
                 }
             }
         }
     }
     return true;
 }
Пример #3
0
 /**
  * Renders the custom CSS or JS for all global nodes in a layout. 
  *
  * @since 1.7
  */
 public static function render_global_nodes_custom_code($type = 'css')
 {
     $code = '';
     $rendered = array();
     if (!FLBuilderModel::is_post_node_template()) {
         $nodes = FLBuilderModel::get_layout_data();
         $node_status = FLBuilderModel::get_node_status();
         foreach ($nodes as $node_id => $node) {
             $template_post_id = FLBuilderModel::is_node_global($node);
             if ($template_post_id && !in_array($template_post_id, $rendered)) {
                 $rendered[] = $template_post_id;
                 $code .= FLBuilderModel::get_layout_settings($node_status, $template_post_id)->{$type};
             }
         }
     }
     return $code;
 }