Esempio n. 1
0
 /**
  * Creates a static method on this TenantObject using the given parameters.
  * @param string $name The name used in code to identify this TenantObjectMethod.
  * @param TenantObjectMethodParameter[] $parameters Array of TenantObjectMethodParameter objects representing parameters to this TenantObjectMethod.
  * @param string $codeblob The PHP code that runs when this TenantObjectMethod is executed.
  * @param string[] $namespaceReferences Array of PHP namespaces that should be referenced by this TenantObjectMethod.
  * @return TenantObjectMethod|NULL The newly created TenantObjectMethod, or NULL if the creation operation failed.
  */
 public function CreateMethod($name, $parameters, $codeblob, $namespaceReferences = null)
 {
     global $MySQL;
     $query = "INSERT INTO " . System::$Configuration["Database.TablePrefix"] . "TenantObjectMethods (method_ObjectID, method_Name, method_CodeBlob) VALUES (";
     $query .= $this->ID . ", ";
     $query .= "'" . $MySQL->real_escape_string($name) . "', ";
     $query .= "'" . $MySQL->real_escape_string($codeblob) . "'";
     $query .= ")";
     $result = $MySQL->query($query);
     if ($result === false) {
         PhoenixSNS::Log("Database error when trying to create a static method for the specified tenant object.", array("DatabaseError" => $MySQL->error . " (" . $MySQL->errno . ")", "Query" => $query));
         return null;
     }
     $method = TenantObjectMethod::GetByID($MySQL->insert_id);
     if (is_array($namespaceReferences)) {
         foreach ($namespaceReferences as $ref) {
             $method->AddNamespaceReference($ref);
         }
     }
     return $method;
 }
Esempio n. 2
0
     switch ($path[4]) {
         case "":
             $tenant = Tenant::GetByURL($path[0]);
             $object = TenantObject::GetByID($path[2]);
             $page = new TenantObjectInstanceBrowsePage();
             $page->CurrentTenant = $tenant;
             $page->CurrentObject = $object;
             $page->Render();
             break;
     }
 case "methods":
     switch ($path[4]) {
         case "static":
             $tenant = Tenant::GetByURL($path[0]);
             $object = TenantObject::GetByID($path[2]);
             $method = TenantObjectMethod::GetByID($path[5]);
             if ($_SERVER["REQUEST_METHOD"] == "POST") {
                 $method->CodeBlob = $_POST["method_CodeBlob"];
                 $method->Update();
                 System::Redirect("~/tenant/manage/" . $tenant->URL . "/objects/" . $object->ID);
                 return true;
             }
             $page = new TenantObjectMethodManagementPage();
             $page->CurrentTenant = $tenant;
             $page->CurrentObject = $object;
             $page->CurrentMethod = $method;
             $page->Render();
             break;
         case "instance":
             $page = new TenantObjectMethodManagementPage();
             $page->CurrentTenant = Tenant::GetByURL($path[0]);