Пример #1
0
                    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>
Пример #2
0
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));
}