if (!empty($used[3][0])) { $atts[$currentKey] = shortcode_parse_atts($used[3][$currentKey]); } else { $atts[$currentKey] = array(); } $IDs[$currentKey] = $element; $shortcodes[$currentKey] = $options['shortcode']; $cfg = get_option($element); } } } } } if (!empty($IDs)) { foreach ($IDs as $currentKey => $ID) { $instance[$currentKey] = msc_getDefaultAtts($ID, $atts[$currentKey]); msc_processHeaders($ID, $instance[$currentKey]); } if (isset($cfg['_defaultContent'])) { $content = $cfg['_defaultContent']; } else { $content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus et feugiat eros. Praesent ac justo orci, quis ornare mi. Quisque dictum eleifend diam, eu congue augue congue ultrices. Proin convallis auctor neque, semper luctus libero pulvinar vel."; } $outPutCode = msc_doShortcode($instance[0]['atts'], $content, $shortcodes[0]); global $wp_scripts; $headerscripts = $preheaderscripts . $headerscripts; } ?> <!DOCTYPE html> <html> <head>
function msc_doShortcode($atts, $content, $shortcode) { global $footerOutput, $javascript, $jsincludes; $elements = get_option('CE_ELEMENTS'); foreach ($elements as $id => $element) { if (!empty($element['shortcode'])) { if ($element['shortcode'] === $shortcode) { if (!empty($element['state'])) { $eid = $id; } //break; } } } if (!empty($eid)) { $id = $eid; } if (empty($id)) { return; } $Element = get_option($id); $attsOutput = msc_getDefaultAtts($id, $atts); $atts = $attsOutput['atts']; if (!empty($attsOutput['vararray'])) { $varArray = $attsOutput['vararray']; } // Simple [if var] replace // really hackish buyt hey :) $pattern = '\\[(\\[?)(if)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)'; preg_match_all('/' . $pattern . '/s', $Element['_mainCode'], $mifs); preg_match_all('/' . $pattern . '/s', $Element['_javascriptCode'], $jifs); if (!empty($mifs[5]) && !empty($Element['_variable'])) { foreach ($Element['_variable'] as $varID => $varKey) { //echo $varKey.$ifVal.'<br />'; $pattern = '\\[(\\[?)(if ' . $varKey . ')\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)'; preg_match_all('/' . $pattern . '/s', $Element['_mainCode'], $subs); if (!empty($subs[3])) { foreach ($subs[3] as $ifVal) { if (empty($ifVal)) { continue; } //dump($Element,0); //echo "if('{{".trim($varKey)."}}' != '".trim($ifVal, '=')."'"; if (!empty($Element['_isMultiple'][$varID])) { if (!empty($varArray[$varKey][0])) { $Element['_mainCode'] = str_replace('[if ' . $varKey . $ifVal . ']', "<?php if('{{" . trim($varArray[$varKey][0]) . "}}' != '" . trim($ifVal, '=') . "'){ ?>", $Element['_mainCode']); } else { $Element['_mainCode'] = str_replace('[if ' . $varKey . $ifVal . ']', "<?php if('{{" . trim($varKey) . "}}' != '" . trim($ifVal, '=') . "'){ ?>", $Element['_mainCode']); } } else { $Element['_mainCode'] = str_replace('[if ' . $varKey . $ifVal . ']', "<?php if('{{" . trim($varKey) . "}}' != '" . trim($ifVal, '=') . "'){ ?>", $Element['_mainCode']); } } } $Element['_mainCode'] = str_replace('[if ' . $varKey . ']', '<?php if(!empty($atts[trim($varKey)])){ ?>', $Element['_mainCode']); $Element['_mainCode'] = str_replace('[else]', "<?php }else{ ?>", $Element['_mainCode']); $Element['_mainCode'] = str_replace('[/if]', "<?php } ?>", $Element['_mainCode']); } } if (!empty($jifs[5]) && !empty($Element['_variable'])) { foreach ($Element['_variable'] as $varID => $varKey) { $pattern = '\\[(\\[?)(if ' . $varKey . ')\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)'; preg_match_all('/' . $pattern . '/s', $Element['_javascriptCode'], $subs); if (!empty($subs[3])) { foreach ($subs[3] as $ifVal) { $Element['_javascriptCode'] = str_replace('[if ' . $varKey . $ifVal . ']', '<?php if($atts[trim($varKey)] === \'' . trim($ifVal, '=') . '\'){ ?>', $Element['_javascriptCode']); } } $Element['_javascriptCode'] = str_replace('[if ' . $varKey . ']', '<?php if(!empty($atts[trim($varKey)])){ ?>', $Element['_javascriptCode']); $Element['_javascriptCode'] = str_replace('[else]', "<?php }else{ ?>", $Element['_javascriptCode']); $Element['_javascriptCode'] = str_replace('[/if]', "<?php } ?>", $Element['_javascriptCode']); } } //$instanceID = msc_checkInstanceID('CE'.strtoupper(md5(serialize($atts)).$id), 'footer'); $instanceID = msc_checkInstanceID('ce' . $Element['_shortcode'], 'footer'); $Element['_mainCode'] = str_replace('{{content}}', $content, $Element['_mainCode']); $Element['_mainCode'] = str_replace('{{_id_}}', $instanceID, $Element['_mainCode']); $Element['_javascriptCode'] = str_replace('{{content}}', $content, $Element['_javascriptCode']); $Element['_javascriptCode'] = str_replace('{{_id_}}', $instanceID, $Element['_javascriptCode']); $pattern = '\\[(\\[?)(loop)\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)'; preg_match_all('/' . $pattern . '/s', $Element['_mainCode'], $loops); if (!empty($loops)) { foreach ($loops[0] as $loopKey => $loopcode) { if (!empty($loops[3][$loopKey]) && !empty($loops[5][$loopKey])) { $LoopCodes[$loopKey] = $loops[5][$loopKey]; $Element['_mainCode'] = str_replace($loopcode, '{{__loop_' . $loopKey . '_}}', $Element['_mainCode']); //$Element['_javascriptCode'] = str_replace($loopcode, '{{__loop_' . $loopKey . '_}}', $Element['_javascriptCode']); } } } if (!empty($Element['_variable'])) { foreach ($Element['_variable'] as $VarKey => $Variable) { $VarVal = $Element['_variableDefault'][$VarKey]; if (isset($atts[$Variable])) { $VarVal = $atts[$Variable]; } $Element['_mainCode'] = str_replace('{{' . $Variable . '}}', $VarVal, $Element['_mainCode']); $Element['_javascriptCode'] = str_replace('{{' . $Variable . '}}', $VarVal, $Element['_javascriptCode']); } if (!empty($LoopCodes) && !empty($varArray)) { foreach ($LoopCodes as $loopKey => $loopCode) { $loopReplace = ''; if (!empty($varArray[trim($loops[3][$loopKey])])) { foreach ($varArray[trim($loops[3][$loopKey])] as $replaceKey => $replaceVar) { $loopReplace .= $loopCode; foreach ($varArray as $Variable => $VarableArray) { if (!empty($varArray[$Variable][$replaceKey])) { $loopReplace = str_replace('{{' . $Variable . '}}', $varArray[$Variable][$replaceKey], $loopReplace); } else { $loopReplace = str_replace('{{' . $Variable . '}}', '', $loopReplace); } $loopReplace = str_replace('[increment]', $replaceKey, $loopReplace); } } $Element['_mainCode'] = str_replace('{{__loop_' . $loopKey . '_}}', $loopReplace, $Element['_mainCode']); //$Element['_javascriptCode'] = str_replace('{{__loop_' . $loopKey . '_}}', $loopReplace, $Element['_javascriptCode']); } } } } ob_start(); eval(' ?>' . $Element['_mainCode'] . ' <?php '); $Output = ob_get_clean(); //return $Output; return do_shortcode(trim($Output)); }