/**
 *
 *
 * @file function.import_js.php
 * @package plugins
 * @author wangpeng20@baidu.com
 * @date 2012-12-17 10:47
 */
function smarty_function_import_js($params)
{
    //下面这行不能改,fis在build时会对路径做替换
    $PATH = array(VUI_APP_PATH . '/../../data/import-js-lib/');
    static $MATCHED = array(), $DEBUG = false, $IMPORTED = array();
    require_once "inc.import_js.php";
    $config = array('MATCHED' => &$MATCHED, 'IMPORTED' => &$IMPORTED, 'DEBUG' => &$DEBUG, 'PATH' => &$PATH);
    return '<script>' . importTangram(explode(',', $params['mod']), false, $config) . "</script>";
}
Beispiel #2
0
/**
 *
 *
 * @file function.import_js.php
 * @package plugins
 * @author wangpeng20@baidu.com
 * @date 2012-12-17 10:47
 */
function importTangram($files, $returnFile = true, &$config)
{
    //        global $MATCHED, $DEBUG, $IMPORTED;
    $MATCHED =& $config['MATCHED'];
    $DEBUG =& $config['DEBUG'];
    $IMPORTED =& $config['IMPORTED'];
    $output = "";
    if (is_string($files)) {
        $files = array($files);
    } else {
        if (!is_array($files)) {
            return $output;
        }
    }
    if ($DEBUG) {
        var_dump($files);
    }
    foreach ($files as $file) {
        if (strrpos($file, '*')) {
            $output .= importTangram(getPackage(str_replace(array(".", '*'), array('/', ''), $file)), true, $config);
        } elseif (in_array($file, $IMPORTED)) {
            continue;
        } else {
            $IMPORTED[] = $file;
            //            echo "file name:".$file."\n";
            $file = str_replace(".", '/', $file) . ".js";
            //          echo "file name:".$file."\n";
            //        echo "\n";
            if ($DEBUG) {
                echo "Importing: " . $file . ", returnFile {$returnFile}\n";
            }
            if (!in_array($file, $MATCHED)) {
                $content = file_get_contents(getRealFilePath($file, $config['PATH']));
                if (!$content) {
                    if ($DEBUG) {
                        echo "no content... \n;";
                    }
                    continue;
                }
                $MATCHED[] = $file;
                $matches = array();
                //去掉注释
                $content = trim(preg_replace("/\\/\\*(.*?)\\*\\//ies", "", $content));
                $output .= preg_replace("/\\/\\/\\/import\\s+([\\w\\-\$]+(\\.[\\w\\-\$]+)*);?/ies", "importTangram('\\1',true,\$config)", $content);
            }
        }
    }
    return $output;
}
Beispiel #3
0
function importTangram($files, $returnFile = true){
    global $MATCHED, $DEBUG, $IMPORTED;

    $output = "";

    if(is_string($files)){
        $files = array($files);
    }else if(!is_array($files)){
        return $output;
    }
    if($DEBUG)
        var_dump($files);
    foreach($files as $file){
        if(strrpos($file, '*')){
            $output .= importTangram(getPackage(str_replace(array(".", '*'), array('/', ''), $file)));
        }elseif(in_array($file, $IMPORTED)){
            continue;
        }else{
            $IMPORTED[] = $file;

//            echo "file name:".$file."\n";
            $file = str_replace(".", '/', $file) . ".js";
  //          echo "file name:".$file."\n";
    //        echo "\n";

            if($DEBUG)
                echo "Importing: " . $file . ", returnFile $returnFile\n";
            if(!in_array($file, $MATCHED)){
                $content = file_get_contents(getRealFilePath($file));
                if(!$content){
                    if($DEBUG)
                        echo "no content... \n;";
                    continue;
                }
                $MATCHED[] = $file;
                $matches = array();
                //去掉注释
                $content = trim(preg_replace("/\/\*(.*?)\*\//ies", "", $content));
                $output .= preg_replace("/\/\/\/import\s+([\w\-\$]+(\.[\w\-\$]+)*);?/ies", "importTangram('\\1')", $content);
            }
        }
    }
    return $output;
}
Beispiel #4
0
function importTangram($files, $returnFile = true)
{
    global $MATCHED, $DEBUG, $IMPORTED;
    $output = "";
    if (is_string($files)) {
        $files = array($files);
    } else {
        if (!is_array($files)) {
            return $output;
        }
    }
    if ($DEBUG) {
        var_dump($files);
    }
    foreach ($files as $file) {
        if (strrpos($file, '*')) {
            $output .= importTangram(getPackage(str_replace(array(".", '*'), array('/', ''), $file)));
        } elseif (in_array($file, $IMPORTED)) {
            continue;
        } else {
            $IMPORTED[] = $file;
            $file = str_replace(".", '/', $file) . ".js";
            if ($DEBUG) {
                echo "Importing: " . $file . ", returnFile {$returnFile}\n";
            }
            if (!in_array($file, $MATCHED)) {
                $content = getFileContents($file);
                if (!$content) {
                    if ($DEBUG) {
                        echo "no content... \n;";
                    }
                    continue;
                }
                $MATCHED[] = $file;
                $matches = array();
                //去掉注释
                $content = trim(preg_replace("/\\/\\*(.*?)\\*\\//ies", "", $content));
                $output .= preg_replace("/\\/\\/\\/+\\s*import\\s+([\\w\\-\$]+(\\.[\\w\\-\$]+)*);?/ies", "importTangram('\\1')", $content);
            }
        }
    }
    return $output;
}