Пример #1
0
function run_create_module($task, $args)
{
    ini_set("memory_limit", "2048M");
    // get configuration
    // define constants
    define('SF_ROOT_DIR', sfConfig::get('sf_root_dir'));
    define('SF_APP', 'backend');
    define('SF_ENVIRONMENT', 'prod');
    define('SF_DEBUG', false);
    require_once SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'apps' . DIRECTORY_SEPARATOR . SF_APP . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php';
    if (!class_exists("FileHelper")) {
        include sfConfig::get('sf_root_dir') . "/lib/helper/FileHelper.php";
    }
    $createLib = true;
    if (isset($args[1])) {
        $createLib = $args[1] == "lib";
    }
    if (isset($args[0])) {
        $moduleName = strtolower($args[0]);
    } else {
        echo_cms_sep();
        echo_cms_title("\tUsage: symfony create-module <module_name> <lib>");
        echo_cms_sep();
        exit;
    }
    $formFile = sfConfig::get('sf_root_dir') . "/config/form.xml";
    if (is_readable($formFile)) {
        $objects = XMLParser::getXMLdataValues($formFile);
        $objList = array();
        foreach ($objects as $obj) {
            if ($obj['tag'] == 'OBJECT' && $obj['type'] == 'open') {
                $objName = $obj['attributes']['NAME'];
                $objModule = strtolower($obj['attributes']['MODULE']);
                if (!$objModule) {
                    $objModule = strtolower(str_replace('I18n', '', $objName));
                }
                if ($objModule == $moduleName) {
                    $objList[] = $objName;
                }
            }
        }
    }
    if (empty($objList)) {
        echo_cms_error("\tError: No objects found for module " . $moduleName . " in form.xml file!");
        exit;
    }
    if ($createLib) {
        $libActionsContent = getActionsContent($moduleName);
        // class mediaCoreActions extends sfActions
        $sf = $moduleName . "Core";
        // Lib folders
        $libFolder = "lib/modules/";
        createFolder($libFolder . $moduleName);
        createFolder($libFolder . $moduleName . "/actions");
        createFolder($libFolder . $moduleName . "/config");
        createFolder($libFolder . $moduleName . "/templates");
        $libActionsFile = $libFolder . $moduleName . "/actions/actions.class.php";
        writeContentToFile($libActionsFile, $libActionsContent);
    } else {
        $sf = "";
    }
    // Creating apps/frontend, apps/backend files...
    $appBackActionsContent = getActionsContent($moduleName, "", "sf", $objList);
    // Example: class userActions extends sfActions
    $appFrontActionsContent = getActionsContent($moduleName, "", $sf);
    // Example: class newsActions extends newsCoreActions || sfActions
    // Backend folders
    $backFolder = "apps/backend/modules/";
    createFolder($backFolder . $moduleName);
    createFolder($backFolder . $moduleName . "/actions");
    createFolder($backFolder . $moduleName . "/config");
    createFolder($backFolder . $moduleName . "/templates");
    $backActionsFile = $backFolder . $moduleName . "/actions/actions.class.php";
    writeContentToFile($backActionsFile, $appBackActionsContent);
    // Frontend folders
    $frontFolder = "apps/frontend/modules/";
    createFolder($frontFolder . $moduleName);
    createFolder($frontFolder . $moduleName . "/actions");
    createFolder($frontFolder . $moduleName . "/config");
    createFolder($frontFolder . $moduleName . "/templates");
    $ftontActionsFile = $frontFolder . $moduleName . "/actions/actions.class.php";
    writeContentToFile($ftontActionsFile, $appFrontActionsContent);
    // ------------------------------------------------------------------------------------------
    $configFolder = $backFolder . $moduleName . "/config/";
    $leftFile = $configFolder . "leftTree.xml";
    $leftContent = createXMLContent("left", $moduleName, $objList);
    writeContentToFile($leftFile, $leftContent);
    $mainFile = $configFolder . "mainList.xml";
    $mainContent = createXMLContent("main", $moduleName, $objList);
    writeContentToFile($mainFile, $mainContent);
    $rightFile = $configFolder . "rightTree.xml";
    $rightContent = createXMLContent("right", $moduleName, $objList);
    writeContentToFile($rightFile, $rightContent);
    $resourcesFile = $configFolder . "resources.xml";
    $resourcesContent = createXMLContent("resources", $moduleName, $objList);
    writeContentToFile($resourcesFile, $resourcesContent);
    $blocksFile = $frontFolder . $moduleName . "/config/" . "blocks.xml";
    $blocksContent = createXMLContent("blocks", $moduleName, $objList);
    writeContentToFile($blocksFile, $blocksContent);
    echo_cms("Done!");
    echo_cms_sep();
}
Пример #2
0
function parse($content)
{
    $contentToParse = getStringBetweenTwoDelims("<jdm>", $content, "</jdm>");
    $contentToParse = "<jdm>" . $contentToParse . "</jdm>";
    $filename = "file.xml";
    writeContentToFile($contentToParse, $filename);
    $xmlDoc = new DomDocument();
    $xmlDoc->load($filename);
    $result = array();
    // Récupération du mot
    $result = getMot($xmlDoc, $result);
    // Récupération du mot-formate
    $result = getMotFormate($xmlDoc, $result);
    // Définitions
    $result = getDefinitions($xmlDoc, $result);
    // Relations sortant
    $result = getRels($xmlDoc, 'sortant', $result);
    // Relations entrant
    $result = getRels($xmlDoc, 'entrant', $result);
    echo json_encode($result);
}