From: Vincent Vanwaelscappel Date: Thu, 12 Feb 2026 18:14:32 +0000 (+0100) Subject: wip #8000 @3 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=6770c2a62f0a3f40d043214de91a88668dc2858d;p=fluidbook-toolbox.git wip #8000 @3 --- diff --git a/app/Fluidbook/Compiler/Links.php b/app/Fluidbook/Compiler/Links.php index 1a82f2109..fe7925d79 100644 --- a/app/Fluidbook/Compiler/Links.php +++ b/app/Fluidbook/Compiler/Links.php @@ -12,6 +12,7 @@ use Fluidbook\Tools\Links\AnchorLink; use Fluidbook\Tools\Links\ContentLink; use Fluidbook\Tools\Links\NormalLink; use Illuminate\Support\Facades\Log; +use function PHPUnit\Framework\containsOnly; trait Links { @@ -129,7 +130,9 @@ trait Links $linksCopy = $links; foreach ($linksCopy as $k => $linkData) { - + if(!$linkData['to']) { + continue; + } if (stristr($linkData['to'], 'javascript:canvasToPDF(')) { $this->addJsLib('jspdf', ['js/libs/jspdf.min.js']); } diff --git a/app/Fluidbook/Link/LinksData.php b/app/Fluidbook/Link/LinksData.php index ab80ca478..e03fe845e 100644 --- a/app/Fluidbook/Link/LinksData.php +++ b/app/Fluidbook/Link/LinksData.php @@ -574,7 +574,7 @@ class LinksData copy($base . '.meta3.gz', $latestMeta); $fluidbook->touch(); - if ($fluidbook->linkShortener != 0 && $fluidbook->linkShortener != "none") { + if ($fluidbook->linkShortener && $fluidbook->linkShortener != "none") { AuditLinkRegister::dispatch(); } } diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/ShortLinksOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/ShortLinksOperation.php new file mode 100644 index 000000000..e547c9f54 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/ShortLinksOperation.php @@ -0,0 +1,41 @@ +withoutMiddleware([CheckIfAdmin::class]); + } + } + + public function listShortLinks($cid) + { + $publication = FluidbookPublication::where('cid', $cid)->first(); + if (null === $publication) { + abort(404); + } + if (!$publication->linkShortener || $publication->linkShortener == 'none') { + abort(404); + } + + LinksData::getLinksAndRulers($publication->id, $links, $rulers); + $res = ['youtube' => []]; + foreach ($links as $link) { + if ($link['type'] == Link::WEBVIDEO && $link['video_service'] == 'youtube') { + + } + } + } + +} diff --git a/app/Jobs/AuditLinkRegister.php b/app/Jobs/AuditLinkRegister.php index 1b5fb77ae..d8eef35f7 100644 --- a/app/Jobs/AuditLinkRegister.php +++ b/app/Jobs/AuditLinkRegister.php @@ -69,7 +69,7 @@ class AuditLinkRegister extends Base $link['to'] = trim($link['to']); if (Arr::exists($link, 'video_service')) { if ($link['type'] == LinkAlias::WEBVIDEO && $link['video_service'] === "youtube") { - $link['to'] = "https://youtu.be/" . $link['to']; + $link['to'] = 'https://www.youtube.com/watch?v=' . $link['to']; } } @@ -87,8 +87,6 @@ class AuditLinkRegister extends Base 'page' => $link['page'], 'url' => $link['to'], ]; - - } if (count($externalLinks) > 0) { @@ -108,5 +106,6 @@ class AuditLinkRegister extends Base //Log::info('Job exécuté avec succès'); ShortLink::touchChangeFile(); + AuditLink::dispatch(count($externalLinks)); } } diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 545eb0c37..bed88ed20 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -35,6 +35,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\GetPageF use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\NewHeidiOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\PDFFormOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\PumaOperation; +use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\ShortLinksOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\SocialImageOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\StatsOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\UpgradeOperation; @@ -123,6 +124,7 @@ class FluidbookPublication extends ToolboxStatusModel GetPageFromWebsiteOperation::class, FormOperation::class, PDFFormOperation::class, + ShortLinksOperation::class, // Carts BastideOperation::class, PumaOperation::class, diff --git a/app/Models/ShortLink.php b/app/Models/ShortLink.php index ad9602c45..1d557419a 100644 --- a/app/Models/ShortLink.php +++ b/app/Models/ShortLink.php @@ -50,6 +50,15 @@ class ShortLink extends ToolboxModel $this->addField('fluidbook_links', ShortLinkFluidbooks::class, __('Présence dans les fluidbooks'), ['column_label' => '', 'column' => true]); $this->addOwnerField(['column' => false, 'type' => Hidden::class]); + + $servers = LinkShortener::getAvaiableShorteners(); + + if (count($servers) > 1) { + $this->addFilter('server', 'dropdown', __('Serveur'), function ($value, $crud) { + $crud->addClause('where', 'server', '=', $value); + }, $servers); + } + $this->addFilter('severity', 'dropdown', __('Diagnostic'), function ($value, $crud) { if ($value === 'ok') { $crud->addClause('where', 'http_code', '=', 200); @@ -59,6 +68,7 @@ class ShortLink extends ToolboxModel $crud->addClause('where', 'http_code', '>=', 400); } }, ['ok' => __('Valide'), 'error' => __('Erreur'), 'warning' => __('Avertissement')]); + } public function showPrimaryColumn() @@ -72,10 +82,8 @@ class ShortLink extends ToolboxModel protected static function _getData() { $auditLinks = FluidbookAuditLink::getAllURLAudits(); - $data = []; foreach (LinkShortener::getAvaiableShorteners(true) as $id => $s) { - foreach (LinkShortener::listAll($id)->result as $i) { $shorturl = 'https://' . $s['domain'] . '/' . $i->keyword; $time = new DateTime($i->timestamp);