]> gitweb.hamatoma.de Git - gadeku.git/commitdiff
V 0.2.1 Modul Page
authorHamatoma <author@hamatoma.de>
Thu, 25 Apr 2024 16:32:19 +0000 (18:32 +0200)
committerHamatoma <author@hamatoma.de>
Thu, 25 Apr 2024 16:32:19 +0000 (18:32 +0200)
Added
- Modul Page, ersetzt Article

Deleted
- Modul Article, wird durch Page ersetzt

25 files changed:
CHANGELOG.md
app/Helpers/dummy.html
app/Http/Controllers/ArticleController.php [deleted file]
app/Http/Controllers/PageController.php [new symlink]
app/Http/Controllers/WordController.php
app/Models/Article.php [deleted file]
app/Models/Page.php [new symlink]
composer.lock
database/migrations/2024_04_21_092103_create_articles_table.php [deleted file]
database/migrations/2024_04_21_092103_create_pages_table.php [new symlink]
database/seeders/MenuitemArticleSeeder.php [deleted file]
database/seeders/PageLocalSeeder.php [new file with mode: 0644]
database/seeders/PageSeeder.php [new symlink]
database/seeders/SPropertyArticleSeeder.php [deleted file]
lang/de_DE.json
missing.seeders
resources/lang/sources/gadeku.de.json
resources/views/article/create.blade.php [deleted file]
resources/views/article/edit.blade.php [deleted file]
resources/views/article/index.blade.php [deleted file]
resources/views/article/show.blade.php [deleted file]
resources/views/article/showpretty.blade.php [deleted file]
resources/views/layouts/gadeku.blade.php
resources/views/page [new symlink]
routes/web.php

index 77e2e0aa21806aef8818be4e2c910b2992c9b59a..2c4ef2bbf48111905ba44e169e61a96fc2c40f19 100644 (file)
@@ -1,3 +1,12 @@
+# V 0.2.1 Modul Page
+
+## Added
+- Modul Page, ersetzt Article
+
+## Deleted
+- Modul Article, wird durch Page ersetzt
+
+
 # V 0.2.0 Module Article
 
 ## Added
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..793860b0a28a606889fc9400a49e942ae9ae8ff4 100644 (file)
@@ -0,0 +1,6 @@
+<html>
+
+<body>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php
deleted file mode 100644 (file)
index 6f02c0b..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-<?php
-
-namespace App\Http\Controllers;
-
-use App\Models\File;
-use App\Models\Module;
-use App\Helpers\Helper;
-use App\Models\Article;
-use App\Helpers\DbHelper;
-use App\Models\SProperty;
-use App\Helpers\MediaWiki;
-use App\Helpers\FileHelper;
-use App\Helpers\Pagination;
-use App\Helpers\ViewHelper;
-use Illuminate\Http\Request;
-use App\Helpers\TextProcessor;
-use App\Helpers\ContextLaraKnife;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Route;
-use Illuminate\Support\Facades\Validator;
-
-class ArticleController extends Controller
-{
-    private function asPreview(Article $article): string
-    {
-        $type = $article->markup_scope;
-        switch ($type) {
-            case 1122: // mediawiki
-                $wiki = new MediaWiki();
-                $text = $wiki->ToHtml($article->contents);
-                break;
-            case 1223: // html
-                $text = $article->contents;
-                break;
-            default:
-            case 1121: // plain text
-                $text = '<p>' . str_replace('/\r?\n/', "</p>\n<p>", $article->contents) . "</p>";
-                break;
-        }
-        return $text;
-    }
-    /**
-     * Show the form for creating a new resource.
-     */
-    public function create(Request $request)
-    {
-        if ($request->btnSubmit === 'btnCancel') {
-            $rc = redirect('/article-index');
-        } else {
-            $fields = $request->all();
-            if (count($fields) === 0) {
-                $fields = [
-                    'title' => '',
-                    'contents' => '',
-                    'info' => '',
-                    'articletype_scope' => '',
-                    'markup_scope' => '1122',
-                    'order' => '0',
-                    'audio_id' => ''
-                ];
-            }
-            $optionsArticletype = SProperty::optionsByScope('articletype', $fields['articletype_scope'], '-');
-            $optionsMarkup = SProperty::optionsByScope('markup', $fields['markup_scope'], '-');
-            $context = new ContextLaraKnife($request, $fields);
-            $rc = view('article.create', [
-                'context' => $context,
-                'optionsArticletype' => $optionsArticletype,
-                'optionsMarkup' => $optionsMarkup,
-            ]);
-        }
-        return $rc;
-    }
-    /**
-     * Show the form for editing the specified resource.
-     */
-    public function edit(Article $article, Request $request)
-    {
-        if ($request->btnSubmit === 'btnCancel') {
-            $rc = redirect('/article-index');
-        } elseif ($request->btnSubmit === 'btnStore') {
-            $rc = $this->update($article, $request);
-        } else {
-            $fields = $request->all();
-            if (count($fields) === 0) {
-                $fields = [
-                    'title' => $article->title,
-                    'contents' => $article->contents,
-                    'info' => $article->info,
-                    'articletype_scope' => $article->articletype_scope,
-                    'markup_scope' => $article->markup_scope,
-                    'order' => $article->order ?? '0',
-                    'audio_id' => $article->audio_id
-                ];
-            } else {
-                $fields['articletype_scope'] = $article->articletype_scope;
-                $fields['markup_scope'] = $article->markup_scope;
-            }
-            $optionsArticletype = SProperty::optionsByScope('articletype', $article->articletype_scope, '');
-            $optionsMarkup = SProperty::optionsByScope('markup', $article->markup_scope, '');
-            $fields = $request->btnSubmit !== 'btnPreview' ? null : ['preview' => $this->asPreview($article)];
-            $context = new ContextLaraKnife($request, $fields, $article);
-            $rc = view('article.edit', [
-                'context' => $context,
-                'optionsArticletype' => $optionsArticletype,
-                'optionsMarkup' => $optionsMarkup,
-            ]);
-        }
-        return $rc;
-    }
-    /**
-     * Remove the specified resource from storage.
-     */
-    public function destroy(Article $article, Request $request)
-    {
-        if ($request->btnSubmit === 'btnDelete') {
-            $article->delete();
-        }
-        return redirect('/article-index');
-    }
-    /**
-     * Display the database records of the resource.
-     */
-    public function index(Request $request)
-    {
-        if ($request->btnSubmit === 'btnNew') {
-            return redirect('/article-create');
-        } else {
-            $sql = "
-SELECT t0.*,
-  t1.name as articletype_scope,
-  t2.name as markup_scope,
-  t3.name as audio_id
-FROM articles t0
-LEFT JOIN sproperties t1 ON t1.id=t0.articletype_scope
-LEFT JOIN sproperties t2 ON t2.id=t0.markup_scope
-LEFT JOIN sproperties t3 ON t3.id=t0.audio_id
-";
-            $parameters = [];
-            $fields = $request->all();
-            if (count($fields) == 0) {
-                $fields = [
-                    'articletype' => '',
-                    'markup' => '',
-                    'text' => '',
-                    '_sortParams' => 'title:asc;id:asc'
-                ];
-            } else {
-                $conditions = [];
-                ViewHelper::addConditionComparism($conditions, $parameters, 'articletype_scope', 'articletype');
-                ViewHelper::addConditionComparism($conditions, $parameters, 'markup_scope', 'markup');
-                ViewHelper::addConditionPattern($conditions, $parameters, 'title,info,contents', 'text');
-                $sql = DbHelper::addConditions($sql, $conditions);
-            }
-            $sql = DbHelper::addOrderBy($sql, $fields['_sortParams']);
-            $pagination = new Pagination($sql, $parameters, $fields);
-            $records = $pagination->records;
-            $optionsArticletype = SProperty::optionsByScope('articletype', $fields['articletype'], 'all');
-            $optionsMarkup = SProperty::optionsByScope('markup', $fields['markup'], 'all');
-            $context = new ContextLaraKnife($request, $fields);
-            return view('article.index', [
-                'context' => $context,
-                'records' => $records,
-                'optionsArticletype' => $optionsArticletype,
-                'optionsMarkup' => $optionsMarkup,
-                'pagination' => $pagination
-            ]);
-        }
-    }
-    /**
-     * Returns the validation rules.
-     * @return array<string, string> The validation rules.
-     */
-    private function rules(bool $isCreate = false): array
-    {
-        $rc = [
-            'title' => 'required',
-            'contents' => 'required',
-            'info' => '',
-            'order' => 'integer|min:0|max:9999'
-        ];
-        if ($isCreate) {
-            $rc['markup_scope'] = 'required';
-            $rc['articletype_scope'] = 'required';
-        }
-        return $rc;
-    }
-    public static function routes()
-    {
-        Route::get('/article-index', [ArticleController::class, 'index'])->middleware('auth');
-        Route::post('/article-index', [ArticleController::class, 'index'])->middleware('auth');
-        Route::get('/article-create', [ArticleController::class, 'create'])->middleware('auth');
-        Route::put('/article-store', [ArticleController::class, 'store'])->middleware('auth');
-        Route::post('/article-edit/{article}', [ArticleController::class, 'edit'])->middleware('auth');
-        Route::get('/article-edit/{article}', [ArticleController::class, 'edit'])->middleware('auth');
-        Route::post('/article-update/{article}', [ArticleController::class, 'update'])->middleware('auth');
-        Route::get('/article-show/{article}/delete', [ArticleController::class, 'show'])->middleware('auth');
-        Route::delete('/article-show/{article}/delete', [ArticleController::class, 'destroy'])->middleware('auth');
-        Route::get('/article-showpretty/{article}', [ArticleController::class, 'showPretty'])->middleware('auth');
-        Route::post('/article-showpretty/{article}', [ArticleController::class, 'showPretty'])->middleware('auth');
-    }
-    /**
-     * Display the specified resource.
-     */
-    public function show(Article $article, Request $request)
-    {
-        if ($request->btnSubmit === 'btnCancel') {
-            $rc = redirect('/article-index')->middleware('auth');
-        } else {
-            $optionsArticletype = SProperty::optionsByScope('articletype', $article->articletype_scope, '');
-            $optionsMarkup = SProperty::optionsByScope('markup', $article->markup_scope, '');
-            $context = new ContextLaraKnife($request, null, $article);
-            $rc = view('article.show', [
-                'context' => $context,
-                'optionsArticletype' => $optionsArticletype,
-                'optionsMarkup' => $optionsMarkup,
-                'mode' => 'delete'
-            ]);
-        }
-        return $rc;
-    }
-    public function showPretty(Article $article, Request $request)
-    {
-        if ($request->btnSubmit === 'btnCancel') {
-            $rc = redirect('/article-index')->middleware('auth');
-        } else {
-            $text = $this->asPreview($article);
-            $link = $article->audio_id == null ? null : File::relativeFileLink($article->audio_id);
-            $context = new ContextLaraKnife($request, ['text' => $text, 'link' => $link], $article);
-            $rc = view('article.showpretty', [
-                'context' => $context,
-                'mode' => 'delete'
-            ]);
-        }
-        return $rc;
-    }
-
-    /**
-     * Store a newly created resource in storage.
-     */
-    public function store(Request $request)
-    {
-        $rc = null;
-        if ($request->btnSubmit === 'btnStore') {
-            $fields = $request->all();
-            $validator = Validator::make($fields, $this->rules(true));
-            if ($validator->fails()) {
-                $rc = back()->withErrors($validator)->withInput();
-            } else {
-                $validated = $validator->validated();
-                $validated['info'] = strip_tags($validated['info']);
-                $validated['contents'] = TextProcessor::expandStarItems(strip_tags($validated['contents']));
-                Article::create($validated);
-            }
-        }
-        if ($rc == null) {
-            $rc = redirect('/article-index');
-        }
-        return $rc;
-    }
-    /**
-     * Update the specified resource in storage.
-     */
-    public function update(Article $article, Request $request)
-    {
-        $rc = null;
-        if ($request->btnSubmit === 'btnStore') {
-            $fields = $request->all();
-            $validator = Validator::make($fields, $this->rules(false));
-            if ($validator->fails()) {
-                $rc = back()->withErrors($validator)->withInput();
-            } else {
-                $validated = $validator->validated();
-                $validated['info'] = strip_tags($validated['info']);
-                if (empty($article->audio_id) && $request->file('file') != null) {
-                    $filename = FileHelper::textToFilename($article->title);
-                    $moduleId = Module::idOfModule('Article');
-                    $fileId = File::storeFile($request, $article->title, 1103, 1091, 'audio file of article', $filename, $moduleId, $article->id);
-                    $validated['audio_id'] = $fileId;
-                }
-                $article->update($validated);
-            }
-        }
-        if ($rc == null) {
-            $rc = redirect("/article-edit/$article->id");
-        }
-        return $rc;
-    }
-}
diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php
new file mode 120000 (symlink)
index 0000000..eefdef5
--- /dev/null
@@ -0,0 +1 @@
+../../../vendor/hamatoma/laraknife/templates/Http/Controllers/PageController.php
\ No newline at end of file
index 15b540283dc256875925cb544d82e4e479cd25b3..18bd4b9f790bc3b23126f305e3d4f6c264d03f5c 100644 (file)
@@ -73,8 +73,7 @@ class WordController extends Controller
                     'word' => $word->word,
                     'usage' => $phrase->phrase,
                     'wordtype_scope' => $phrase->wordtype_scope,
-                    'language' => $request->language,
-                    'language' => SProperty::idOfLocalization(),
+                    'language' => SProperty::idOfLocalization(auth()->user()->localization),
                     'lastLanguage' => '',
                     'translation' => ''
                 ];
diff --git a/app/Models/Article.php b/app/Models/Article.php
deleted file mode 100644 (file)
index 2cd86c8..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace App\Models;
-
-use Illuminate\Database\Eloquent\Collection;
-use Illuminate\Support\Facades\DB;
-use Hamatoma\Laraknife\ViewHelpers;
-use Illuminate\Database\Eloquent\Model;
-use Illuminate\Database\Eloquent\Factories\HasFactory;
-
-class Article extends Model
-{
-    use HasFactory;
-    protected $table = 'articles';
-    protected $fillable = [
-        'title',
-        'contents',
-        'info',
-        'articletype_scope',
-        'markup_scope',
-        'order',
-        'audio_id'
-    ];
-}
diff --git a/app/Models/Page.php b/app/Models/Page.php
new file mode 120000 (symlink)
index 0000000..765f596
--- /dev/null
@@ -0,0 +1 @@
+../../vendor/hamatoma/laraknife/templates/Models/Page.php
\ No newline at end of file
index dbd901f19d121f218448f87946f3802531b14773..74f088baf95cda8babc09d242fbcc587a819757e 100644 (file)
             "dist": {
                 "type": "path",
                 "url": "../laraknife",
-                "reference": "d680038f94e633d0eb91a1f1d0220a0682f2dae3"
+                "reference": "da72a7038fb52b0a6aeeb7c75b89094d5b5c705c"
             },
             "require-dev": {
                 "phpunit/phpunit": "11.0.x-dev"
         },
         {
             "name": "laravel/framework",
-            "version": "v11.4.0",
+            "version": "v11.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/framework.git",
-                "reference": "c1dc67c28811dc5be524a30b18f29ce62126716a"
+                "reference": "e3c24268f1404805e15099b9f035fe310cb30753"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/framework/zipball/c1dc67c28811dc5be524a30b18f29ce62126716a",
-                "reference": "c1dc67c28811dc5be524a30b18f29ce62126716a",
+                "url": "https://api.github.com/repos/laravel/framework/zipball/e3c24268f1404805e15099b9f035fe310cb30753",
+                "reference": "e3c24268f1404805e15099b9f035fe310cb30753",
                 "shasum": ""
             },
             "require": {
                 "issues": "https://github.com/laravel/framework/issues",
                 "source": "https://github.com/laravel/framework"
             },
-            "time": "2024-04-16T14:38:51+00:00"
+            "time": "2024-04-23T15:11:31+00:00"
         },
         {
             "name": "laravel/prompts",
-            "version": "v0.1.19",
+            "version": "v0.1.20",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/prompts.git",
-                "reference": "0ab75ac3434d9f610c5691758a6146a3d1940c18"
+                "reference": "bf9a360c484976692de0f3792f30066f4f4b34a2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/prompts/zipball/0ab75ac3434d9f610c5691758a6146a3d1940c18",
-                "reference": "0ab75ac3434d9f610c5691758a6146a3d1940c18",
+                "url": "https://api.github.com/repos/laravel/prompts/zipball/bf9a360c484976692de0f3792f30066f4f4b34a2",
+                "reference": "bf9a360c484976692de0f3792f30066f4f4b34a2",
                 "shasum": ""
             },
             "require": {
             ],
             "support": {
                 "issues": "https://github.com/laravel/prompts/issues",
-                "source": "https://github.com/laravel/prompts/tree/v0.1.19"
+                "source": "https://github.com/laravel/prompts/tree/v0.1.20"
             },
-            "time": "2024-04-16T14:20:35+00:00"
+            "time": "2024-04-18T00:45:25+00:00"
         },
         {
             "name": "laravel/serializable-closure",
         },
         {
             "name": "laravel/pint",
-            "version": "v1.15.1",
+            "version": "v1.15.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/pint.git",
-                "reference": "5f288b5e79938cc72f5c298d384e639de87507c6"
+                "reference": "2c9f8004899815f3f0ee3cb28ef7281e2b589134"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/pint/zipball/5f288b5e79938cc72f5c298d384e639de87507c6",
-                "reference": "5f288b5e79938cc72f5c298d384e639de87507c6",
+                "url": "https://api.github.com/repos/laravel/pint/zipball/2c9f8004899815f3f0ee3cb28ef7281e2b589134",
+                "reference": "2c9f8004899815f3f0ee3cb28ef7281e2b589134",
                 "shasum": ""
             },
             "require": {
                 "php": "^8.1.0"
             },
             "require-dev": {
-                "friendsofphp/php-cs-fixer": "^3.52.1",
-                "illuminate/view": "^10.48.4",
-                "larastan/larastan": "^2.9.2",
+                "friendsofphp/php-cs-fixer": "^3.54.0",
+                "illuminate/view": "^10.48.8",
+                "larastan/larastan": "^2.9.5",
                 "laravel-zero/framework": "^10.3.0",
                 "mockery/mockery": "^1.6.11",
                 "nunomaduro/termwind": "^1.15.1",
-                "pestphp/pest": "^2.34.5"
+                "pestphp/pest": "^2.34.7"
             },
             "bin": [
                 "builds/pint"
                 "issues": "https://github.com/laravel/pint/issues",
                 "source": "https://github.com/laravel/pint"
             },
-            "time": "2024-04-02T14:28:47+00:00"
+            "time": "2024-04-23T15:42:34+00:00"
         },
         {
             "name": "laravel/sail",
         },
         {
             "name": "phpunit/phpunit",
-            "version": "10.5.19",
+            "version": "10.5.20",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "c726f0de022368f6ed103e452a765d3304a996a4"
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c726f0de022368f6ed103e452a765d3304a996a4",
-                "reference": "c726f0de022368f6ed103e452a765d3304a996a4",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
                 "shasum": ""
             },
             "require": {
             "support": {
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.19"
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
             },
             "funding": [
                 {
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-04-17T14:06:18+00:00"
+            "time": "2024-04-24T06:32:35+00:00"
         },
         {
             "name": "sebastian/cli-parser",
         },
         {
             "name": "spatie/backtrace",
-            "version": "1.5.3",
+            "version": "1.6.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/spatie/backtrace.git",
-                "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab"
+                "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab",
-                "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab",
+                "url": "https://api.github.com/repos/spatie/backtrace/zipball/8373b9d51638292e3bfd736a9c19a654111b4a23",
+                "reference": "8373b9d51638292e3bfd736a9c19a654111b4a23",
                 "shasum": ""
             },
             "require": {
             },
             "require-dev": {
                 "ext-json": "*",
+                "laravel/serializable-closure": "^1.3",
                 "phpunit/phpunit": "^9.3",
                 "spatie/phpunit-snapshot-assertions": "^4.2",
                 "symfony/var-dumper": "^5.1"
                 "spatie"
             ],
             "support": {
-                "source": "https://github.com/spatie/backtrace/tree/1.5.3"
+                "source": "https://github.com/spatie/backtrace/tree/1.6.1"
             },
             "funding": [
                 {
                     "type": "other"
                 }
             ],
-            "time": "2023-06-28T12:59:17+00:00"
+            "time": "2024-04-24T13:22:11+00:00"
         },
         {
             "name": "spatie/flare-client-php",
diff --git a/database/migrations/2024_04_21_092103_create_articles_table.php b/database/migrations/2024_04_21_092103_create_articles_table.php
deleted file mode 100644 (file)
index fb1f220..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-use Illuminate\Database\Migrations\Migration;
-use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Schema;
-
-return new class extends Migration
-{
-    /**
-     * Run the migrations.
-     */
-    public function up(): void
-    {
-        Schema::create('articles', function (Blueprint $table) {
-            $table->id();
-            $table->timestamps();
-            $table->string('title');
-            $table->text('contents');
-            $table->text('info')->nullable();
-            $table->integer('articletype_scope');
-            $table->integer('markup_scope');
-            $table->integer('order')->nullable();
-            $table->foreignId('audio_id')->nullable()->references('id')->on('files');
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     */
-    public function down(): void
-    {
-        Schema::dropIfExists('articles');
-    }
-};
diff --git a/database/migrations/2024_04_21_092103_create_pages_table.php b/database/migrations/2024_04_21_092103_create_pages_table.php
new file mode 120000 (symlink)
index 0000000..558b3d7
--- /dev/null
@@ -0,0 +1 @@
+../../vendor/hamatoma/laraknife/templates/database/migrations/2024_04_21_092103_create_pages_table.php
\ No newline at end of file
diff --git a/database/seeders/MenuitemArticleSeeder.php b/database/seeders/MenuitemArticleSeeder.php
deleted file mode 100644 (file)
index 4680a8d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace Database\Seeders;
-
-use App\Models\Module;
-use App\Models\Menuitem;
-use Illuminate\Database\Seeder;
-use Illuminate\Database\Console\Seeds\WithoutModelEvents;
-
-class MenuitemArticleSeeder extends Seeder
-{
-    /**
-     * Run the database seeds.
-     */
-    public function run(): void
-    {
-        Menuitem::insertIfNotExists('articles', 'bi bi-journals');
-        Module::insertIfNotExists('Article');
-    }
-}
diff --git a/database/seeders/PageLocalSeeder.php b/database/seeders/PageLocalSeeder.php
new file mode 100644 (file)
index 0000000..a270976
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+namespace Database\Seeders;
+
+use App\Models\SProperty;
+use Illuminate\Database\Seeder;
+use Illuminate\Database\Console\Seeds\WithoutModelEvents;
+
+class PageLocalSeeder extends Seeder
+{
+    /**
+     * Run the database seeds.
+     */
+    public function run(): void
+    {
+        SProperty::insertIfNotExists(2031, 'pagetype', 'chapter', 110, 'CH');
+        SProperty::insertIfNotExists(2032, 'pagetype', 'grammar rules', 120, 'GR');
+        SProperty::insertIfNotExists(2033, 'pagetype', 'cloze text', 130, 'CT');
+        SProperty::insertIfNotExists(2034, 'pagetype', 'free text', 140, 'FT');
+        SProperty::insertIfNotExists(2035, 'pagetype', 'snake text', 150, 'ST');
+    }
+}
diff --git a/database/seeders/PageSeeder.php b/database/seeders/PageSeeder.php
new file mode 120000 (symlink)
index 0000000..edbe88b
--- /dev/null
@@ -0,0 +1 @@
+../../vendor/hamatoma/laraknife/templates/database/seeders/PageSeeder.php
\ No newline at end of file
diff --git a/database/seeders/SPropertyArticleSeeder.php b/database/seeders/SPropertyArticleSeeder.php
deleted file mode 100644 (file)
index 00b039e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace Database\Seeders;
-
-use App\Models\SProperty;
-use Illuminate\Database\Seeder;
-use Illuminate\Database\Console\Seeds\WithoutModelEvents;
-
-class SPropertyArticleSeeder extends Seeder
-{
-    /**
-     * Run the database seeds.
-     */
-    public function run(): void
-    {
-        SProperty::insertIfNotExists(1121, 'markup', 'plain text', 10, 'PT');
-        SProperty::insertIfNotExists(1122, 'markup', 'mediawiki', 20, 'MW');
-        SProperty::insertIfNotExists(1123, 'markup', 'HTML', 30, 'HL');
-
-        SProperty::insertIfNotExists(2031, 'articletype', 'chapter', 10, 'CH');
-        SProperty::insertIfNotExists(2032, 'articletype', 'grammar rules', 20, 'CH');
-        SProperty::insertIfNotExists(2033, 'articletype', 'cloze text', 30, 'CT');
-        SProperty::insertIfNotExists(2034, 'articletype', 'free text', 40, 'FT');
-        SProperty::insertIfNotExists(2035, 'articletype', 'snake text', 50, 'FT');
-    }
-}
index 8ee07db02bad4fedacbe08dd226f9687490f6ee8..7f38a41604863ba7bdf91fde66305d2a1d26e3c1 100644 (file)
@@ -9,9 +9,6 @@
     "Adjective": "Adjektiv",
     "Administrator": "Administrator",
     "All": "Alle",
-    "Article": "Artikel",
-    "Articles": "Artikel",
-    "Articletype": "Artikeltyp",
     "Assign Roles": "Rollen zuordnen",
     "Body": "Info",
     "Cancel": "Abbrechen",
@@ -29,7 +26,6 @@
     "Change of a Term": "\u00c4ndern eines Termins",
     "Change of a Verb": "\u00c4nderung eines Verbs",
     "Change of a Word": "\u00c4nderung eines Wortes",
-    "Change of an Article": "\u00c4nderung eines Artikels",
     "Change of an User": "\u00c4ndern eines Benutzers",
     "Chapter": "Kapitel",
     "Chapters": "Kapitel",
     "Creation of a File": "Hochladen einer Datei",
     "Creation of a Menu Item": "Erstellen eine Men\u00fceintrags",
     "Creation of a Note": "Erstellen einer Notiz",
+    "Creation of a Page": "Neue Seite",
     "Creation of a Role": "Erstellen eine Rolle",
     "Creation of a Scoped Property": "Erzeugen einer bereichsbasierten Eigenschaft",
     "Creation of a Term": "Erstellen eines Termins",
     "Creation of a Verb": "Neues Verb",
-    "Creation of an Article": "Neuer Artikel",
     "Creation of an User": "Erstellen eines Benutzers",
     "Date": "Datum",
     "Delete": "L\u00f6schen",
     "Deletion of a Menu Item": "L\u00f6schen eines Men\u00fceintrags",
     "Deletion of a Note": "L\u00f6schen einer Notiz",
     "Deletion of a Noun": "L\u00f6schen eines Nomens",
+    "Deletion of a Page": "L\u00f6schen einer Seite",
     "Deletion of a Scoped Property": "L\u00f6schen einer bereichsbasierten Eigenschaft",
     "Deletion of a Verb": "L\u00f6schen eines Verbs",
     "Deletion of a Word": "L\u00f6schen eines Wortes",
-    "Deletion of an Article": "L\u00f6schen eines Artikels",
     "Deletion of an User": "L\u00f6schen eines Benutzers",
     "Description": "Beschreibung",
     "Displaying an User": "Anzeige eines Benutzers",
     "Overview": "\u00dcberblick",
     "Overwrites the upload name (if not empty)": "\u00dcberschreibt den Hochladenamen (wenn nicht leer)",
     "Owner": "Besitzer",
+    "Page": "Seite",
+    "Pages": "Seite",
+    "Pagetype": "Seitentyp",
     "Participle": "Partizip",
     "Password": "Passwort",
     "Password forgotten?": "Passwort vergessen?",
     "Phrases": "S\u00e4tze",
     "Please use the following link and change your password:": "Bitte benutze den folgenden Verweis und \u00e4ndere dein Passwort",
     "Preposition": "Pr\u00e4position",
+    "Preview": "Vorschau",
     "Privacy": "Datenschutz",
     "Properties": "Eigenschaften",
     "Remain signed in": "Angemeldet bleiben",
     "ZZZ-last": "",
     "ZZZZZ_last": "",
     "active": "aktiv",
-    "articletype": "Artikeltyp",
     "chapter": "Kapitel",
     "closed": "geschlossen",
     "cloze text": "L\u00fcckentext",
     "feminine": "Femininum",
     "free text": "Freier Text",
     "grammar rules": "Grammatikregeln",
+    "help": "Hilfe",
     "icon": "Bildsymbol",
     "inactive": "nicht aktiv",
     "label": "Beschriftung",
     "link": "Verweis",
     "markdown simple": "einfache Markierungssprache",
     "masculine": "Maskulinum",
+    "menu": "Men\u00fc",
     "neuter": "Neutrum",
     "open": "offen",
+    "pagetype": "Seitentyp",
     "plain text": "reiner Text",
     "private": "privat",
     "public": "\u00f6ffentlich",
index 6c99dbfa1847f7a6756d5160aeeb52007856873c..897f4ffdaaa8f03eb4fed5935796438e30e09218 100644 (file)
@@ -1,3 +1,3 @@
 # Enter the module names separated by " ".
 # Example: MISSING="User Role Menuitem"
-MISSING="Chapter SPropertyAudio ModuleGaDeKu SPropertyArticle"
+MISSING="Chapter SPropertyAudio ModuleGaDeKu Page PageLocal"
index ddab090626c03195fd2bf3aa2c30e95ec8b017d5..e5aa0395d0bbab2b3a87001eefcf4487f8b89c01 100644 (file)
@@ -2,11 +2,6 @@
 "!comment": "Bitte alphabetisch sortiert eintragen!",
 "<Not verified>": "<Nicht verifiziert>",
 "Adjective": "Adjektiv",
-"Article": "Artikel",
-"Articles": "Artikel",
-"articletype": "Artikeltyp",
-"Articletype": "Artikeltyp",
-"Change of an Article": "Änderung eines Artikels",
 "Change of a Chapter": "Änderung eines Kapitels",
 "Change of a Noun": "Änderung eines Nomens",
 "Change of a Phrase": "Änderung eines Satzes",
 "Chapters": "Kapitel",
 "cloze text": "Lückentext",
 "Contents": "Inhalt",
-"Creation of an Article": "Neuer Artikel",
 "Creation of a Chapter": "Neues Kapitel",
 "Creation of a Verb": "Neues Verb",
-"Deletion of an Article": "Löschen eines Artikels",
 "Deletion of a Noun": "Löschen eines Nomens",
 "Deletion of a Verb": "Löschen eines Verbs",
 "Deletion of a Word": "Löschen eines Wortes",
diff --git a/resources/views/article/create.blade.php b/resources/views/article/create.blade.php
deleted file mode 100644 (file)
index 87a8715..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-@extends('layouts.backend')
-
-@section('content')
-    <form id="article-create" action="/article-store" method="POST">
-        @csrf
-        @method('PUT')
-        <x-laraknife.panels.create title="{{ __('Creation of an Article') }}">
-            <x-laraknife.forms.combobox position="first" name="articletype_scope" label="Articletype" :options="$optionsArticletype"
-                width2="4" />
-            <x-laraknife.forms.combobox position="last" name="markup_scope" label="Markup" :options="$optionsMarkup" width2="4" />
-            <x-laraknife.forms.string position="alone" name="title" label="Title"
-                value="{{ $context->valueOf('title') }}" width2="10" />
-            <x-laraknife.forms.text position="alone" name="contents" label="Contents"
-                value="{{ $context->valueOf('contents') }}" width2="10" rows="10" />
-            <x-laraknife.forms.text position="alone" name="info" label="Info" value="{{ $context->valueOf('info') }}"
-                width2="10" rows="2" />
-        </x-laraknife.panels.create>
-    </form>
-@endsection
diff --git a/resources/views/article/edit.blade.php b/resources/views/article/edit.blade.php
deleted file mode 100644 (file)
index 20e34a1..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-@extends('layouts.backend')
-
-@section('content')
-    <form id="article-edit" action="/article-edit/{{ $context->model->id }}" method="POST">
-        @csrf
-        <x-laraknife.panels.edit title="{{ __('Change of an Article') }}">
-            <x-laraknife.forms.combobox position="first" name="articletype_scope" label="Articletype" :options="$optionsArticletype"
-                width2="4" attribute="readonly"/>
-            <x-laraknife.forms.combobox position="last" name="markup_scope" label="Markup" :options="$optionsMarkup" width2="4" attribute="readonly"/>
-            <x-laraknife.forms.string position="first" name="title" label="Title"
-                value="{{ $context->valueOf('title') }}" width2="4" />
-            <x-laraknife.forms.string type="number" position="last" name="order" label="Order"
-                value="{{ $context->valueOf('order') }}" width2="4" />
-            <x-laraknife.forms.text position="alone" name="contents" label="Contents"
-                value="{{ $context->valueOf('contents') }}" width2="10" rows="10" />
-            <x-laraknife.forms.text position="alone" name="info" label="Info" value="{{ $context->valueOf('info') }}"
-                width2="10" rows="2" />
-            <x-laraknife.forms.file-protected position="first" name="file" fieldId="{{ $context->model->audio_id }}"
-                label="Audio" width2="4" />
-            <x-laraknife.buttons.button position="last" name="btnPreview" label="Preview" />
-            @if(! empty($context->valueOf('preview')))
-            <div class="lkn-text">{!! $context->valueOf('preview') !!}
-            </div>
-            @endif
-        </x-laraknife.panels.edit>
-    </form>
-@endsection
diff --git a/resources/views/article/index.blade.php b/resources/views/article/index.blade.php
deleted file mode 100644 (file)
index 7395645..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-@extends('layouts.backend')
-
-@section('content')
-<form id="article-index" action="/article-index" method="POST">
-    @csrf
-    <x-laraknife.panels.index title="{{ __('Articles') }}">
-      <x-laraknife.panels.filter legend="{{ $pagination->legendText() }}">
-      <x-laraknife.forms.combobox position="first" name="articletype" label="Articletype" :options="$optionsArticletype" class="lkn-autoupdate" width2="4" />
-      <x-laraknife.forms.combobox position="last" name="markup" label="Markup" :options="$optionsMarkup" class="lkn-autoupdate" width2="4" />
-      <x-laraknife.forms.string position="alone" name="text" label="Text" value="{{ $context->valueOf('title') }}" width2="10" />
-      </x-laraknife.panels.filter>
-      <x-laraknife.panels.index-button buttonType="new"/>
-      <x-laraknife.panels.sortable-table :context="$context" :pagination="$pagination">
-        <thead>
-          <tr>
-            <th></th>
-            <th sortId="title">{{__('Title')}}</th>
-            <th sortId="articletype_scope">{{__('Articletype')}}</th>
-            <th sortId="markup_scope">{{__('Markup')}}</th>
-            <th sortId="order">{{__('Order')}}</th>
-            <th></th>
-          </tr>
-        </thead>
-        <tbody>
-@foreach ($records as $article)
-        <tr>
-            <td><x-laraknife.icons.change-record module="article" no="{{ $article->id }}" /></td>
-              <td><td><a href="/article-showpretty/{{ $article->id }}">{{$article->title}}</a></td>
-              <td> {{ __($article->articletype_scope) }}</td>
-              <td> {{ __($article->markup_scope) }}</td>
-              <td>{{$article->order}}</td>
-            <td><x-laraknife.icons.delete-record module="article" no="{{ $article->id }}" /></td>
-        </tr>
-@endforeach
-      </tbody>
-    </x-laraknife.panels.sortable-table>
-  </x-laraknife.panels.index>
-</form>
-@endsection
diff --git a/resources/views/article/show.blade.php b/resources/views/article/show.blade.php
deleted file mode 100644 (file)
index 7010ef0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-@extends('layouts.backend')
-
-@section('content')
-    <form id="article-show" action="/article-show/{{ $context->model->id }}/{{ $mode }}" method="POST">
-        @csrf
-        @if($mode === 'delete')
-        @method('DELETE')
-        @endif
-        <x-laraknife.panels.show title="{{ __($mode !== 'delete' ? 'An Article' : 'Deletion of an Article') }}" mode="{{$mode}}">
-            <x-laraknife.forms.combobox position="first" name="articletype_scope" label="Articletype" :options="$optionsArticletype" width2="4" attribute="readonly"/>
-            <x-laraknife.forms.combobox position="last" name="markup_scope" label="Markup" :options="$optionsMarkup" width2="4" attribute="readonly"/>
-            <x-laraknife.forms.string position="alone" name="title" label="Title" value="{{ $context->valueOf('title') }}" width2="10" attribute="readonly" />
-            <x-laraknife.forms.text position="alone" name="contents" label="Contents" value="{{ $context->valueOf('contents') }}" width2="10" attribute="readonly" rows="5" />
-            <x-laraknife.forms.text position="alone" name="info" label="Info" value="{{ $context->valueOf('info') }}" width2="10" attribute="readonly" rows="2" />
-        </x-laraknife.panels.show>
-    </form>
-@endsection
diff --git a/resources/views/article/showpretty.blade.php b/resources/views/article/showpretty.blade.php
deleted file mode 100644 (file)
index 7506e3c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-@extends('layouts.backend')
-
-@section('content')
-    <form id="article-show" action="/article-show/{{ $context->model->id }}" method="POST">
-        @csrf
-        <x-laraknife.panels.noform-text title="{{ $context->valueof('title') }}">
-            <div class="row">
-                {!! $context->valueOf('text') !!}
-            </div>
-        </x-laraknife.panels.noform-text>
-        @if ($context->valueof('link') != null)
-            <div class="row">
-                <x-laraknife.forms.audio width1="5" width2="2" fileLink="{{ $context->valueof('link') }}" />
-            </div>
-        @endif
-    </form>
-@endsection
index 09624b67d2d2af6a959d8d86b0dcb7e1e4ac664f..77546c2192dab7873f53b9285f3d9f842c559209 100644 (file)
             <div class="collapse navbar-collapse" id="navbarTop">
                 <ul class="navbar-nav mr-auto">
                     <li class="nav-item active">
-                        <a class="nav-link" href="/menuitem-menu_main">Start</a>
+                        <a class="nav-link" href="/page-showmenu/main">Start</a>
+                    </li>
+                    <li class="nav-item active">
+                        <a class="nav-link" href="/menuitem-menu_main">Verwaltung</a>
                     </li>
                     <li>
                         <a class="nav-link" href="/public/doc/Impressum.pdf" target="_blank">{{ __('Imprint') }}</a>
diff --git a/resources/views/page b/resources/views/page
new file mode 120000 (symlink)
index 0000000..fa5b2fb
--- /dev/null
@@ -0,0 +1 @@
+../../vendor/hamatoma/laraknife/resources/views/page/
\ No newline at end of file
index 0c8298b423d250dd7c321c96e367b031a8150a9c..d41bd7cbbcf222a1e517f727be353ef3f5cabc87 100644 (file)
@@ -13,7 +13,7 @@ use App\Http\Controllers\PhraseController;
 use App\Http\Controllers\ReviewController;
 use App\Http\Controllers\MenuitemController;
 use App\Http\Controllers\ChapterController;
-use App\Http\Controllers\ArticleController;
+use App\Http\Controllers\PageController;
 use App\Http\Controllers\SPropertyController;
 
 Route::get('/', function () {
@@ -37,4 +37,4 @@ ReviewController::routes();
 
 ChapterController::routes();
 
-ArticleController::routes();
+PageController::routes();