A QCodo powered CMS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

91 lines
6.3 KiB

/**
* Main constructor. Constructor OR static create methods are designed to be called in either
* a parent QPanel or the main QForm when wanting to create a
* <%= $objTable->ClassName %>MetaControl to edit a single <%= $objTable->ClassName %> object within the
* QPanel or QForm.
*
* This constructor takes in a single <%= $objTable->ClassName %> object, while any of the static
* create methods below can be used to construct based off of individual PK ID(s).
*
* @param mixed $objParentObject QForm or QPanel which will be using this <%= $objTable->ClassName %>MetaControl
* @param <%= $objTable->ClassName %> $<%= $objCodeGen->VariableNameFromTable($objTable->Name); %> new or existing <%= $objTable->ClassName %> object
*/
public function __construct($objParentObject, <%= $objTable->ClassName %> $<%= $objCodeGen->VariableNameFromTable($objTable->Name); %>) {
// Setup Parent Object (e.g. QForm or QPanel which will be using this <%= $objTable->ClassName %>MetaControl)
$this->objParentObject = $objParentObject;
// Setup linked <%= $objTable->ClassName %> object
$this-><%= $objCodeGen->VariableNameFromTable($objTable->Name); %> = $<%= $objCodeGen->VariableNameFromTable($objTable->Name); %>;
// Figure out if we're Editing or Creating New
if ($this-><%= $objCodeGen->VariableNameFromTable($objTable->Name); %>->__Restored) {
$this->strTitleVerb = QApplication::Translate('Edit');
$this->blnEditMode = true;
} else {
$this->strTitleVerb = QApplication::Translate('Create');
$this->blnEditMode = false;
}
}
/**
* Static Helper Method to Create using PK arguments
* You must pass in the PK arguments on an object to load, or leave it blank to create a new one.
* If you want to load via QueryString or PathInfo, use the CreateFromQueryString or CreateFromPathInfo
* static helper methods. Finally, specify a CreateType to define whether or not we are only allowed to
* edit, or if we are also allowed to create a new one, etc.
*
* @param mixed $objParentObject QForm or QPanel which will be using this <%= $objTable->ClassName %>MetaControl
<% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>
* @param <%= $objColumn->VariableType %> $<%= $objColumn->VariableName %> primary key value
<% } %>
* @param QMetaControlCreateType $intCreateType rules governing <%= $objTable->ClassName %> object creation - defaults to CreateOrEdit
* @return <%= $objTable->ClassName %>MetaControl
*/
public static function Create($objParentObject, <% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>$<%= $objColumn->VariableName %> = null, <% } %>$intCreateType = QMetaControlCreateType::CreateOrEdit) {
// Attempt to Load from PK Arguments
if (<% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>strlen($<%= $objColumn->VariableName %>) && <% } %><%----%>) {
$<%= $objCodeGen->VariableNameFromTable($objTable->Name); %> = <%= $objTable->ClassName %>::Load(<% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>$<%= $objColumn->VariableName %>, <% } %><%--%>);
// <%= $objTable->ClassName %> was found -- return it!
if ($<%= $objCodeGen->VariableNameFromTable($objTable->Name); %>)
return new <%= $objTable->ClassName %>MetaControl($objParentObject, $<%= $objCodeGen->VariableNameFromTable($objTable->Name); %>);
// If CreateOnRecordNotFound not specified, throw an exception
else if ($intCreateType != QMetaControlCreateType::CreateOnRecordNotFound)
throw new QCallerException('Could not find a <%= $objTable->ClassName %> object with PK arguments: ' . <% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>$<%= $objColumn->VariableName %> . ', ' . <% } %><%----------%>);
// If EditOnly is specified, throw an exception
} else if ($intCreateType == QMetaControlCreateType::EditOnly)
throw new QCallerException('No PK arguments specified');
// If we are here, then we need to create a new record
return new <%= $objTable->ClassName %>MetaControl($objParentObject, new <%= $objTable->ClassName %>());
}
/**
* Static Helper Method to Create using PathInfo arguments
*
* @param mixed $objParentObject QForm or QPanel which will be using this <%= $objTable->ClassName %>MetaControl
* @param QMetaControlCreateType $intCreateType rules governing <%= $objTable->ClassName %> object creation - defaults to CreateOrEdit
* @return <%= $objTable->ClassName %>MetaControl
*/
public static function CreateFromPathInfo($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
<% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>
$<%= $objColumn->VariableName %> = QApplication::PathInfo(<%= $_INDEX %>);
<% } %>
return <%= $objTable->ClassName %>MetaControl::Create($objParentObject, <% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>$<%= $objColumn->VariableName %>, <% } %>$intCreateType);
}
/**
* Static Helper Method to Create using QueryString arguments
*
* @param mixed $objParentObject QForm or QPanel which will be using this <%= $objTable->ClassName %>MetaControl
* @param QMetaControlCreateType $intCreateType rules governing <%= $objTable->ClassName %> object creation - defaults to CreateOrEdit
* @return <%= $objTable->ClassName %>MetaControl
*/
public static function CreateFromQueryString($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
<% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>
$<%= $objColumn->VariableName %> = QApplication::QueryString('<%= $objColumn->VariableName %>');
<% } %>
return <%= $objTable->ClassName %>MetaControl::Create($objParentObject, <% foreach ($objTable->PrimaryKeyColumnArray as $objColumn) { %>$<%= $objColumn->VariableName %>, <% } %>$intCreateType);
}