ID : ''); if( ampforwp_is_front_page() ){ $postId = ampforwp_get_frontpage_id(); } if ( ampforwp_polylang_front_page() ) { $front_page_id = get_option('page_on_front'); if($front_page_id){ $postId = pll_get_post($front_page_id); } } if( empty( $postId ) ) return; $ampforwp_pagebuilder_enable = get_post_meta($postId,'ampforwp_page_builder_enable', true); if (ampforwp_empty_content(get_post($postId)->post_content) && $ampforwp_pagebuilder_enable=='yes') { $arr['ID'] = get_post($postId)->ID; $arr['post_content'] = ' '; wp_update_post($arr); } add_filter( 'amp_pagebuilder_content', 'ampforwp_insert_pb_content' ); } function bodyClassForAMPPagebuilder($classes, $class){ $classes[] = 'amppb-pages'; return $classes; } function ampforwp_insert_pb_content( $content ){ $new_content = ""; $new_content = amppb_post_content($content); $content = $new_content; return $content; } add_action('amp_post_template_head','ampforwp_pagebuilder_header_html_output',11); function ampforwp_pagebuilder_header_html_output(){ //To load css of modules which are in use global $redux_builder_amp, $moduleTemplate, $post, $containerCommonSettings; $postId = (is_object($post)? $post->ID: ''); if( ampforwp_is_front_page() ){ $postId = ampforwp_get_frontpage_id(); } $previousData = get_post_meta($postId,'amp-page-builder'); $previousData = isset($previousData[0])? $previousData[0]: null; $ampforwp_pagebuilder_enable = get_post_meta($postId,'ampforwp_page_builder_enable', true); if($previousData!="" && $ampforwp_pagebuilder_enable=='yes'){ $previousData = (str_replace("'", "", $previousData)); $previousData = json_decode($previousData,true); if(isset($previousData['settingdata']['scripts_data']) && $previousData['settingdata']['scripts_data']!=""){ echo $previousData['settingdata']['scripts_data']; } } } add_action('amp_post_template_data','amp_pagebuilder_script_loader',100); function amp_pagebuilder_script_loader($scriptData){ //To load css of modules which are in use global $redux_builder_amp, $moduleTemplate, $post, $containerCommonSettings; $postId = (is_object($post)? $post->ID: ''); if( ampforwp_is_front_page() ){ $postId = ampforwp_get_frontpage_id(); } $previousData = get_post_meta($postId,'amp-page-builder'); $previousData = isset($previousData[0])? $previousData[0]: null; $ampforwp_pagebuilder_enable = get_post_meta($postId,'ampforwp_page_builder_enable', true); if($previousData!="" && $ampforwp_pagebuilder_enable=='yes'){ $previousData = (str_replace("'", "", $previousData)); $previousData = json_decode($previousData,true); if(count($previousData['rows'])>0){ foreach ($previousData['rows'] as $key => $rowsData) { $container = $rowsData['cell_data']; if(count($container)>0){ //Module specific styles $moduleCommonCss = array(); foreach($container as $contentArray){ if(!isset($moduleTemplate[$contentArray['type']])){ continue; } foreach($moduleTemplate[$contentArray['type']]['fields'] as $modulefield){ $replaceModule = ""; if(isset($contentArray[$modulefield['name']])){ $replaceModule = $contentArray[$modulefield['name']]; } if($modulefield['content_type']=='js'){ if(isset($modulefield['required']) && count($modulefield['required'])>0){ foreach($modulefield['required'] as $requiredKey=>$requiredValue){ $userSelectedvalue = (isset($contentArray[$requiredKey])? $contentArray[$requiredKey]: ""); if($userSelectedvalue != $requiredValue){ $replaceModule =''; } } }//Require IF Closed if ($replaceModule !="" && empty( $scriptData['amp_component_scripts'][$modulefield['label']] ) ) { $scriptData['amp_component_scripts'][$modulefield['label']] = $replaceModule; } }//content_type Check if Closed } } } } } } return $scriptData; } add_action('amp_post_template_css','amp_pagebuilder_content_styles',100); function amp_pagebuilder_content_styles(){ //To load css of modules which are in use global $redux_builder_amp, $moduleTemplate, $post, $containerCommonSettings; $postId = (is_object($post)? $post->ID: ''); if( ampforwp_is_front_page() ) { $postId = ampforwp_get_frontpage_id(); } if ( ampforwp_polylang_front_page() ) { $front_page_id = get_option('page_on_front'); if($front_page_id){ $postId = pll_get_post($front_page_id); } } $previousData = get_post_meta($postId,'amp-page-builder'); $previousData = isset($previousData[0])? $previousData[0]: null; $ampforwp_pagebuilder_enable = get_post_meta($postId,'ampforwp_page_builder_enable', true); if($previousData!="" && $ampforwp_pagebuilder_enable=='yes'){ echo '.amp_pb{display: inline-block;width: 100%;} .row{display: inline-flex;width: 100%;} .col-2{width:50%;float:left;} .cb{clear:both;} .amp_blurb{text-align:center} .amp_blurb amp-img{margin: 0 auto;} .amp_btn{text-align:center} .amp_btn a{background: #f92c8b;color: #fff;padding: 9px 20px;border-radius: 3px;display: inline-block;box-shadow: 1px 1px 4px #ccc;} @media(max-width:1024px){ .amppb-fixed{width:100%;} } @media(max-width:425px){ .col-2{width:100%;float:none;margin-bottom:10%;} } '; add_filter('ampforwp_body_class', 'bodyClassForAMPPagebuilder',10,2); $previousData = (str_replace("'", "", $previousData)); $previousData = json_decode($previousData,true); if(count($previousData['rows'])>0){ foreach ($previousData['rows'] as $key => $rowsData) { $container = $rowsData['cell_data']; $rowContainer = $rowsData['data']; if(isset($containerCommonSettings['front_css'])){ $rowCss = $containerCommonSettings['front_css']; if( true == $redux_builder_amp['amp-rtl-select-option'] && isset($containerCommonSettings['front_rtl_css'])) { $rowCss .= $containerCommonSettings['front_rtl_css']; } $rowCss = str_replace('{{row-class}}', '.ap_r_'.$rowsData['id'], $rowCss); foreach($containerCommonSettings['fields'] as $rowfield){ $replaceRow = ''; //if($rowfield['content_type']=='css'){ if(isset($rowContainer[$rowfield['name']])){ $replaceRow = $rowContainer[$rowfield['name']]; }elseif(!isset($rowContainer[$rowfield['name']])){ $replaceRow = $rowfield['default']; } if(isset($rowfield['required']) && count($rowfield['required'])>0){ foreach($rowfield['required'] as $requiredKey=>$requiredValue){ $valueCheckWith = ''; if(isset($rowContainer[$requiredKey])){ $valueCheckWith = $rowContainer[$requiredKey]; } if( is_array($valueCheckWith) ) { $valueCheckWith = $rowContainer[$requiredKey][0]; } if( $valueCheckWith !== $requiredValue){ $replaceRow =''; } } } switch ($rowfield['type']) { case 'spacing': $replaceSpacing =''; if( isset($replaceRow['top'])&& isset($replaceRow['right'])&& isset($replaceRow['bottom'])&& isset($replaceRow['left']) ){ $replaceSpacing = $replaceRow['top']." ".$replaceRow['right']." ".$replaceRow['bottom']." ".$replaceRow['left']." "; } $rowCss = str_replace('{{'.$rowfield['name'].'}}', $replaceSpacing, $rowCss); break; case 'upload': //$imageDetails = ampforwp_get_attachment_id( $replaceRow); $image_alt = $imageUrl = $imageWidth = $imageHeight = ''; if(isset($rowContainer[$rowfield['name']."_image_data"])){ $replace= $rowContainer[$rowfield['name']."_image_data"]; $imageUrl = $replace[0]; $imageWidth = $replace[1]; $imageHeight = $replace[2]; $image_alt = (isset($replace['alt'])? $replace['alt']: "");; }elseif($replaceRow != ""){ $imageDetails = ampforwp_get_attachment_id( $replaceRow); if(is_array($imageDetails)){ $imageUrl = (isset($imageDetails[0])? $imageDetails[0]: ""); $imageWidth = (isset($imageDetails[1])? $imageDetails[1]: ""); $imageHeight = (isset($imageDetails[3])? $imageDetails[2]: ""); $image_alt = (isset($imageDetails['alt'])? $imageDetails['alt']: ""); } } $rowCss = str_replace( '{{'.$rowfield['name'].'}}', $imageUrl, $rowCss ); $rowCss = str_replace( array('{{image_width}}','{{image_width_'.$rowfield['name'].'}}'), array($imageWidth,$imageWidth), $rowCss ); $rowCss = str_replace( array('{{image_height}}','{{image_height_'.$rowfield['name'].'}}'), array($imageHeight,$imageHeight), $rowCss ); $rowCss = str_replace( array('{{image_alt}}','{{image_alt_'.$rowfield['name'].'}}'), array($image_alt,$image_alt), $rowCss ); $rowCss = str_replace('{{'.$rowfield['name'].'}}', $replaceRow, $rowCss); break; default: if(is_array($replaceRow)){ if(count($replaceRow)>0){ if(count($replaceRow)==1){ $rowCss = str_replace('{{'.$rowfield['name'].'}}', $replaceRow[0], $rowCss); } }else{ $rowCss = str_replace('{{'.$rowfield['name'].'}}', '', $rowCss); } /*foreach ($rowContainer[$rowfield['name']] as $key => $cssValue) { # code... }()*/ }else{ $rowCss = str_replace('{{'.$rowfield['name'].'}}', $replaceRow, $rowCss); } break; } //} $rowCss = ampforwp_replaceIfContentConditional($rowfield['name'], $replaceRow, $rowCss); } echo amppb_validateCss($rowCss); }//Row Settings Css foreach closed if(count($container)>0){ //Module specific styles $moduleCommonCss = array(); foreach($container as $contentArray){ if(isset($moduleTemplate[$contentArray['type']]['front_css'])){ $completeCss = $moduleTemplate[$contentArray['type']]['front_css']; if( true == $redux_builder_amp['amp-rtl-select-option'] && isset($moduleTemplate[$contentArray['type']]['front_rtl_css'])) { $completeCss .= $moduleTemplate[$contentArray['type']]['front_rtl_css']; } $completeCss = str_replace("{{module-class}}", '.ap_m_'.$contentArray['cell_id'], $completeCss ); } if(isset($moduleTemplate[$contentArray['type']]['front_common_css'])){ $moduleCommonCss[$moduleTemplate[$contentArray['type']]['name']] = $moduleTemplate[$contentArray['type']]['front_common_css']; } if(!isset($moduleTemplate[$contentArray['type']])){ continue; } foreach($moduleTemplate[$contentArray['type']]['fields'] as $modulefield){ $replaceModule = ""; if(isset($contentArray[$modulefield['name']])){ $replaceModule = $contentArray[$modulefield['name']]; }else{ $replaceModule = getdefaultValue($modulefield['name'],$moduleTemplate[$contentArray['type']]['fields']); } //LOAD Icon Css if($modulefield['type']=='icon-selector'){ add_amp_icon(array($replaceModule)); } if($modulefield['content_type']=='css'){ if(isset($modulefield['required']) && count($modulefield['required'])>0){ $requiredCheck[] = true; foreach($modulefield['required'] as $requiredKey=>$requiredValue){ //if value not set than get default value if(!isset($contentArray[$requiredKey])){ $userSelectedvalue = getdefaultValue($requiredKey,$moduleTemplate[$contentArray['type']]['fields']); }else{ $userSelectedvalue = $contentArray[$requiredKey]; } if(is_array($requiredValue) && !in_array($userSelectedvalue, $requiredValue) ){ $requiredCheck[] = false; }elseif($userSelectedvalue != $requiredValue){ $requiredCheck[] = false; } } $requiredCheck = array_unique($requiredCheck); if(count($requiredCheck)>1 && $requiredCheck[0] != true){ $replaceModule =''; } } switch ($modulefield['type']) { case 'spacing': $replacespacing =""; if(isset($replaceModule['top']) && isset($replaceModule['right']) && isset($replaceModule['bottom']) && isset($replaceModule['left']) ){ $replacespacing = $replaceModule['top']." ".$replaceModule['right']." ".$replaceModule['bottom']." ".$replaceModule['left']." "; } $completeCss = str_replace('{{'.$modulefield['name'].'}}', $replacespacing, $completeCss); break; case 'upload': $image_alt = $imageUrl = $imageWidth = $imageHeight = ''; if(isset($contentArray[$modulefield['name']."_image_data"])){ $replace= $contentArray[$modulefield['name']."_image_data"]; $imageUrl = $replace[0]; $imageWidth = $replace[1]; $imageHeight = $replace[2]; $image_alt = (isset($replace['alt'])? $replace['alt']: "");; }elseif($replaceModule != ""){ $imageDetails = ampforwp_get_attachment_id( $replaceModule); if(is_array($imageDetails)){ $imageUrl = (isset($imageDetails[0])? $imageDetails[0]: ""); $imageWidth = (isset($imageDetails[1])? $imageDetails[1]: ""); $imageHeight = (isset($imageDetails[3])? $imageDetails[2]: ""); $image_alt = (isset($imageDetails['alt'])? $imageDetails['alt']: ""); } } $completeCss = str_replace( '{{'.$modulefield['name'].'}}', $imageUrl, $completeCss ); $completeCss = str_replace( array('{{image_width}}','{{image_width_'.$modulefield['name'].'}}'), array($imageWidth,$imageWidth), $completeCss ); $completeCss = str_replace( array('{{image_height}}','{{image_height_'.$modulefield['name'].'}}'), array($imageHeight,$imageHeight), $completeCss ); $completeCss = str_replace( array('{{image_alt}}','{{image_alt_'.$modulefield['name'].'}}'), array($image_alt,$image_alt), $completeCss ); break; default: if(is_array($replaceModule)){ /*foreach ($contentArray[$modulefield['name']] as $key => $cssValue) { # code... }()*/ }else{ $completeCss = str_replace('{{'.$modulefield['name'].'}}', $replaceModule, $completeCss); } break; } } $completeCss = ampforwp_replaceIfContentConditional($modulefield['name'], $replaceModule, $completeCss); } echo amppb_validateCss($completeCss); //For Repeater Fields $repeaterFieldsCss = ''; if(isset($moduleTemplate[$contentArray['type']]['repeater'])){ if(isset($contentArray['repeater']) && is_array($contentArray['repeater'])){ $repeaterUserContents = $contentArray['repeater']; foreach ($repeaterUserContents as $repeaterUserKey => $repeaterUserValues) { //reset($repeaterUserValues); $repeaterVarIndex = key($repeaterUserValues); $repeaterVarIndex = explode('_', $repeaterVarIndex); $repeaterVarIndex = end($repeaterVarIndex); $repeaterFrontCss = ''; foreach ($moduleTemplate[$contentArray['type']]['repeater']['fields'] as $moduleKey => $moduleField) { //LOAD Icon Css if($moduleField['type']=='icon-selector'){ add_amp_icon(array( $repeaterUserValues[$moduleField['name'].'_'.$repeaterVarIndex])); } //Check if there is no front css if(!isset($moduleTemplate[$contentArray['type']]['repeater']['front_css'])){ continue; } $repeaterFrontCss = $moduleTemplate[$contentArray['type']]['repeater']['front_css']; if($moduleField['content_type']=='css'){ $repeaterFrontCss = str_replace('{{repeater-module-class}}', $moduleField['name'].'_'.$repeaterVarIndex, $repeaterFrontCss); $replace = $repeaterUserValues[$moduleField['name'].'_'.$repeaterVarIndex]; if(is_array($replace)){ if(count($replace)>0){ $replace = $replace[0]; }else{ $replace =''; } } if($modulefield['type']=='spacing'){ $replacespacing =""; if(isset($replaceModule['top']) && isset($replaceModule['right']) && isset($replaceModule['bottom']) && isset($replaceModule['left']) ){ $replacespacing = $replaceModule['top']." ".$replaceModule['right']." ".$replaceModule['bottom']." ".$replaceModule['left']." "; } $repeaterFrontCss = str_replace('{{'.$modulefield['name'].'}}', $replacespacing, $repeaterFrontCss); }else{ $repeaterFrontCss = str_replace( '{{'.$moduleField['name'].'}}', $replace, $repeaterFrontCss ); } } } $repeaterFieldsCss .= $repeaterFrontCss; } }//If Check for Fall back }//If for Module is repeater or not echo $repeaterFieldsCss; }//foreach content closed //For Comon CSS if(count($moduleCommonCss)>0){ echo implode(" ", $moduleCommonCss); } }//ic container check closed //Create row css }//foreach closed complete data }//if closed count($previousData['rows'])>0 if(isset($previousData['settingdata']['style_data']) && $previousData['settingdata']['style_data']!=""){ echo amppb_validateCss($previousData['settingdata']['style_data']); } }//If Closed $previousData!="" && $ampforwp_pagebuilder_enable=='yes' } function amppb_validateCss($css){ $css = preg_replace('/(([a-z -]*:(\s)*;))/', "", $css); $css = preg_replace('/((;[\s\n;]*;))/', ";", $css); $css = preg_replace('/(?:[^\r\n,{}]+)(?:,(?=[^}]*{,)|\s*{[\s]*})/', "", $css); return $css; } function amppb_post_content($content){ global $post, $redux_builder_amp; global $moduleTemplate, $layoutTemplate, $containerCommonSettings; $postId = (is_object($post)? $post->ID: ''); if( ampforwp_is_front_page() ){ $postId = ampforwp_get_frontpage_id(); } if ( ampforwp_polylang_front_page() ) { $front_page_id = get_option('page_on_front'); if($front_page_id){ $postId = pll_get_post($front_page_id); } } $previousData = get_post_meta($postId,'amp-page-builder'); $previousData = isset($previousData[0])? $previousData[0]: null; $ampforwp_pagebuilder_enable = get_post_meta($postId,'ampforwp_page_builder_enable', true); if($previousData!="" && $ampforwp_pagebuilder_enable=='yes'){ $html =""; $previousData = (str_replace("'", "", $previousData)); $previousData = json_decode($previousData,true); //Call Sorting for rows if(count($previousData['rows'])>0){ $mainContentClass = ''; if(isset($previousData['settingdata']) && isset($previousData['settingdata']['front_class'])){ $mainContentClass = $previousData['settingdata']['front_class']; } $html = '
".$contentArray['value']."