113 lines
3.4 KiB
PHP
113 lines
3.4 KiB
PHP
<?php
|
|
namespace Objectify\Objects;
|
|
use WebFX\System;
|
|
|
|
// \Enum::Create("Objectify\\Objects\\ModuleStatus", "Enabled", "Disabled");
|
|
|
|
class Module
|
|
{
|
|
public $ID;
|
|
public $Title;
|
|
public $Description;
|
|
public $Enabled;
|
|
|
|
public static function GetByAssoc($values)
|
|
{
|
|
$item = new Module();
|
|
$item->ID = $values["module_ID"];
|
|
$item->Title = $values["module_Title"];
|
|
$item->Description = $values["module_Description"];
|
|
$item->Enabled = $values["module_Enabled"];
|
|
return $item;
|
|
}
|
|
public static function Get($max = null, $tenant = null)
|
|
{
|
|
global $MySQL;
|
|
|
|
$query = "SELECT module_ID, module_Title, module_Description";
|
|
if ($tenant != null)
|
|
{
|
|
$query .= ", (tenantmodule_ModuleID = module_ID) AS module_Enabled";
|
|
}
|
|
else
|
|
{
|
|
$query .= ", 1 AS module_Enabled";
|
|
}
|
|
$query .= " FROM " . System::$Configuration["Database.TablePrefix"] . "Modules";
|
|
if ($tenant != null)
|
|
{
|
|
$query .= ", " . System::$Configuration["Database.TablePrefix"] . "TenantModules";
|
|
$query .= " WHERE tenantmodule_ModuleID = module_ID AND tenantmodule_TenantID = " . $tenant->ID;
|
|
}
|
|
|
|
$result = $MySQL->query($query);
|
|
$count = $result->num_rows;
|
|
$retval = array();
|
|
for ($i = 0; $i < $count; $i++)
|
|
{
|
|
$values = $result->fetch_assoc();
|
|
$retval[] = Module::GetByAssoc($values);
|
|
}
|
|
return $retval;
|
|
}
|
|
public static function GetByID($id, $forAllTenants = false)
|
|
{
|
|
if (!is_numeric($id)) return null;
|
|
|
|
global $MySQL;
|
|
$query = "SELECT module_ID, module_Title, module_Description FROM " . System::$Configuration["Database.TablePrefix"] . "Modules WHERE module_ID = " . $id;
|
|
if (!$forAllTenants)
|
|
{
|
|
$query = "SELECT module_ID, module_Title, module_Description FROM " . System::$Configuration["Database.TablePrefix"] . "Modules, " . System::$Configuration["Database.TablePrefix"] . "TenantModules WHERE tenantmodule_ModuleID = module_ID AND tenantmodule_TenantID = " . $CurrentTenant->ID . " AND module_ID = " . $id;
|
|
}
|
|
|
|
$result = $MySQL->query($query);
|
|
$count = $result->num_rows;
|
|
if ($count == 0) return null;
|
|
|
|
$values = $result->fetch_assoc();
|
|
return Module::GetByAssoc($values);
|
|
}
|
|
|
|
public function Update()
|
|
{
|
|
global $MySQL;
|
|
|
|
if (is_numeric($this->ID))
|
|
{
|
|
// id is set, so update
|
|
$query = "UPDATE " . System::$Configuration["Database.TablePrefix"] . "Modules SET ";
|
|
$query .= "module_Title = '" . $MySQL->real_escape_string($this->Title) . "', ";
|
|
$query .= "module_Description = '" . $MySQL->real_escape_string($this->Description) . "'";
|
|
$query .= " WHERE module_ID = " . $this->ID;
|
|
}
|
|
else
|
|
{
|
|
// id is not set, so insert
|
|
$query = "INSERT INTO " . System::$Configuration["Database.TablePrefix"] . "Modules (module_Title, module_Description) VALUES (";
|
|
$query .= "'" . $MySQL->real_escape_string($this->Title) . "', ";
|
|
$query .= "'" . $MySQL->real_escape_string($this->Description) . "'";
|
|
$query .= ")";
|
|
}
|
|
|
|
$result = $MySQL->query($query);
|
|
if ($MySQL->errno != 0) return false;
|
|
|
|
if (!is_numeric($this->ID))
|
|
{
|
|
// id is not set, so set it
|
|
$this->ID = $MySQL->insert_id;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public function ToJSON()
|
|
{
|
|
echo("{");
|
|
echo("\"ID\":" . $this->ID . ",");
|
|
echo("\"Title\":\"" . \JH\Utilities::JavaScriptDecode($this->Title, "\"") . "\",");
|
|
echo("\"Description\":\"" . \JH\Utilities::JavaScriptDecode($this->Description, "\"") . "\"");
|
|
echo("}");
|
|
}
|
|
}
|
|
?>
|