Changeset 2225180
- Timestamp:
- 01/10/2020 03:55:52 AM (6 years ago)
- Location:
- timeless-component-builder
- Files:
-
- 19 added
- 1 deleted
- 11 edited
-
tags/1.1.0 (added)
-
tags/1.1.0/dist (added)
-
tags/1.1.0/dist/bcs-style.css.map (added)
-
tags/1.1.0/dist/repeater.js (added)
-
tags/1.1.0/dist/tcb-script.js (added)
-
tags/1.1.0/dist/tcb-style.css (added)
-
tags/1.1.0/dist/tcb-style.css.map (added)
-
tags/1.1.0/dist/tcb-style.scss (added)
-
tags/1.1.0/inc (added)
-
tags/1.1.0/inc/add_categories.php (added)
-
tags/1.1.0/inc/add_metabox.php (added)
-
tags/1.1.0/inc/class-fields.php (added)
-
tags/1.1.0/inc/generate-metabox.php (added)
-
tags/1.1.0/inc/register_shortcode.php (added)
-
tags/1.1.0/inc/save_metabox.php (added)
-
tags/1.1.0/inc/user_function.php (added)
-
tags/1.1.0/index.php (added)
-
tags/1.1.0/readme.txt (added)
-
tags/1.1.0/tcb.php (added)
-
trunk/dist/tcb-style.css (modified) (3 diffs)
-
trunk/dist/tcb-style.css.map (modified) (1 diff)
-
trunk/dist/tcb-style.scss (modified) (3 diffs)
-
trunk/inc/add_metabox.php (modified) (1 diff)
-
trunk/inc/class-fields.php (modified) (8 diffs)
-
trunk/inc/filter-system.php (deleted)
-
trunk/inc/generate-metabox.php (modified) (4 diffs)
-
trunk/inc/register_shortcode.php (modified) (3 diffs)
-
trunk/inc/save_metabox.php (modified) (5 diffs)
-
trunk/inc/user_function.php (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/tcb.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
timeless-component-builder/trunk/dist/tcb-style.css
r2221968 r2225180 1 .single-field-wrapper {2 margin-bottom: 20px;3 }4 5 .single-field-wrapper input,6 .single-field-wrapper textarea {7 display: block;8 width: 550px;9 margin-top: 8px;10 }11 12 1 .single-field-wrapper label { 13 2 margin-bottom: 10px; … … 25 14 -ms-flex-direction: column; 26 15 flex-direction: column; 27 }28 29 .multiple-fileds-wrapper .single-item-wrapper {30 padding: 15px;31 margin-bottom: 15px;32 border-radius: 5px;33 border: 2px solid #ccc;34 position: relative;35 16 } 36 17 … … 75 56 cursor: pointer; 76 57 } 58 59 /* * */ 60 .tcb_fields_wrapper { 61 display: -webkit-box; 62 display: -ms-flexbox; 63 display: flex; 64 -ms-flex-wrap: wrap; 65 flex-wrap: wrap; 66 } 67 68 .single-field-wrapper { 69 width: 100%; 70 } 71 72 .single-field-wrapper > div { 73 padding: 10px; 74 } 75 76 .single-field-wrapper input, 77 .single-field-wrapper textarea { 78 display: block; 79 width: 100%; 80 margin-top: 8px; 81 font-size: 13px; 82 } 83 84 .single-field-wrapper textarea { 85 min-height: 150px; 86 } 87 88 .single-field-wrapper label { 89 font-size: 13px; 90 } 91 92 .single-field-wrapper.col-1 { 93 -ms-flex: 0 0 8.333333%; 94 -webkit-box-flex: 0; 95 flex: 0 0 8.333333%; 96 max-width: 8.333333%; 97 } 98 99 .single-field-wrapper.col-2 { 100 -ms-flex: 0 0 16.666667%; 101 -webkit-box-flex: 0; 102 flex: 0 0 16.666667%; 103 max-width: 16.666667%; 104 } 105 106 .single-field-wrapper.col-3 { 107 -ms-flex: 0 0 25%; 108 -webkit-box-flex: 0; 109 flex: 0 0 25%; 110 max-width: 25%; 111 } 112 113 .single-field-wrapper.col-4 { 114 -ms-flex: 0 0 33.333333%; 115 -webkit-box-flex: 0; 116 flex: 0 0 33.333333%; 117 max-width: 33.333333%; 118 } 119 120 .single-field-wrapper.col-5 { 121 -ms-flex: 0 0 41.666667%; 122 -webkit-box-flex: 0; 123 flex: 0 0 41.666667%; 124 max-width: 41.666667%; 125 } 126 127 .single-field-wrapper.col-6 { 128 -ms-flex: 0 0 50%; 129 -webkit-box-flex: 0; 130 flex: 0 0 50%; 131 max-width: 50%; 132 } 133 134 .single-field-wrapper.col-7 { 135 -ms-flex: 0 0 58.333333%; 136 -webkit-box-flex: 0; 137 flex: 0 0 58.333333%; 138 max-width: 58.333333%; 139 } 140 141 .single-field-wrapper.col-8 { 142 -ms-flex: 0 0 66.666667%; 143 -webkit-box-flex: 0; 144 flex: 0 0 66.666667%; 145 max-width: 66.666667%; 146 } 147 148 .single-field-wrapper.col-9 { 149 -ms-flex: 0 0 75%; 150 -webkit-box-flex: 0; 151 flex: 0 0 75%; 152 max-width: 75%; 153 } 154 155 .single-field-wrapper.col-10 { 156 -ms-flex: 0 0 83.333333%; 157 -webkit-box-flex: 0; 158 flex: 0 0 83.333333%; 159 max-width: 83.333333%; 160 } 161 162 .single-field-wrapper.col-11 { 163 -ms-flex: 0 0 91.666667%; 164 -webkit-box-flex: 0; 165 flex: 0 0 91.666667%; 166 max-width: 91.666667%; 167 } 168 169 .single-field-wrapper.col-12 { 170 -ms-flex: 0 0 100%; 171 -webkit-box-flex: 0; 172 flex: 0 0 100%; 173 max-width: 100%; 174 } 175 176 .single-item-wrapper { 177 border-radius: 2px; 178 padding: 15px 0 0 0; 179 background-color: #fcfcfc; 180 margin-bottom: 15px; 181 border-radius: 2px; 182 position: relative; 183 border: 1px solid #dfdfdf; 184 width: 100%; 185 } 186 187 .single-item-wrapper:hover { 188 background-color: #f6f6f6; 189 } 190 191 .repeater-fileds { 192 width: calc(100% - 30px); 193 } 194 195 .multiple-items-title { 196 margin-bottom: 8px; 197 font-weight: 700; 198 } 77 199 /*# sourceMappingURL=tcb-style.css.map */ -
timeless-component-builder/trunk/dist/tcb-style.css.map
r2221968 r2225180 1 1 { 2 2 "version": 3, 3 "mappings": "AAAA,AAAA,qBAAqB,CAAC ;EACrB,aAAa,EAAE,IAAI;CACnB;;AACD,AAAA,qBAAqB,CAAC,KAAK;AAC3B,qBAAqB,CAAC,QAAQ,CAAC;EAC9B,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,GAAG;CACf;;AAED,AAAA,qBAAqB,CAAC,KAAK,CAAC;EAC3B,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,UAAU;CAC1B;;AAED,AAAA,wBAAwB,CAAC;EACxB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;CACtB;;AAED,AAAA,wBAAwB,CAAC,oBAAoB,CAAC;EAC7C,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,IAAI;EACnB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,cAAc;EACtB,QAAQ,EAAE,QAAQ;CAClB;;AAED,AAAA,mBAAmB,CAAC;EACnB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,GAAG,EAAE,IAAI;EACT,gBAAgB,EAAE,kBAAkB;EACpC,KAAK,EAAE,eAAe;EACtB,uBAAuB;EACvB,YAAY,EAAE,kBAAkB;CAChC;;AAED,AAAA,gBAAgB,CAAC;EAChB,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;EACZ,uBAAuB;CACvB;;AAED,AAAA,CAAC,AAAA,cAAc,CAAC;EACf,SAAS,EAAE,KAAK;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,CAAC;EACd,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,GAAG;EAClB,QAAQ,EAAE,QAAQ;EAClB,aAAa,EAAE,IAAI;CAYnB;;AArBD,AAUC,CAVA,AAAA,cAAc,CAUd,MAAM,CAAC;EACN,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,iBAAiB;EACzB,aAAa,EAAE,IAAI;EACnB,WAAW,EAAE,GAAG;EAChB,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;CACf",3 "mappings": "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", 4 4 "sources": [ 5 5 "tcb-style.scss" -
timeless-component-builder/trunk/dist/tcb-style.scss
r2221968 r2225180 1 .single-field-wrapper {2 margin-bottom: 20px;3 }4 .single-field-wrapper input,5 .single-field-wrapper textarea {6 display: block;7 width: 550px;8 margin-top: 8px;9 }10 11 1 .single-field-wrapper label { 12 2 margin-bottom: 10px; … … 19 9 display: flex; 20 10 flex-direction: column; 21 }22 23 .multiple-fileds-wrapper .single-item-wrapper {24 padding: 15px;25 margin-bottom: 15px;26 border-radius: 5px;27 border: 2px solid #ccc;28 position: relative;29 11 } 30 12 … … 68 50 } 69 51 } 52 53 /* * */ 54 .tcb_fields_wrapper { 55 display: flex; 56 flex-wrap: wrap; 57 // margin: -10px; 58 } 59 60 .single-field-wrapper { 61 width: 100%; 62 // margin-bottom: 20px; 63 // padding: 10px; 64 > div { 65 padding: 10px; 66 } 67 input, 68 textarea { 69 display: block; 70 width: 100%; 71 margin-top: 8px; 72 font-size: 13px; 73 } 74 textarea { 75 min-height: 150px; 76 } 77 label { 78 font-size: 13px; 79 } 80 &.col-1 { 81 -ms-flex: 0 0 8.333333%; 82 flex: 0 0 8.333333%; 83 max-width: 8.333333%; 84 } 85 &.col-2 { 86 -ms-flex: 0 0 16.666667%; 87 flex: 0 0 16.666667%; 88 max-width: 16.666667%; 89 } 90 &.col-3 { 91 -ms-flex: 0 0 25%; 92 flex: 0 0 25%; 93 max-width: 25%; 94 } 95 &.col-4 { 96 -ms-flex: 0 0 33.333333%; 97 flex: 0 0 33.333333%; 98 max-width: 33.333333%; 99 } 100 &.col-5 { 101 -ms-flex: 0 0 41.666667%; 102 flex: 0 0 41.666667%; 103 max-width: 41.666667%; 104 } 105 &.col-6 { 106 -ms-flex: 0 0 50%; 107 flex: 0 0 50%; 108 max-width: 50%; 109 } 110 &.col-7 { 111 -ms-flex: 0 0 58.333333%; 112 flex: 0 0 58.333333%; 113 max-width: 58.333333%; 114 } 115 &.col-8 { 116 -ms-flex: 0 0 66.666667%; 117 flex: 0 0 66.666667%; 118 max-width: 66.666667%; 119 } 120 &.col-9 { 121 -ms-flex: 0 0 75%; 122 flex: 0 0 75%; 123 max-width: 75%; 124 } 125 &.col-10 { 126 -ms-flex: 0 0 83.333333%; 127 flex: 0 0 83.333333%; 128 max-width: 83.333333%; 129 } 130 &.col-11 { 131 -ms-flex: 0 0 91.666667%; 132 flex: 0 0 91.666667%; 133 max-width: 91.666667%; 134 } 135 &.col-12 { 136 -ms-flex: 0 0 100%; 137 flex: 0 0 100%; 138 max-width: 100%; 139 } 140 } 141 142 .single-item-wrapper { 143 border-radius: 2px; 144 padding: 15px 0 0 0; 145 background-color: #fcfcfc; 146 margin-bottom: 15px; 147 border-radius: 2px; 148 position: relative; 149 border: 1px solid #dfdfdf; 150 width: 100%; 151 152 &:hover { 153 background-color: #f6f6f6; 154 } 155 } 156 157 .repeater-fileds { 158 width: calc(100% - 30px); 159 } 160 161 .multiple-items-title { 162 margin-bottom: 8px; 163 font-weight: 700; 164 } -
timeless-component-builder/trunk/inc/add_metabox.php
r2221968 r2225180 5 5 */ 6 6 function tcb_add_metaboxes() { 7 $tcb_fi leds = apply_filters( 'tcb__fileds', array());8 tcb_add_categories($tcb_fi leds);7 $tcb_fields = tcb_get_registered_component(); 8 tcb_add_categories($tcb_fields); 9 9 10 add_meta_box( 11 'tcb_metaboxes', 12 __( 'Component Info', 'tcb' ), 13 'tcb_generate_fields', 14 'tcb_component' 15 ); 10 add_meta_box( 11 'tcb_metaboxes', 12 __( 'Component Info', 'tcb' ), 13 'tcb_generate_fields', 14 'tcb_component' 15 ); 16 17 add_meta_box( 18 'tcb_metaboxes_shortcode_info', 19 __( 'Component Shortcode', 'tcb' ), 20 'tcb_generate_shortcode', 21 'tcb_component' 22 ); 16 23 17 18 add_meta_box(19 'tcb_metaboxes_shortcode_info',20 __( 'Component Shortcode', 'tcb' ),21 'tcb_generate_shortcode',22 'tcb_component'23 );24 // endif;25 24 } 26 25 -
timeless-component-builder/trunk/inc/class-fields.php
r2221968 r2225180 18 18 public $type; 19 19 public $repeating_fields; 20 public $columns; 20 21 21 22 // assign the data to the variable 22 23 function __construct($data,$meta_data){ 23 $this->name = esc_html(isset($data['field']) ? $data['field'] : '');24 $this->placeholder = esc_html(isset($data['placeholder']) ? $data['placeholder'] : '');25 $this->label = esc_html(isset($data['label']) ? $data['label'] : '');26 $this->type = esc_html(isset($data['type']) ? $data['type'] : '');27 24 $this->name = esc_html(isset($data['field']) ? $data['field'] : ''); 25 $this->placeholder = esc_html(isset($data['placeholder']) ? $data['placeholder'] : ''); 26 $this->label = esc_html(isset($data['label']) ? $data['label'] : ''); 27 $this->type = esc_html(isset($data['type']) ? $data['type'] : ''); 28 $this->columns = esc_html( isset($data['columns']) && !empty($data['columns']) ? $data['columns'] : '' ); 28 29 29 30 $this->repeating_fields = isset($data['fields']) ? $data['fields'] : []; … … 34 35 35 36 36 public function get_value ($saved_meta_data){ 37 public function get_value ($saved_meta_data){ 38 // var_dump($saved_meta_data) ; 37 39 38 40 ## if have any old metadata saved 39 41 if($saved_meta_data){ 40 $saved_meta_data = unserialize($saved_meta_data);42 $saved_meta_data = $saved_meta_data ; 41 43 $value = is_array($saved_meta_data) && count($saved_meta_data) > 0 && array_key_exists($this->name,$saved_meta_data )? $saved_meta_data[$this->name]: ''; 42 44 $this->value = $value; … … 48 50 $type = $a_type ? $a_type : $this->type; 49 51 50 if( $this->type == 'textarea' ){ 52 if( $this->type == 'textarea' ){ 51 53 return $this->textarea(); 52 54 } … … 115 117 $html = ' 116 118 <div class="repeater-fileds"> 117 < input type="hidden" name="'.$this->name.'_count" value="'.$items_currently_have.'" />119 <h3 class="multiple-items-title">'.$this->label.'</h3> 118 120 <div class="multiple-fileds-wrapper" data-repeater-list="'.$this->name.'"> 119 121 '.$child_fields.' … … 132 134 public function file_field($field_data = []){ 133 135 134 $name = esc_html( isset( $field_data['field'] ) ? $field_data['field'] : $this->name ); 135 $value = esc_html( isset( $field_data['value'] ) ? $field_data['value'] : $this->value ); 136 $label = esc_html( isset( $field_data['label'] ) ? $field_data['label'] : $this->label ); 136 $name = esc_html( isset( $field_data['field'] ) ? $field_data['field'] : $this->name ); 137 $value = esc_html( isset( $field_data['value'] ) ? $field_data['value'] : $this->value ); 138 $label = esc_html( isset( $field_data['label'] ) ? $field_data['label'] : $this->label ); 139 $columns = esc_html( isset( $field_data['columns'] ) ? $field_data['columns'] : $this->columns ); 137 140 138 141 139 142 $html = ' 140 <div class="single-field-wrapper ">143 <div class="single-field-wrapper col-'.$this->columns .'" ><div> 141 144 <label for="'.$name.'" >'.$label.'</label> 142 145 <input type="hidden" name="'.$name.'" value="'.$value.'" id="'.$name.'" /> … … 153 156 $html .= ' 154 157 <button type="button" class="button media-uplooad-btn">Upload Media</button> 155 </div> 158 </div></div> 156 159 '; 157 160 … … 167 170 $placeholder = esc_html(isset( $field_data['placeholder'] ) ? $field_data['placeholder'] : $this->placeholder); 168 171 $label = esc_html(isset( $field_data['label'] ) ? $field_data['label'] : $this->label); 172 $columns = esc_html( isset( $field_data['columns'] ) ? $field_data['columns'] : $this->columns ); 169 173 170 174 return' 171 <div class="single-field-wrapper ">175 <div class="single-field-wrapper col-'.$this->columns .'" ><div> 172 176 <label for="'.$name.'" >'.$label.'</label> 173 177 <input type="text" name="'.$name.'" id="'.$name.'" placeholder="'.$placeholder.'" value="'.$value.'" /> 174 </div> 178 </div></div> 175 179 '; 176 180 } … … 182 186 $placeholder = esc_html(isset( $field_data['placeholder'] ) ? $field_data['placeholder'] : $this->placeholder); 183 187 $label = esc_html(isset( $field_data['label'] ) ? $field_data['label'] : $this->label); 188 $columns = esc_html(isset( $field_data['columns'] ) ? $field_data['columns'] : $this->columns ); 184 189 185 190 return ' 186 <div class="single-field-wrapper ">191 <div class="single-field-wrapper col-'.$this->columns .'" ><div> 187 192 <label for="'.$name.'" >'.$label.'</label> 188 193 <textarea type="text" id="'.$name.'" name="'.$name.'" placeholder="'.$placeholder.'" >'.$value.'</textarea> 189 </div> 190 '; 194 </div></div> 195 '; 191 196 } 192 197 -
timeless-component-builder/trunk/inc/generate-metabox.php
r2221968 r2225180 1 1 <?php 2 require 'class-fields.php';3 2 /** 4 3 * This function will call the TCB_fields class and generate the HTML output … … 9 8 function tcb_generate_fields( $post ) { 10 9 ## get all the user defined fields 11 $tcb_fileds = apply_filters( 'tcb__fileds', array()); 12 13 // var_dump($tcb_fileds); 10 $tcb_fields = tcb_get_registered_component(); 14 11 15 12 # get current post id … … 26 23 27 24 # Check if available categories have any field defined 28 if(array_key_exists($component_cat, $tcb_fi leds)){25 if(array_key_exists($component_cat, $tcb_fields)){ 29 26 30 27 $saved_meta_data = get_post_meta( $post_id ,'tcb_component_data', true ); 31 28 32 29 # Get assigned component fields from the array 33 $c_tcb_fi leds = $tcb_fileds[$component_cat];30 $c_tcb_fields = $tcb_fields[$component_cat]; 34 31 35 32 ## Add nonce field … … 37 34 38 35 ## generate meta box based on assigned field and 39 foreach($c_tcb_fileds as $field): 36 echo '<div class="tcb_fields_wrapper">'; 37 foreach($c_tcb_fields as $field): 40 38 $fields_class = new TCB_fields($field, $saved_meta_data); 41 39 echo $fields_class->render_field(); 42 40 endforeach; 41 echo "</div>"; 43 42 } 44 43 -
timeless-component-builder/trunk/inc/register_shortcode.php
r2221968 r2225180 4 4 * so that user can use it 5 5 */ 6 7 6 function tcb_shortcode($atts=[]) { 8 7 $html = ''; … … 10 9 $id = ''; 11 10 $cat_name = ''; 12 13 11 if( is_array($atts) ){ 14 12 if(array_key_exists('cat', $atts) && !empty($atts['cat'])){ … … 21 19 22 20 $file = file_exists($file_path); 23 if( $file){ 24 ob_start(); 21 if( $file && $cat_name ) { 22 ob_start(); 23 24 // set the global query variable 25 25 set_query_var( 'tcb_id',$atts['id'] ) ; 26 set_query_var( 'tcb_cat', $cat_name ) ; 27 28 // return the template 26 29 get_template_part( 'tcb/component-'. $cat_name ); 30 31 // reset buffer 27 32 return ob_get_clean(); 28 33 }else{ 29 $str = __('Please Create a file at ', "tcb") .": ". $file_path ;30 $str .= __(" To render the component", "tcb");34 $str = __('Please Create a file at ', "tcb") .": ". $file_path ; 35 $str .= __(" To render the component", "tcb"); 31 36 return $str; 32 37 } 33 34 38 } 35 39 add_shortcode( 'tcb_component' , 'tcb_shortcode' ); -
timeless-component-builder/trunk/inc/save_metabox.php
r2221968 r2225180 21 21 return $post_id; 22 22 23 24 25 26 23 ## Get current Component Type 27 24 $c_cats = get_the_terms($post_id, 'component_type'); 28 25 29 26 ## get all the user defined fields 30 $tcb_fileds = apply_filters( 'tcb__fileds', array()); 27 28 $tcb_fields = tcb_get_registered_component(); 31 29 32 30 ## define a empty array where we push the data … … 40 38 41 39 # Check if available categories have any field defined 42 if(array_key_exists($component_cat, $tcb_fi leds)){40 if(array_key_exists($component_cat, $tcb_fields)){ 43 41 // echo "YYY"; 44 42 45 43 # Get associative component fields from the array 46 $c_tcb_fi leds = $tcb_fileds[$component_cat];44 $c_tcb_fields = $tcb_fields[$component_cat]; 47 45 48 46 49 47 50 48 51 foreach($c_tcb_fi leds as $field):49 foreach($c_tcb_fields as $field): 52 50 $name = $field['field']; 53 51 … … 61 59 foreach($field['fields'] as $child_field ){ 62 60 $c_name = $child_field['field'] ; 63 $array_to_save[$name][$i][$c_name] = sanitize_text_field($_POST[$name][$i][$c_name]); 61 // if text area use different sanitization 62 if( $child_field['type'] == 'textarea' ) { 63 $array_to_save[$name][$i][$c_name] = wp_kses_post($_POST[$name][$i][$c_name]); 64 }else{ 65 $array_to_save[$name][$i][$c_name] = sanitize_text_field($_POST[$name][$i][$c_name]); 66 } 64 67 } 65 68 } … … 71 74 ## check if the value present in the post array push the data 72 75 if( array_key_exists( $name, $_POST )) : 73 $array_to_save[$name] = sanitize_text_field($_POST[$name]); 76 77 // if text area use different sanitization 78 if( $field['type'] == 'textarea' ) { 79 $array_to_save[$name] = wp_kses_post($_POST[$name]); 80 }else{ 81 $array_to_save[$name] = sanitize_text_field($_POST[$name]); 82 } 74 83 endif; 75 84 } … … 80 89 81 90 ## save the data to post meta 82 update_post_meta( $post_id, 'tcb_component_data', serialize($array_to_save));91 update_post_meta( $post_id, 'tcb_component_data', $array_to_save ); 83 92 84 93 } -
timeless-component-builder/trunk/inc/user_function.php
r2221968 r2225180 9 9 10 10 if( $id ){ 11 return unserialize( get_post_meta( $id, 'tcb_component_data',true));11 return get_post_meta( $id, 'tcb_component_data',true); 12 12 } 13 14 13 // by default return false 15 14 return false; 15 } 16 16 17 /** 18 * Render Edit Link 19 * 20 */ 21 function tcb_link(){ 22 $id = get_query_var( 'tcb_id', false ); 23 if($id){ 24 return "<a href='".get_edit_post_link($id)."' class='tcb_link tcb_component_edit_link'>Edit</a>"; 25 } 26 return ''; 17 27 } 28 29 /** 30 * Component Class 31 * This function will return necessary component class with user input 32 * 33 */ 34 35 function tcb_class($extra_class=false){ 36 $id = get_query_var( 'tcb_id', false ); 37 $cat_name = get_query_var( 'tcb_cat', false ) ; 38 39 $data = get_post_meta( $id, 'tcb_component_data',true); 40 41 $class_name ="tcb_component {$cat_name} "; 42 43 // if user provide any class name in the component css_class field 44 if( $data != false ){ 45 $class_name .= isset($data['css_class']) && !empty($data['css_class']) ? sanitize_html_class($data['css_class']) : ''; 46 } 47 return $extra_class ? $class_name ." ". sanitize_html_class($extra_class) : $class_name ; 48 } 49 50 /** 51 * This function will return registered component array 52 */ 53 function tcb_get_registered_component(){ 54 $fields = apply_filters( 'tcb__fields', array()); 55 56 // add custom css class filed in all the components 57 foreach( $fields as $k => $s_c_fileds ){ 58 $fields[$k][] = [ 59 'type' => 'text', 60 'field' => 'css_class', 61 'columns' => 12, 62 'label' => 'Add css class if Necessary' 63 ]; 64 } 65 return is_array($fields) && count($fields) > 0 ? $fields : [] ; 66 } -
timeless-component-builder/trunk/readme.txt
r2221969 r2225180 2 2 Contributors: coder618 3 3 Donate link: https://coder618.github.io 4 Tags: Component System, Component Builder, Timeless component builder 4 Tags: Component System, Component Builder, Timeless component builder, tcb 5 5 Requires at least: 4.6 6 6 Tested up to: 5.3.2 7 Stable tag: 1. 07 Stable tag: 1.1.0 8 8 Requires PHP: 7.0 9 9 License: GPLv2 … … 11 11 12 12 == Description == 13 This plugin will help developer to build solid component.13 This plugin will help developer to build component in minimum amount of time. 14 14 This plugin based on some wordpress core function like : add_filter , meta box , Custom post type. 15 15 thats why you can consider this plugin is a timeless plugin, because i dont think WordPress going to replace … … 74 74 return $arr; 75 75 } 76 add_filter( 'tcb__fi leds', 'banner_fields' );76 add_filter( 'tcb__fields', 'banner_fields' ); 77 77 78 78 Step 2: -
timeless-component-builder/trunk/tcb.php
r2221968 r2225180 2 2 /** 3 3 * Plugin Name: Timeless Component Builder 4 * Description: Build Component in minimum amount of time.4 * Description: Build reusable Component in minimum amount of time. 5 5 * Author: coder618 6 6 * Author URI: https://coder618.github.io 7 * Version: 1. 0.07 * Version: 1.1.0 8 8 * Text Domain : tcb 9 9 */ … … 24 24 'singular_name' => __( 'Component', 'tcb' ) 25 25 ), 26 'public' => true,26 'public' => false, 27 27 'has_archive' => false, 28 28 'publicly_queryable' =>false, … … 62 62 private function load_dependencies() { 63 63 64 require plugin_dir_path( __FILE__ ) . 'inc/user_function.php'; 65 require plugin_dir_path( __FILE__ ) . 'inc/class-fields.php'; 64 66 require plugin_dir_path( __FILE__ ) . 'inc/add_categories.php'; 65 67 require plugin_dir_path( __FILE__ ) . 'inc/add_metabox.php'; … … 67 69 require plugin_dir_path( __FILE__ ) . 'inc/save_metabox.php'; 68 70 require plugin_dir_path( __FILE__ ) . 'inc/register_shortcode.php'; 69 require plugin_dir_path( __FILE__ ) . 'inc/user_function.php';70 71 71 72 }
Note: See TracChangeset
for help on using the changeset viewer.