it solutions for special requirements

Schlagwort: joomla

Back in buisness …

Ok, enough is enough! Enough cake, enough Binge Watching, enough boardgames and old shool gaming (have you seen remastered versions of our childhood games? 😮🤩) …

More templates: We updated JoomLavel/documentation and we are proud to announce that more templates for JoomLavel/connect will be published on soon. Templates enhance JoomLavel/connect functionality and are nearly finished.

Laravel Joomla DB Integration: Finally we are about to publish JoomLavel/JoomaDbLink. This component of the JoomLavel platform allows to integrate Joomla Database with Lumen or Laravel in an easy intuitiv way (eloquent).

So stay tuned 🥳

JoomLavel Use Cases

Ok, JoomLavel, allows to integrate Laravel and Joomla but, how does this work? Here are four use cases how to integrate them together.

completeheavy on Joomlaheavy on LaravelOpenAPI
rapidly generate Joomla
rapidly generate Joomla
rapidly generate Joomla
rapidly connect Laravel
to Joomla DB
rapidly connect Laravel
to Joomla DB
connect api adapter with
adapter component
connect component with
remote laravel api
sync .env with
connect component with
remote OpenAPI definied
enchance both adapter
with custom code
enchance laravel
with custom code
develope representation
by custom code
Use Cases for JoomLavel platform

Every step in the integration process is done with RAD tools for rapid developement. A complete integration of Joomla and Laravel can be done in some minutes. Feel free to contact us if you want to know more.

More info on: or join us in github/joomlavel

JoomLavel Connect, Create Components rapidly (RAD)

we have finished a first MVP of our JoomLavel component generator.

Simply checkout our public github project:

git clone & compose

php JoomLavel make:component BobsFirstComponent --zip --verbose

… and enjoy component generation

In the working dirctory you can adjust your new component and import it as a zip file on a Joomla instance.

In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process.

Joomla, Laravel, JoomLavel und camelCase

Ein kleiner Überblick:

  • snake_case / lowercase => C / C++, (my favorite)
  • camelCase
  • PascalCase
  • kebab-case
WordPress CMSsnake_case
Joomla CMSPascalCasecamelCasecamelCase
Übersicht der Frameworks und der Schreibstile

In unserem JoomLavel Projekt halten wir uns an die Joomla und Laravel Stile. Es gibt bei Laravel natürlich folgendes zu bedenken:

By convention, the „snake case“, plural name of the class will be used as the table name unless another name is explicitly specified.

Somit wird der Tabellenname in der Datenbank im snake_case im plural angegeben. Das entsprechde Model im Laravelcode aber im PascalCase

Im Eloquent Beispiel sieht das so aus:

DB Tabelle: my_flights, Model: MyFlight

Im Frontend in HTML sollten Attribute im kebap-case geschrieben werden. Wenn wir z.B. das data-attribute nutzen.


make configuration.php beautiful

Joomla has a quite ugly configuration file. configuration.php is cluttered and sorted i a very strange way?

class JConfig {
	public $offline = '1';
	public $offline_message = 'Wartungsmodus';
	public $display_offline_message = '1';
	public $offline_image = '';
	public $sitename = 'joomlavel-joomla-dev';
	public $editor = 'tinymce';
	public $captcha = '0';
	public $list_limit = '20';
	public $access = '1';
	public $debug = '0';
	public $feed_email = 'none';
	public $log_path = '/logs';
	public $tmp_path = '/tmp';
	public $lifetime = '15';
	public $session_handler = 'database';
	public $shared_session = '0';

I really like and its twelve-factor app approach. configuration recommendation is to seperate config in a way that they are language- and OS-agnostic. But how to do this? Here is our approach:

    public function __construct(){
		if (file_exists(SELF::JoomLavelApiDirectory.'.env')) {
			$env = parse_ini_file (SELF::JoomLavelApiDirectory.'.env',false, INI_SCANNER_RAW);
			$this->sitename = $env['APP_NAME'];
			$this->debug = (int)filter_var($env['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN);;
			$this->live_site = $env['APP_URL'];
			$this->dbtype = $env['DB_CONNECTION'].'i';
			$this->host = $env['DB_HOST'];
			$this->db = $env['DB_DATABASE'];
			$this->user = $env['DB_USERNAME'];
			$this->password = $env['DB_PASSWORD'];
			$this->mailfrom = $env['MAIL_FROM_ADDRESS'];
			$this->fromname = $env['MAIL_FROM_NAME'];
			$this->smtpport = $env['MAIL_PORT'];
			$this->smtphost = $env['MAIL_HOST'];
			$this->smtpuser = $env['MAIL_USERNAME'];
			$this->smtppass = $env['MAIL_PASSWORD'];	

The configuration.php could also be seperated in blocks:

	public $live_site = '';
	public $sitename = "joomla";
	public $dbtype = 'mysqli';
	public $host = 'localhost';
	public $user = 'groot';
	public $password = '';
	public $db = 'joomlavel-dev';
	public $dbprefix = 'f862e_';
	public $session_handler = 'database';
	public $shared_session = '0';
	public $lifetime = '15';

You can see the files in our Github::JoomLavel project.

We have a baby, we have called it: JoomLavel,

In the last 2 years we have worked in complicated Joomla CMS project. The project has grown and we hit joomla limitations.

How to leave a vendor-lockin and joomla limitations? A REST API might be the solution. The Separation_of_concerns principle describes a seperation of a computer program in distinct sections.

JoomLavel allows you to use a modern laravel API backend in combination with your own joomla application. You can easily add functionalities in the laravel api to enchance joomla functionalities without changing the joomla framework code or joomla components or plugins.

joomLavel name creation

Checkout our Github documentation page:

More informations will be published the next days:

Wir haben DataTables entdeckt

DataTables von

Wir wollten eine einfache schlanke Lösung um tabellarisch Informationen anzuzeigen.

Uns wurde empfohlen. Wie setzen wir es ein?

Im Frontend reicht eine generische View. Einzelnen Views werden nur über eine einzelne .js Datei und den entsprechenden Backen-Endpoint definiert.

Wie sieht die generische View aus in einer Joomla componenten aus?


defined('_JEXEC') or die();

$application = JFactory::getApplication();
$document = JFactory::getDocument();


if (isset($this->scriptfilename)) {

if (isset($this->title)) {echo "<h2>".$this->title."</h2>";}

<table cellpadding="0" cellspacing="0" border="0" dataid="<?php echo $this->dataid; ?>" class="display mydatatable" id="<?php echo $this->scriptfilename; ?>" width="100%">


Die muss mir dem Parameter: „scriptfilename“ und ggf. dem „title“ definiert werden. „dataid“ ist ein Parameter mit dem wir ggf. im .js weiterarbeiten können.

Das entsprechende .js mit der DataTables definition wird über „addScript“ geladen.

Präsentiert von WordPress & Theme erstellt von Anders Norén