Skip to content

Commit

Permalink
Etabliere Category und Entry als Model Class
Browse files Browse the repository at this point in the history
  • Loading branch information
alxndr-w committed Feb 15, 2025
1 parent 2b3c9e8 commit d223091
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 3 deletions.
9 changes: 7 additions & 2 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@
if (rex_addon::get('yform')->isAvailable() && !rex::isSafeMode()) {
rex_yform_manager_dataset::setModelClass(
'rex_blaupause',
Blaupause::class
Entry::class
);
rex_yform_manager_dataset::setModelClass(
'rex_blaupause_category',
Category::class
);
}
*/
Expand Down Expand Up @@ -94,6 +98,7 @@

/* Listendarstellung verändern
if (rex::isBackend()) {
rex_extension::register('YFORM_DATA_LIST', Blaupause::epYformDataList(...));
rex_extension::register('YFORM_DATA_LIST', Entry::epYformDataList(...));
rex_extension::register('YFORM_DATA_LIST', Category::epYformDataList(...));
}
*/
1 change: 1 addition & 0 deletions install/table-scheme.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<?php
2 changes: 1 addition & 1 deletion lib/blaupause.php → lib/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use rex_csrf_token;
use rex_url;

class Blaupause extends rex_yform_manager_dataset
class Entry extends rex_yform_manager_dataset
{
// https://github.com/yakamara/redaxo_yform/blob/master/docs/04_yorm.md#yorm-mit-eigener-model-class-verwenden
// Lasse dir die Klasse anhand deines Tablesets selbst bauen: https://github.com/alexplusde/ymca
Expand Down
56 changes: 56 additions & 0 deletions lib/Entry.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

namespace Alexplusde\Blaupause;

use rex_yform_manager_dataset;
use rex_extension_point;
use rex_csrf_token;
use rex_url;

class Entry extends rex_yform_manager_dataset
{
// https://github.com/yakamara/redaxo_yform/blob/master/docs/04_yorm.md#yorm-mit-eigener-model-class-verwenden
// Lasse dir die Klasse anhand deines Tablesets selbst bauen: https://github.com/alexplusde/ymca
// Nachfolgend ein Beispiel, um eigene Methoden zu erstellen
public function getName(): string
{
return $this->getValue('name');
}

public static function epYformDataList(rex_extension_point $ep)
{
/** @var rex_yform_manager_table $table */
$table = $ep->getParam('table');
if ($table->getTableName() !== self::table()->getTableName()) {
return;
}

/** @var rex_yform_list $list */
$list = $ep->getSubject();

$list->setColumnFormat(
'name',
'custom',
static function ($a) {
$_csrf_key = self::table()->getCSRFKey();
$token = rex_csrf_token::factory($_csrf_key)->getUrlParams();

$params = [];
$params['table_name'] = self::table()->getTableName();
$params['rex_yform_manager_popup'] = '0';
$params['_csrf_token'] = $token['_csrf_token'];
$params['data_id'] = $a['list']->getValue('id');
$params['func'] = 'edit';

return '<a href="' . rex_url::backendPage('neues/entry', $params) . '">' . $a['value'] . '</a>';
},
);
$list->setColumnFormat(
'id',
'custom',
static function ($a) {
return $a['value'];
},
);
}
}

0 comments on commit d223091

Please sign in to comment.