/** * 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; }
/** * 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; }