public static function create_dad_buble($data, $inside_template = 0, $fields_array = array(), $style = array()) { global $ch_bubble_create_js_code, $ch_bubble_modify_js_code; if (!count($data)) { return; } //el data tiene que ser un array valido if ($data['name'] != "box" and (!$data["name"] or !$data["box_name"] or !$data["type"])) { return; } //aseguramos que tenemos los minimos $return = ""; if (!$inside_template and isset($data["box_info"])) { $return .= "<li class='draggable info' title='" . $data["box_info"] . "'> <span class='title'>" . __($data["box_name"], "chronosly") . "</span>"; } else { if (!$inside_template) { $return .= "<li class='draggable'> <span class='title'>" . $data["box_name"] . "</span>"; } } //añadimos el d&d si es una box if ($data['name'] != "box") { $return .= "<div class='ev-hidden'>\n <div class='vars'>"; if (isset($fields_array["bubble_value"])) { $data["value"] = $fields_array["bubble_value"]; } $return .= Chronosly_Extend::create_field($data, 1); //creamos el campo if ($data['js_function']) { //si no la hemos añadido ya antes if (stripos($ch_bubble_create_js_code, $data["name"] . "chseparator1") === FALSE) { //si existe la funcion llamamos para generar el array de funciones que imprimiremos en el js al crear el elemento o eliminarlo if (!is_array($data['js_function'])) { if (function_exists($data['js_function'])) { $ch_bubble_create_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "create") . "chseparator2"; $ch_bubble_modify_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "modify") . "chseparator2"; } } else { if (class_exists($data['js_function'][0]) and method_exists($data['js_function'][0], $data['js_function'][1])) { $ch_bubble_create_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "create") . "chseparator2"; $ch_bubble_modify_js_code .= $data["name"] . "chseparator1" . call_user_func($data['js_function'], "modify") . "chseparator2"; } } } } //llamamos a los fields associados a este value if (isset($data['fields_associated'])) { foreach ($data['fields_associated'] as $field) { if (has_filter("chronosly_field_" . $field["name"])) { $default = $field; if (count($fields_array) and isset($fields_array[$field["name"]])) { $default = array_merge($default, $fields_array[$field["name"]]); } //setting values to fields $return .= apply_filters("chronosly_field_" . $field["name"], $default); } } } $return .= "</div>"; } /* STYLE BOXES */ $styleboxes = Chronosly_Paint::default_style_boxes(); foreach ($styleboxes as $id => $box) { $return .= "<div class='{$id}'>"; $cont = ""; $cont .= apply_filters("chronosly_style_box_" . $id . "_fields", $cont, $style); //genramos los inputs de los stylers $return .= $cont; $return .= "</div>"; } if ($data['name'] != "box") { $return .= "</div>"; if (!$inside_template) { $return .= "</li>"; } //creamos el filter para hacer render en el frontend if ($data['php_function']) { if (!has_filter("chronosly_bubble_render_" . $data['name'])) { add_filter("chronosly_bubble_render_" . $data["name"], $data['php_function'], 10, 3); } } } return $return; }
</span> <span class='delete infot' title="<?php _e("Delete selected item", "chronosly"); ?> " ><?php _e("Delete", "chronosly"); ?> </span> <div class="box vars"><?php _e("Variables", "chronosly"); ?> <div class="ev-hidden"><div class="close">X</div><div class="vars"></div></div></div> <?php $styleboxes = Chronosly_Paint::default_style_boxes(); foreach ($styleboxes as $id => $box) { echo "<div class='box {$id}'>" . __($box, "chronosly") . '<div class="ev-hidden"><div class="close">X</div><div class="vars"></div></div></div>'; } ?> </div> <div class="after-style" style="clear:both;"> <?php _e("Custom css", "chronosly"); ?> <textarea name="custom-css" class="extra-custom-css" rows="6" cols="100" ><?php echo str_replace("#plus#", "+", urldecode($temp->style)); ?> </textarea><br/> </div>