2023-07-04 06:26:08 +00:00
```
██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██╔═══╝ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
██║ ╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚═╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
```
# abstract class BaseTable (Details)
2024-06-21 12:01:19 +00:00
> namespace: **VDM\Joomla\Abstraction**
2024-07-16 12:12:10 +00:00
2023-07-04 06:26:08 +00:00
```uml
@startuml
abstract BaseTable #Orange {
# array $tables
2024-04-22 14:43:33 +00:00
+ get(?string $table = null, ?string $field = null, ...) : mixed
2023-07-04 06:26:08 +00:00
+ title(string $table) : ?array
+ titleName(string $table) : string
+ tables() : array
+ exist(string $table, ?string $field = null) : bool
2024-04-22 14:43:33 +00:00
+ fields(string $table, bool $default = false, ...) : ?array
2023-07-04 06:26:08 +00:00
# addDefault(array $fields) : array
2024-04-22 14:43:33 +00:00
# addDefaultDetails(array $fields) : array
2023-07-22 09:43:46 +00:00
# isDefault(string $field) : bool
# getDefault(string $field) : ?array
2024-04-22 14:43:33 +00:00
# getDefaultKey(string $field, string $key) : mixed
2023-07-04 06:26:08 +00:00
}
note right of BaseTable::get
Get any value from a item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name', 'value_key');
Get an item/field/column of an area/view/table
Example: $this->get('table_name', 'field_name');
Get all items/fields/columns of an area/view/table
Example: $this->get('table_name');
Get all areas/views/tables with all their item/field/column details
Example: $this->get('All');
2024-04-22 14:43:33 +00:00
Example: $this->get();
2023-07-04 06:26:08 +00:00
2024-04-22 14:43:33 +00:00
since: 3.2.1
2023-07-04 06:26:08 +00:00
return: mixed
arguments:
2024-04-22 14:43:33 +00:00
?string $table = null
2023-07-04 06:26:08 +00:00
?string $field = null
?string $key = null
end note
2023-07-22 09:43:46 +00:00
note left of BaseTable::title
2023-07-04 06:26:08 +00:00
Get title field from an area/view/table
since: 3.2.0
return: ?array
end note
note right of BaseTable::titleName
Get title field name
since: 3.2.0
return: string
end note
2023-07-22 09:43:46 +00:00
note left of BaseTable::tables
2023-07-04 06:26:08 +00:00
Get all tables
since: 3.2.0
return: array
end note
note right of BaseTable::exist
Check if a table (and field) exist
since: 3.2.0
return: bool
end note
2023-07-22 09:43:46 +00:00
note left of BaseTable::fields
2023-07-04 06:26:08 +00:00
Get all fields of an area/view/table
since: 3.2.0
return: ?array
2024-04-22 14:43:33 +00:00
arguments:
string $table
bool $default = false
bool $details = false
2023-07-04 06:26:08 +00:00
end note
note right of BaseTable::addDefault
Add the default fields
since: 3.2.0
return: array
end note
2023-07-22 09:43:46 +00:00
2024-04-22 14:43:33 +00:00
note left of BaseTable::addDefaultDetails
Add the default fields
since: 3.2.0
return: array
end note
note right of BaseTable::isDefault
2023-07-22 09:43:46 +00:00
Check if the field is a default field
since: 3.2.0
return: bool
end note
2024-04-22 14:43:33 +00:00
note left of BaseTable::getDefault
2023-07-22 09:43:46 +00:00
Get a default field
since: 3.2.0
return: ?array
end note
2024-04-22 14:43:33 +00:00
note right of BaseTable::getDefaultKey
2023-07-22 09:43:46 +00:00
Get a default field property
since: 3.2.0
2024-04-22 14:43:33 +00:00
return: mixed
2023-07-22 09:43:46 +00:00
end note
2023-07-04 06:26:08 +00:00
@enduml
```
2024-07-16 12:12:10 +00:00
The Power feature in JCB allows you to write PHP classes and their implementations, making it easy to include them in your Joomla project. JCB handles linking, autoloading, namespacing, and folder structure creation for you.
By using the SPK (Super Power Key) in your custom code (replacing the class name in your code with the SPK), JCB will automatically pull the power from the repository into your project. This makes it available in your JCB instance, allowing you to edit it and include the class in your generated Joomla component.
JCB uses placeholders like [[[`NamespacePrefix`]]] and [[[`ComponentNamespace`]]] in namespacing to prevent collisions and improve reusability across different JCB systems. You can also set the **JCB powers path** globally or per component under the **Dynamic Integration** tab, providing flexibility and easy maintainability.
To add this specific Power to your project in JCB:
> simply use this SPK
```
Super---e0f6ddbe_2a35_4537_942c_faff2ebd04f6---Power
```
> remember to replace the `---` with `___` to activate this Power in your code
2023-07-04 06:26:08 +00:00
---
```
██╗ ██████╗██████╗
██║██╔════╝██╔══██╗
██║██║ ██████╔╝
██ ██║██║ ██╔══██╗
╚█████╔╝╚██████╗██████╔╝
╚════╝ ╚═════╝╚═════╝
```
> Build with [Joomla Component Builder](https://git.vdm.dev/joomla/Component-Builder)