Beispiel #1
0
function import_diy($importfile, $primaltplname, $targettplname)
{
    global $_G;
    $css = $html = '';
    $arr = array();
    $content = file_get_contents(realpath($importfile));
    if (empty($content)) {
        return $arr;
    }
    require_once DISCUZ_ROOT . './source/class/class_xml.php';
    $diycontent = xml2array($content);
    if ($diycontent) {
        foreach ($diycontent['layoutdata'] as $key => $value) {
            if (!empty($value)) {
                getframeblock($value);
            }
        }
        $newframe = array();
        foreach ($_G['curtplframe'] as $value) {
            $newframe[] = $value['type'] . random(6);
        }
        $mapping = array();
        if (!empty($diycontent['blockdata'])) {
            $mapping = block_import($diycontent['blockdata']);
            unset($diycontent['bockdata']);
        }
        $oldbids = $newbids = array();
        if (!empty($mapping)) {
            foreach ($mapping as $obid => $nbid) {
                $oldbids[] = 'portal_block_' . $obid;
                $newbids[] = 'portal_block_' . $nbid;
            }
        }
        require_once DISCUZ_ROOT . './source/class/class_xml.php';
        $xml = array2xml($diycontent['layoutdata'], true);
        $xml = str_replace($oldbids, $newbids, $xml);
        $xml = str_replace((array) array_keys($_G['curtplframe']), $newframe, $xml);
        $diycontent['layoutdata'] = xml2array($xml);
        $css = str_replace($oldbids, $newbids, $diycontent['spacecss']);
        $css = str_replace((array) array_keys($_G['curtplframe']), $newframe, $css);
        $arr['spacecss'] = $css;
        $arr['layoutdata'] = $diycontent['layoutdata'];
        $arr['style'] = $diycontent['style'];
        save_diy_data($primaltplname, $targettplname, $arr, true);
    }
    return $arr;
}
Beispiel #2
0
function import_diy($file)
{
    global $_G;
    $css = '';
    $html = array();
    $arr = array();
    $content = file_get_contents($file);
    require_once libfile('class/xml');
    if (empty($content)) {
        return $arr;
    }
    $content = preg_replace("/\\<\\!\\-\\-\\[name\\](.+?)\\[\\/name\\]\\-\\-\\>\\s+/i", '', $content);
    $diycontent = xml2array($content);
    if ($diycontent) {
        foreach ($diycontent['layoutdata'] as $key => $value) {
            if (!empty($value)) {
                getframeblock($value);
            }
        }
        $newframe = array();
        foreach ($_G['curtplframe'] as $value) {
            $newframe[] = $value['type'] . random(6);
        }
        $mapping = array();
        if (!empty($diycontent['blockdata'])) {
            $mapping = block_import($diycontent['blockdata']);
            unset($diycontent['blockdata']);
        }
        $oldbids = $newbids = array();
        if (!empty($mapping)) {
            foreach ($mapping as $obid => $nbid) {
                $oldbids[] = '#portal_block_' . $obid . ' ';
                $newbids[] = '#portal_block_' . $nbid . ' ';
                $oldbids[] = '[portal_block_' . $obid . ']';
                $newbids[] = '[portal_block_' . $nbid . ']';
                $oldbids[] = '~portal_block_' . $obid . '"';
                $newbids[] = '~portal_block_' . $nbid . '"';
            }
        }
        require_once libfile('class/xml');
        $xml = array2xml($diycontent['layoutdata'], true);
        $xml = str_replace($oldbids, $newbids, $xml);
        $xml = str_replace((array) array_keys($_G['curtplframe']), $newframe, $xml);
        $diycontent['layoutdata'] = xml2array($xml);
        $css = str_replace($oldbids, $newbids, $diycontent['spacecss']);
        $css = str_replace((array) array_keys($_G['curtplframe']), $newframe, $css);
        foreach ($diycontent['layoutdata'] as $key => $value) {
            $html[$key] = getframehtml($value);
        }
    }
    if (!empty($html)) {
        $xml = array2xml($html, true);
        require_once libfile('function/block');
        block_get_batch(implode(',', $mapping));
        foreach ($mapping as $bid) {
            $blocktag[] = '<!--{block/' . $bid . '}-->';
            $blockcontent[] = block_fetch_content($bid);
        }
        $xml = str_replace($blocktag, $blockcontent, $xml);
        $html = xml2array($xml);
        $arr = array('html' => $html, 'css' => $css, 'mapping' => $mapping);
    }
    return $arr;
}