Example #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();
}
Example #2
0
function run_index_documents($task, $args)
{
    try {
        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';
        ini_set("memory_limit", "2048M");
        ini_set("display_errors", 1);
        $databaseManager = new sfDatabaseManager();
        $databaseManager->initialize();
        $search_config_file = SF_ROOT_DIR . '/config/search.xml';
        $documents = simplexml_load_file($search_config_file);
        $all = 0;
        $search_index_path = SF_ROOT_DIR . '/cache/search/';
        if (is_dir($search_index_path)) {
            $index_files = glob($search_index_path . '/*');
            foreach ($index_files as $index_file) {
                if (is_file($index_file)) {
                    unlink($index_file);
                }
            }
        }
        $search_index = Zend_Search_Lucene::create($search_index_path);
        $search_index->setMaxBufferedDocs(20000);
        Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
        $ndoc = 0;
        foreach ($documents as $document) {
            $document_name = $document->attributes();
            if (array_key_exists(0, $args) && $document_name != $args[0]) {
                continue;
            }
            echo "Indexing " . $document_name . "\n";
            $classPeer = $document_name . 'Peer';
            $c = new Criteria();
            $document_instances = call_user_func(array($classPeer, 'doSelect'), $c);
            foreach ($document_instances as $document_instance) {
                $common_field_val = "";
                $id = $document_instance->getId();
                $search_doc = new Zend_Search_Lucene_Document();
                $date = $document_instance->getCreatedAt();
                $search_doc->addField(Zend_Search_Lucene_Field::UnIndexed('did', $id, 'utf-8'));
                $search_doc->addField(Zend_Search_Lucene_Field::UnIndexed('ddate', $date, 'utf-8'));
                $search_doc->addField(Zend_Search_Lucene_Field::UnIndexed('dtype', $document_name, 'utf-8'));
                $search_doc->addField(Zend_Search_Lucene_Field::UnIndexed('dstatus', $document_instance->getPublicationStatus(), 'utf-8'));
                foreach ($document as $field_name) {
                    $attr = get_object_vars($field_name);
                    $attributes = $attr['@attributes'];
                    $getFunction = 'get' . $attributes['name'];
                    $fieldContent = "";
                    $fieldContent = $document_instance->{$getFunction}();
                    if ($attributes['name'] == "Label" and substr($fieldContent, 0, 8) == "no label") {
                        $fieldContent = "";
                    }
                    if ($attributes['name'] == "ViennaClasses" || $attributes['name'] == "NiceClasses") {
                        $parts = explode(",", $fieldContent);
                        $nbr = count($parts);
                        //echo "============>".$nbr."\n";
                        $search_doc->addField(Zend_Search_Lucene_Field::UnIndexed($attributes['name'] . "_cnt", $nbr, 'utf-8'));
                        //$e = 1;
                        for ($e = 0; $e < 15; $e++) {
                            if (empty($parts[$e])) {
                                $parts[$e] = "---";
                            }
                            $search_doc->addField(Zend_Search_Lucene_Field::keyword($attributes['name'] . $e, trim($parts[$e]), 'utf-8'));
                            $e++;
                        }
                    } elseif ($attributes['name'] == "ApplicationNumber" || $attributes['name'] == "RegisterNumber") {
                        $search_doc->addField(Zend_Search_Lucene_Field::keyword($attributes['name'], $fieldContent, 'utf-8'));
                    } else {
                        $search_doc->addField(Zend_Search_Lucene_Field::text($attributes['name'], UtilsHelper::cyrillicConvert($fieldContent), 'utf-8'));
                    }
                }
                $search_index->addDocument($search_doc);
                $ndoc++;
                echo $ndoc . "\t\t\r";
            }
        }
        echo echo_cms_line(" " . $ndoc . " documents indexed\n");
        $search_index->commit();
        $search_index->optimize();
    } catch (Exception $e) {
        echo_cms_error("ERROR ADD_DOCUMENT : " . $e->getMessage());
    }
    echo echo_cms_sep();
    exit;
}