예제 #1
0
 /**
  * Creates a new TenantObject object based on the given values from the database.
  * @param array $values
  * @return \PhoenixSNS\Objects\TenantObject based on the values of the fields in the given associative array
  */
 public static function GetByAssoc($values)
 {
     $item = new TenantObject();
     $item->ID = $values["object_ID"];
     $item->Tenant = Tenant::GetByID($values["object_TenantID"]);
     $item->Module = Module::GetByID($values["object_ModuleID"]);
     $item->ParentObject = TenantObject::GetByID($values["object_ParentObjectID"]);
     $item->DefaultProperty = TenantObjectProperty::GetByID($values["object_DefaultPropertyID"]);
     $item->Name = $values["object_Name"];
     return $item;
 }
예제 #2
0
 /**
  * Creates a TenantObject with the specified criteria on this Tenant.
  * @param string $name The name of the TenantObject to create.
  * @param string $titles
  * @param string $descriptions
  * @param TenantInstanceProperty[] $properties Instance properties to create on this TenantObject.
  * @param TenantObject $parentObject The TenantObject which owns this TenantObject
  * @param string $instances
  * @param TenantObjectInstanceProperty $defaultProperty The TenantObjectInstanceProperty used for inline-rendering an instance of this property
  * @return NULL|\PhoenixSNS\Objects\TenantObject The newly-created TenantObject, or NULL if the creation operation failed.
  */
 public function CreateObject($name, $titles = null, $descriptions = null, array $properties = null, TenantObject $parentObject = null, array $instances = null, TenantObjectInstanceProperty $defaultProperty = null)
 {
     global $MySQL;
     if ($titles == null) {
         $titles = array($name);
     }
     if ($descriptions == null) {
         $descriptions = array();
     }
     if ($properties == null) {
         $properties = array();
     }
     if ($instances == null) {
         $instances = array();
     }
     // do not create the object if the object with the same name already exists
     if ($this->HasObject($name)) {
         $bt = debug_backtrace();
         trigger_error("Object '" . $name . "' already exists on tenant '" . $this->URL . "' in " . $bt[0]["file"] . "::" . $bt[0]["function"] . " on line " . $bt[0]["line"] . "; ", E_USER_WARNING);
         return $this->GetObject($name);
     }
     $query = "INSERT INTO " . System::$Configuration["Database.TablePrefix"] . "TenantObjects (object_TenantID, object_ModuleID, object_ParentObjectID, object_Name, object_DefaultPropertyID) VALUES (";
     $query .= $this->ID . ", ";
     $query .= "NULL" . ", ";
     $query .= ($parentObject == null ? "NULL" : $parentObject->ID) . ", ";
     $query .= "'" . $MySQL->real_escape_string($name) . "', ";
     if ($defaultProperty != null && is_numeric($defaultProperty->ID)) {
         $query .= $defaultProperty->ID;
     } else {
         $query .= "NULL";
     }
     $query .= ")";
     $result = $MySQL->query($query);
     if ($result === false) {
         return false;
     }
     $id = $MySQL->insert_id;
     $object = TenantObject::GetByID($id);
     $object->SetTitles($titles);
     $object->SetDescriptions($descriptions);
     foreach ($properties as $property) {
         $object->CreateInstanceProperty($property);
     }
     if (is_array($instances)) {
         foreach ($instances as $instance) {
             // handle as an array of property/value pairs
             $object->CreateInstance($instance);
         }
     }
     return $object;
 }
 public static function GetByAssoc($values)
 {
     $item = new TenantObjectInstanceMethod();
     $item->ID = $values["method_ID"];
     $item->ParentObject = TenantObject::GetByID($values["method_ObjectID"]);
     $item->Name = $values["method_Name"];
     $item->CodeBlob = $values["method_CodeBlob"];
     return $item;
 }
 /**
  * Creates a new TenantObjectInstanceProperty object based on the given values from the database.
  * @param array $values
  * @return TenantObjectInstanceProperty based on the values of the fields in the given associative array
  */
 public static function GetByAssoc($values)
 {
     $item = new TenantObjectInstanceProperty();
     $item->ID = $values["property_ID"];
     $item->ParentObject = TenantObject::GetByID($values["property_ObjectID"]);
     $item->Name = $values["property_Name"];
     $item->DataType = DataType::GetByID($values["property_DataTypeID"]);
     if ($item->DataType != null) {
         $item->DefaultValue = $item->DataType->Decode($values["property_DefaultValue"]);
     }
     $item->Required = $values["property_IsRequired"] == 1;
     $item->ColumnVisible = $values["property_ColumnVisible"] == 1;
     return $item;
 }
 /**
  * Creates a new TenantObjectProperty object based on the given values from the database.
  * @param array $values
  * @return \PhoenixSNS\Objects\TenantObjectProperty based on the values of the fields in the given associative array
  */
 public static function GetByAssoc($values)
 {
     $item = new TenantObjectProperty();
     $item->ID = $values["property_ID"];
     $item->Tenant = Tenant::GetByID($values["property_TenantID"]);
     $item->ParentObject = TenantObject::GetByID($values["property_ObjectID"]);
     $item->Name = $values["property_Name"];
     $item->Description = $values["property_Description"];
     $item->DataType = DataType::GetByID($values["property_DataTypeID"]);
     $item->DefaultValue = $values["property_DefaultValue"];
     $item->Required = $values["property_IsRequired"] == 1;
     $item->Enumeration = TenantEnumeration::GetByID($values["property_EnumerationID"]);
     $item->RequireChoiceFromEnumeration = $values["property_RequireChoiceFromEnumeration"] == 1;
     return $item;
 }
예제 #6
0
             $page->CurrentObject = $object;
             $page->CurrentMethod = $method;
             $page->Render();
             break;
         case "instance":
             $page = new TenantObjectMethodManagementPage();
             $page->CurrentTenant = Tenant::GetByURL($path[0]);
             $page->CurrentObject = TenantObject::GetByID($path[2]);
             $page->CurrentMethod = TenantObjectInstanceMethod::GetByID($path[5]);
             $page->Render();
             break;
     }
     break;
 case "":
     $tenant = Tenant::GetByURL($path[0]);
     $object = TenantObject::GetByID($path[2]);
     if ($_SERVER["REQUEST_METHOD"] == "POST") {
         $count = $_POST["InstanceProperty_NewPropertyCount"];
         for ($i = $count; $i > 0; $i--) {
             $name = $_POST["InstanceProperty_" . $i . "_Name"];
             $dataType = DataType::GetByID($_POST["InstanceProperty_" . $i . "_DataTypeID"]);
             $defaultValue = $_POST["InstanceProperty_" . $i . "_DefaultValue"];
             $object->CreateInstanceProperty(new TenantObjectInstanceProperty($name, $dataType, $defaultValue));
         }
         System::Redirect("~/tenant/manage/" . $tenant->URL . "/objects/" . $object->ID);
         return true;
     } else {
         $page = new TenantObjectManagementPage();
         $page->CurrentTenant = $tenant;
         $page->CurrentObject = $object;
         $page->Render();