Skip to content

Commit de9117e

Browse files
committed
Refactor ThemeServiceProvider and HasEditor Trait
- Updated ThemeServiceProvider to include a new ionCube Loader check and removed old license information. - Enhanced the publish method in HasEditor trait to extract and utilize 'id' and 'class' attributes from the provided body content, allowing for more dynamic content rendering.
1 parent 7d019e1 commit de9117e

13 files changed

+793
-979
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ phpunit.xml.dist export-ignore
2121
RELEASE.md export-ignore
2222
UPGRADE.md export-ignore
2323
encode.sh export-ignore
24+
encoder.php export-ignore
25+
loader.php export-ignore
2426
comments.txt export-ignore
2527
testbench.yaml export-ignore

src/Http/Controllers/ApplicationController.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,7 @@ public function theme()
133133
{
134134
$theme = false;
135135
$editor = [
136-
'styles' => [
137-
'//cdn.coderstm.com/fontawesome/css/all.min.css',
138-
'statics/css/styles.min.css',
139-
],
136+
'styles' => [],
140137
'scripts' => ['~/js/app.js']
141138
];
142139

src/Http/Controllers/WebPageController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function blogs(Request $request)
3434

3535
public function blog(Request $request, $slug)
3636
{
37-
$blog = Cache::remember("blog_{$slug}", 60, function () use ($slug) {
37+
$blog = Cache::rememberForever("blog_{$slug}", function () use ($slug) {
3838
return Blog::findBySlug($slug);
3939
});
4040

@@ -45,7 +45,7 @@ public function blog(Request $request, $slug)
4545

4646
public function pages(Request $request, $slug)
4747
{
48-
$page = Cache::remember("page_{$slug}", 60, function () use ($slug) {
48+
$page = Cache::rememberForever("page_{$slug}", function () use ($slug) {
4949
return Page::findBySlug($slug);
5050
});
5151

@@ -87,7 +87,7 @@ public function contact(Request $request)
8787

8888
public function render(Request $request, string $name)
8989
{
90-
$page = Cache::remember("page_{$name}", 60, function () use ($name) {
90+
$page = Cache::rememberForever("page_{$name}", function () use ($name) {
9191
return Page::findByTemplate($name);
9292
});
9393

src/Models/Blog.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Coderstm\Models\Blog\Comment;
1010
use Spatie\Sluggable\SlugOptions;
1111
use Illuminate\Support\Facades\DB;
12+
use Illuminate\Support\Facades\Cache;
1213
use Illuminate\Database\Eloquent\Model;
1314

1415
class Blog extends Model
@@ -86,9 +87,17 @@ public static function findBySlug(string $slug)
8687
->firstOrFail();
8788
}
8889

89-
protected static function boot()
90+
protected static function booted()
9091
{
91-
parent::boot();
92+
parent::booted();
93+
94+
static::updated(function ($blog) {
95+
if ($slug = $blog->getOriginal('slug')) {
96+
Cache::forget("blog_{$slug}");
97+
}
98+
Cache::forget("blog_{$blog->slug}");
99+
});
100+
92101
static::addGlobalScope('short_desc', function ($query) {
93102
$url = config('app.url');
94103
$query->select('*')

src/Models/Page.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
use Coderstm\Traits\Core;
66
use Spatie\Sluggable\HasSlug;
7-
use Coderstm\Interface\Editorable;
87
use Coderstm\Traits\HasEditor;
98
use Spatie\Sluggable\SlugOptions;
9+
use Coderstm\Interface\Editorable;
1010
use Illuminate\Support\Facades\DB;
11+
use Illuminate\Support\Facades\Cache;
1112
use Illuminate\Database\Eloquent\Model;
1213

1314
class Page extends Model implements Editorable
@@ -71,6 +72,13 @@ protected static function booted()
7172
{
7273
parent::booted();
7374

75+
static::updated(function ($page) {
76+
if ($slug = $page->getOriginal('slug')) {
77+
Cache::forget("blog_{$slug}");
78+
}
79+
Cache::forget("page_{$page->slug}");
80+
});
81+
7482
static::addGlobalScope('url', function ($query) {
7583
$url = config('app.url');
7684
$query->select('*')->addSelect(DB::raw("CONCAT('{$url}/pages/', slug) as url"));
Lines changed: 29 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,31 @@
1-
<?php //00ba3
2-
// **************************************************************************
3-
// * *
4-
// * Coderstm - The Complete Client Management, Billing & Support Solution *
5-
// * Copyright (C) Coderstm Ltd. All Rights Reserved, *
6-
// * Version:4.7.1 *
7-
// * Build Date:3 Jan 2025 *
8-
// * *
9-
// **************************************************************************
10-
// * *
11-
// * Email: hello@coderstm.com *
12-
// * Website: https://www.coderstm.com *
13-
// * *
14-
// **************************************************************************
15-
// * *
16-
// * This software is furnished under a license and may be used and copied *
17-
// * only in accordance with the terms of such license and with the *
18-
// * inclusion of the above copyright notice. This software or any other *
19-
// * copies thereof may not be provided or otherwise made available to any *
20-
// * other person. No title to and ownership of the software is hereby *
21-
// * transferred. *
22-
// * *
23-
// * You may not reverse engineer, decompile, defeat license encryption *
24-
// * mechanisms, or disassemble this software product or software product *
25-
// * license. Coderstm may terminate this license if you don't comply with *
26-
// * any of the terms and conditions set forth in our end user license *
27-
// * agreement. In such event, licensee agrees to return licensor or *
28-
// * destroy all copies of software upon termination of the license. *
29-
// * *
30-
// **************************************************************************
1+
<?php //002cd
312
if(extension_loaded('ionCube Loader')){die('The file '.__FILE__." is corrupted.\n");}echo("\nScript error: the ".(($cli=(php_sapi_name()=='cli')) ?'ionCube':'<a href="https://www.ioncube.com">ionCube</a>')." Loader for PHP needs to be installed.\n\nThe ionCube Loader is the industry standard PHP extension for running protected PHP code,\nand can usually be added easily to a PHP installation.\n\nFor Loaders please visit".($cli?":\n\nhttps://get-loader.ioncube.com\n\nFor":' <a href="https://get-loader.ioncube.com">get-loader.ioncube.com</a> and for')." an instructional video please see".($cli?":\n\nhttp://ioncu.be/LV\n\n":' <a href="http://ioncu.be/LV">http://ioncu.be/LV</a> ')."\n\n");exit(199);
323
?>
33-
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
31+
B21p9jTXdC4Br7TmQG2hrPLXmm==

0 commit comments

Comments
 (0)