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(); }
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; }