/** * function deleteEntry * <pre> * Removes the child entries of Module objects before removing self. * (Poor Man's Referential Integrity) * </pre> * @return [void] */ function deleteEntry() { // first remove any associated State Variables $list = new StateVarList($this->getModuleID()); $list->setFirst(); while ($item = $list->getNext()) { $item->deleteEntry(); } // now remove any Data Access Objects $list = new DAObjList($this->getModuleID()); $list->setFirst(); while ($item = $list->getNext()) { $item->deleteEntry(); } // now remove any Page Objects $list = new PageList($this->getModuleID()); $list->setFirst(); while ($item = $list->getNext()) { $item->deleteEntry(); } // now remove any Transitions $list = new TransitionsList($this->getModuleID()); $list->setFirst(); while ($item = $list->getNext()) { $item->deleteEntry(); } // now call parent method parent::deleteEntry(); }
/** * function processDataAccessObjectInfo * <pre> * Takes the Data Access info and creates the proper tool_setup.php entries * as well as the individual DataAccessManager & DataAccessList objects. * </pre> * @param $moduleID [INTEGER] The module id of the DAObjects to work with * @return [void] */ function processDataAccessObjectInfo($moduleID) { $pathToCodeTemplates = $this->values[ModuleCreator::KEY_PATH_RAD_ROOT]; $pathToCodeTemplates .= 'data/code/'; $codeTemplate = new Template($pathToCodeTemplates); // open include file to include any created objects $includeFileName = $this->values[ModuleCreator::KEY_PATH_INCLUDE_NAME]; $includeFileContents = file_get_contents($includeFileName); /* * Begin by modifying the tool_setup file */ // open tool_setup file $setupFileName = $this->values[ModuleCreator::KEY_PATH_SETUP_NAME]; $setupFileContents = file_get_contents($setupFileName); // get daObjList object $daObjList = new DAObjList($moduleID); // for each daObj object $daObjList->setFirst(); while ($daObj = $daObjList->getNext()) { // if object not created then if (!$daObj->isCreated()) { $docTableName = ucwords($daObj->getName()); $docTableDescription = $daObj->getDescription() . "\n"; $docFieldList = ''; $sqlManagerName = $docTableName; $sqlFieldList = ''; $sqlPrimaryKey = ''; $fieldLabels = ''; $tableManagerFieldList = ''; $primaryKeyFieldName = ''; $listInitFields = array(); $labelFieldName = ''; $fieldList = $daObj->getFieldList(); $fieldList->setFirst(); while ($field = $fieldList->getNext()) { // compile documentation entries $docFieldList .= ' * ' . $field->getName() . ' [' . $field->getType() . '] ' . $field->getDescription() . "\n"; // compile sql field(s) $sqlFieldList .= $this->getSQLFieldEntry($field); if ($field->isPrimaryKey()) { $sqlPrimaryKey = ' PRIMARY KEY (' . $field->getName() . ")\n"; $primaryKeyFieldName = $field->getName(); } // Collect Field Label info $fieldLabels .= $this->getFieldLabels($field); // collect TableManager field list if ($tableManagerFieldList != '') { $tableManagerFieldList .= ','; } $tableManagerFieldList .= $field->getName(); // collect names of any fields used to init the list if ($field->isListInit()) { $listInitFields[] = $field; } // store the field name used for labels display(s) // (like Form Grid Rows, or Drop List Labels, etc...) if ($field->isLabelName()) { $labelFieldName = $field->getName(); } } // next Field Entry // combine sqlFieldList with sqlPrimaryKey $sqlFieldList .= $sqlPrimaryKey; $codeTemplate->set('tableName', $docTableName); $codeTemplate->set('tableDescription', $docTableDescription); $codeTemplate->set('fieldList', $docFieldList); $codeTemplate->set('tableNameCap', $sqlManagerName); $codeTemplate->set('dbFieldList', $sqlFieldList); $setupCode = $codeTemplate->fetch('setup_dbTable.php'); //echo $setupCode; //exit; // insert sql setup code $tag = ModuleCreator::TAG_TOOL_DAOBJ_TABLE; $data = $setupCode . "\n\n\n\n" . $tag; $setupFileContents = str_replace($tag, $data, $setupFileContents); // insert field labels $tag = ModuleCreator::TAG_TOOL_FIELDS_LABEL; $data = " //\n // " . $daObj->getName() . " table\n //\n" . $fieldLabels . "\n\n" . $tag; $setupFileContents = str_replace($tag, $data, $setupFileContents); // Now create new Table manager Object $tableManagerName = $this->createTableManagerObject($daObj, $tableManagerFieldList, $primaryKeyFieldName, $labelFieldName, $docFieldList, $sqlFieldList); // Now create new List Manager Object // $listIteratorName = $this->createListIteratorObject( $daObj, $listInitFields ); // Now insert new objects into include file $tag = ModuleCreator::TAG_INCLUDE_DA; $data = "require_once( '" . ModuleCreator::PATH_OBJECT_DA . $tableManagerName . "' );\n"; // $data .= "require_once( '".ModuleCreator::PATH_OBJECT_DA.$listIteratorName."' );\n"; $data .= $tag; $includeFileContents = str_replace($tag, $data, $includeFileContents); // Now mark this Data Access Object as having been created. $daObj->setCreated(); } // end if !created } // next object // save Setup file contents file_put_contents($setupFileName, $setupFileContents); // save Include File Contents file_put_contents($includeFileName, $includeFileContents); }