super-powers/README.md

23 KiB

███████╗██╗   ██╗██████╗ ███████╗██████╗
██╔════╝██║   ██║██╔══██╗██╔════╝██╔══██╗
███████╗██║   ██║██████╔╝█████╗  ██████╔╝
╚════██║██║   ██║██╔═══╝ ██╔══╝  ██╔══██╗
███████║╚██████╔╝██║     ███████╗██║  ██║
╚══════╝ ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═╝
██████╗  ██████╗ ██╗    ██╗███████╗██████╗ ███████╗
██╔══██╗██╔═══██╗██║    ██║██╔════╝██╔══██╗██╔════╝
██████╔╝██║   ██║██║ █╗ ██║█████╗  ██████╔╝███████╗
██╔═══╝ ██║   ██║██║███╗██║██╔══╝  ██╔══██╗╚════██║
██║     ╚██████╔╝╚███╔███╔╝███████╗██║  ██║███████║
╚═╝      ╚═════╝  ╚══╝╚══╝ ╚══════╝╚═╝  ╚═╝╚══════╝

What is JCB Super Powers?

The Joomla Component Builder (JCB) Super Power features are designed to enhance JCB's functionality and streamline the development process. These Super Powers enable developers to efficiently manage and share their custom powers across multiple JCB instances through repositories hosted on https://git.vdm.dev/[username]/[repository-name]. JCB Super Powers are managed using a combination of layers, events, tasks, methods, switches, and algorithms, which work together to provide powerful customization and extensibility options. More details on JCB Super Powers can be found in the Super Powers Documentation.

In summary, JCB Super Powers offer a flexible and efficient way to manage and share functionalities between JCB instances. By utilizing a sophisticated system of layers, events, tasks, methods, switches, and algorithms, developers can seamlessly integrate JCB core powers and their custom powers. For more information on how to work with JCB Super Powers, refer to the Super Powers User Guide.

What can I find here?

This repository contains an index (see below) of all the approved powers within the JCB GUI. During the compilation of a component, these powers are automatically added to the repository, ensuring a well-organized and accessible collection of functionalities.

Index of powers

Class Diagrams

VDM Joomla

namespace VDM\Joomla

@startuml

namespace VDM\Joomla #Azure {


  class Utilities << (T,Orange) >> #Turquoise {
    + static $langTag
    + {static} checkString() : bool
    + {static} shorten()
    + {static} safeString()
    + {static} safeClassFunctionName()
    + {static} safeFieldName()
    + {static} safeTypeName()
    + {static} safeNamespace()
    + {static} transliterate()
    + {static} htmlEscape()
    + {static} replaceNumbers()
    + {static} numberToString()
    + {static} randomkey() : string
    + {static} checkJson() : bool
    + {static} jsonToString()
    + {static} checkArray() : int
    + {static} mergeArrays()
    + {static} checkObject() : bool
    + {static} getVar() : mix
    + {static} getVars() : array
    + {static} getAllBetween() : array
    + {static} getBetween() : string
    + {static} bcmath() : float|int
    + {static} bcsum() : float|int
    + {static} createPluginClassName() : string
    + {static} GUID() : string
    + {static} validGUID() : bool
    + {static} getGUID() : mix
    # {static} validateGUID() : bool
    + {static} zip() : bool
    + {static} getFileContents() : string
    + {static} writeFile() : bool
    + {static} getAllFilePaths() : void
    + {static} getFilePath() : string
    + {static} urlExists() : bool
    + {static} setComponentOption()
  }
}


@enduml

VDM Joomla Componentbuilder

namespace VDM\Joomla\Componentbuilder

@startuml

namespace VDM\Joomla\Componentbuilder #DarkCyan {


  class Table  #Gold {
    + get() : mixed
    + title() : ?array
    + titleName() : string
    + tables() : array
    + exist() : bool
    + fields() : ?array
    # addDefault() : array
  }
}


@enduml

VDM Joomla Utilities

namespace VDM\Joomla\Utilities

@startuml

namespace VDM\Joomla\Utilities #DarkCyan {


  abstract ArrayHelper  #Orange {
    + {static} check()
    + {static} merge() : ?array
    + {static} intersect() : bool
  }

  abstract FileHelper  #Orange {
    # static $curlError
    + {static} zip() : bool
    + {static} getContent() : string
    + {static} write() : bool
    + {static} getPaths() : void
    + {static} getPath() : string
    + {static} exists() : bool
  }

  abstract GetHelper  #Orange {
    + {static} var() : mixed
    + {static} vars() : ?array
    + {static} allBetween() : ?array
    + {static} between() : string
  }

  abstract GuidHelper  #Orange {
    + {static} get() : string
    + {static} valid() : bool
    + {static} item() : mix
    # {static} validate() : bool
  }

  abstract JsonHelper  #Orange {
    + {static} check() : bool
    + {static} string()
  }

  abstract MathHelper  #Orange {
    + {static} bc() : int
    + {static} sum() : float
  }

  abstract ObjectHelper  #Orange {
    + {static} check()
    + {static} equal() : bool
  }

  abstract StringHelper  #Orange {
    + static $langTag
    + {static} check() : bool
    + {static} shorten()
    + {static} safe()
    + {static} transliterate()
    + {static} html()
    + {static} numbers()
    + {static} number()
    + {static} random() : string
  }
}


@enduml

VDM Joomla Componentbuilder Abstraction

namespace VDM\Joomla\Componentbuilder\Abstraction

@startuml

namespace VDM\Joomla\Componentbuilder\Abstraction #Olive {


  abstract BaseConfig  #Orange {
    # Input $input
    # JoomlaRegistry $params
    + __construct()
    + __set()
    + __get()
    + get() : mixed
    + appendArray() : mixed
  }

  abstract BaseRegistry  #Orange {
    + _() : ?\ArrayIterator
    + appendArray() : mixed
    + isArray() : bool
    + isString() : bool
    + isNumeric() : bool
  }

  abstract Database  #Orange {
    # \JDatabaseDriver $db
    # string $table
    + __construct()
    # quote() : mixed
    # getTable() : string
  }

  abstract Mapper  #Orange {
    + array $active
    + isActive() : bool
    + set() : void
    + get() : mixed
    + exist() : bool
    + add() : void
    + remove() : void
    # {abstract} key() : string
    + isActive_() : bool
    + set_() : void
    + get_() : mixed
    + exist_() : bool
    + add_() : void
    + remove_() : void
    # {abstract} firstKey() : string
    # {abstract} secondKey() : string
  }

  abstract MapperSingle  #Orange {
    + array $active
    + isActive() : bool
    + set() : void
    + get() : mixed
    + exist() : bool
    + add() : void
    + remove() : void
    # {abstract} key() : string
  }

  abstract Model  #Orange {
    # array $last
    # Table $table
    + __construct()
    + {abstract} value() : mixed
    + item() : ?object
    + items() : ?array
    + row() : ?array
    + rows() : ?array
    + last() : ?int
    # getTableFields() : ?array
    # {abstract} validateBefore() : bool
    # {abstract} validateAfter() : bool
    # {abstract} getTable() : string
  }
}


@enduml

VDM Joomla Componentbuilder Database

namespace VDM\Joomla\Componentbuilder\Database

@startuml

namespace VDM\Joomla\Componentbuilder\Database #Olive {


  class Insert << (F,LightGreen) >> #Green {
    # bool $defaults
    + defaults() : void
    + rows() : bool
    + items() : bool
    + row() : bool
    + item() : bool
    # getArrayColumns() : array
    # getObjectsColumns() : array
    # insert() : bool
  }

  class Load << (F,LightGreen) >> #Green {
    + rows() : ?array
    + items() : ?array
    + row() : ?array
    + item() : ?object
    + value() : mixed
    # many() : bool
    # one() : bool
    # query() : ?object
  }

  class Update << (F,LightGreen) >> #Green {
    + rows() : bool
    + items() : bool
    + row() : bool
    + item() : bool
  }
}


@enduml

VDM Joomla Componentbuilder Interfaces

namespace VDM\Joomla\Componentbuilder\Interfaces

@startuml

namespace VDM\Joomla\Componentbuilder\Interfaces #Olive {


  interface FactoryInterface  #Lavender {
    + {static} _() : Mixed
    + {static} getContainer() : Container
  }

  interface InsertInterface  #Lavender {
    + defaults() : void
    + rows() : bool
    + items() : bool
    + row() : bool
    + item() : bool
  }

  interface ModelInterface  #Lavender {
    + value() : mixed
    + item() : ?object
    + items() : ?array
    + row() : ?array
    + rows() : ?array
    + last() : ?int
  }

  interface UpdateInterface  #Lavender {
    + rows() : bool
    + items() : bool
    + row() : bool
    + item() : bool
  }
}


@enduml

VDM Joomla Componentbuilder Utilities

namespace VDM\Joomla\Componentbuilder\Utilities

@startuml

namespace VDM\Joomla\Componentbuilder\Utilities #Olive {


  abstract FilterHelper  #Orange {
    + {static} extensions() : string
    + {static} names() : ?array
    + {static} linked() : ?array
    + {static} namespaces() : ?array
    + {static} namegroup() : ?array
    + {static} translation() : ?array
    + {static} translations() : ?array
    + {static} languages() : ?array
    + {static} paths() : ?array
    - {static} joomla_component_admin_views() : ?array
    - {static} joomla_component_custom_admin_views() : ?array
    - {static} joomla_component_site_views() : ?array
    - {static} joomla_component() : ?array
    - {static} joomla_module() : ?array
    - {static} joomla_plugin() : ?array
    - {static} admin_view() : ?array
  }

  abstract FormHelper  #Orange {
    + {static} xml() : ?\SimpleXMLElement
    + {static} append() : void
    + {static} comment() : void
    + {static} attributes() : void
    + {static} options() : void
    + {static} field() : ?FormField
  }
}


@enduml

VDM Joomla Utilities Component

namespace VDM\Joomla\Utilities\Component

@startuml

namespace VDM\Joomla\Utilities\Component #Olive {


  abstract Helper  #Orange {
    + {static} getParams() : Registry
    + {static} getOption() : ?string
    + {static} getCode() : ?string
    + {static} get() : ?string
    + {static} methodExists() : bool
    + {static} _() : mixed
  }
}


@enduml

VDM Joomla Utilities String

namespace VDM\Joomla\Utilities\String

@startuml

namespace VDM\Joomla\Utilities\String #Olive {


  abstract ClassfunctionHelper  #Orange {
    + {static} safe() : string
  }

  abstract FieldHelper  #Orange {
    # static $builder
    + {static} safe()
  }

  abstract NamespaceHelper  #Orange {
    + {static} safe() : string
  }

  abstract PluginHelper  #Orange {
    + {static} safeFolderName() : string
    + {static} safeClassName() : string
    + {static} safeInstallClassName() : string
    + {static} safeLangPrefix() : string
  }

  abstract TypeHelper  #Orange {
    # static $builder
    + {static} safe()
  }
}


@enduml

     ██╗ ██████╗  ██████╗ ███╗   ███╗██╗      █████╗
     ██║██╔═══██╗██╔═══██╗████╗ ████║██║     ██╔══██╗
     ██║██║   ██║██║   ██║██╔████╔██║██║     ███████║
██   ██║██║   ██║██║   ██║██║╚██╔╝██║██║     ██╔══██║
╚█████╔╝╚██████╔╝╚██████╔╝██║ ╚═╝ ██║███████╗██║  ██║
 ╚════╝  ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚══════╝╚═╝  ╚═╝
 ██████╗ ██████╗ ███╗   ███╗██████╗  ██████╗ ███╗   ██╗███████╗███╗   ██╗████████╗
██╔════╝██╔═══██╗████╗ ████║██╔══██╗██╔═══██╗████╗  ██║██╔════╝████╗  ██║╚══██╔══╝
██║     ██║   ██║██╔████╔██║██████╔╝██║   ██║██╔██╗ ██║█████╗  ██╔██╗ ██║   ██║
██║     ██║   ██║██║╚██╔╝██║██╔═══╝ ██║   ██║██║╚██╗██║██╔══╝  ██║╚██╗██║   ██║
╚██████╗╚██████╔╝██║ ╚═╝ ██║██║     ╚██████╔╝██║ ╚████║███████╗██║ ╚████║   ██║
 ╚═════╝ ╚═════╝ ╚═╝     ╚═╝╚═╝      ╚═════╝ ╚═╝  ╚═══╝╚══════╝╚═╝  ╚═══╝   ╚═╝
██████╗ ██╗   ██╗██╗██╗     ██████╗ ███████╗██████╗
██╔══██╗██║   ██║██║██║     ██╔══██╗██╔════╝██╔══██╗
██████╔╝██║   ██║██║██║     ██║  ██║█████╗  ██████╔╝
██╔══██╗██║   ██║██║██║     ██║  ██║██╔══╝  ██╔══██╗
██████╔╝╚██████╔╝██║███████╗██████╔╝███████╗██║  ██║
╚═════╝  ╚═════╝ ╚═╝╚══════╝╚═════╝ ╚══════╝╚═╝  ╚═╝

Build with Joomla Component Builder