Migrating from Xajax

DE: von Xajax zu Jybrid

Für die Entwickler die Xajax kennen und mit Xajax bereits gearbeitet haben, möchte ich kurz auf ein paar konzeptionelle Änderungen eingehen.

Um Verwechslungen mit Xajax und dieser Weiterentwicklung von Xajax Jybrid zu vermeiden, wurden sämtliche "xajax" namen entfernt und gegen jybrid ausgetauscht. Ohnehin hatte sich an jybrid so viel verändert, dass die Verwendung des Bezeichners Xajax für die Kenner nicht mehr tragbar gewesen wäre.

In Xajax war es üblich, die Ajax-Requests direkt gegen eine Methode oder Klasse zu senden. Bereits beim initialen Laden der Page war diese Entscheidung notwendig.

In Jybrid wurde diese Sackgasse vollständig entfernt. Sämtliche jybrid-requests werden wie gehabt, gegen die Url geschickt. Die Entscheidung, ob ein Methoden- oder Klassenaufruf erfolgt, liegt dann im Ermessen des PhP-Entwicklers.

Das folgende Beispiel zeigt einen einfachen Aufbau vom normalen Page-Load über die Ajax-Request bis hin zur Verarbeitung mit PHP

EN: from Xajax to Jybrid

For the developers who know Xajax and have already worked with Xajax, I would like to talk about a few conceptual changes.

To avoid confusion with Xajax and this further development of Xajax Jybrid, all "xajax" names have been removed and replaced with jybrid. In any case, so much had changed in jybrid that the use of the term Xajax would no longer have been acceptable to the expert.

In Xajax, it was common practice to send the Ajax requests directly against a method or class. This decision was already necessary when loading the page.

In Jybrid, this dead end was completely removed. All jybrid-requests are sent against the url as usual. The decision as to whether a method or class is called is then at the discretion of the PhP developer.

The following example shows a simple structure from the normal page load to the Ajax request to processing with PHP

Register the Ajax-Request for initial/regular PageLoad
$myRequest = Jybrid\Plugins\Cms\Plugin::getRequest('myPost');

// getting the Button
$jybridRequestButton = $myRequest->getButtonScript();
Schematic HTML/Php Page-Parts
    <?php
    // Configuring the Button with the almost same parameters for the next 2 buttons
    $jybridRequestButton->addParameterArray(['task' => 'send_an_content_box'])
    ?>
    <?php
    // Adding extra Parameter for the next Button
    $btn = $jybridRequestButton->setGetValue('area_1', 'mySendArea') ?>
    <fieldset>
        <label><textarea name="area1" id="area_1"></textarea></label><br>
        <code>will be to: jybrid.Exe('myPost',{task:'send_an_content_box'},jybrid.getValue('area_1'));</code><br>
        <a href="javascript:" onclick="<?php echo $btn ?>">send area_1</a>
    </fieldset>
    <?php
    // "Reconfigure" the Button for the next field
     $btn = $jybridRequestButton->setGetValue('area_2', 'mySendArea') ?>
    <fieldset>
        <label><textarea name="area2" id="area_2"></textarea></label><br>
        <code>will be to: jybrid.Exe('myPost',{task:'send_an_content_box'},jybrid.getValue('area_2'));</code><br>
        <a href="javascript:" onclick="<?php echo $btn ?>">send area_2</a>
    </fieldset>
Catching Ajax-Request in PHP
if (Factory::isCmsRequest())
{
    $task = Factory::getInput()->getWord('task');

    switch($task){
        case 'send_an_content_box':
            // handle content with class or method or inline
            break;
    }
// Render the Ajax Response and finish(if wanted)
Jybrid\Factory::getInstance()->processRequest();
}

Thus, xajax comes out of the CMS trap by making jybrid equally suitable for content management systems and linear systems. In xajax this was rather possible against linear systems

Xajax send parameter vs. Jybrid send parameter encapsulated method call

xajax

xajax_myPost({key:'value'});

jybrid

jybrid.Exe('myPost',{key:'value'});