use Fluidbook\Tools\Links\ContentLink;
use Fluidbook\Tools\Links\NormalLink;
use Illuminate\Support\Facades\Log;
+use function PHPUnit\Framework\containsOnly;
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']);
}
copy($base . '.meta3.gz', $latestMeta);
$fluidbook->touch();
- if ($fluidbook->linkShortener != 0 && $fluidbook->linkShortener != "none") {
+ if ($fluidbook->linkShortener && $fluidbook->linkShortener != "none") {
AuditLinkRegister::dispatch();
}
}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\FluidbookPublication\Services;
+
+use App\Fluidbook\Link\LinksData;
+use App\Http\Middleware\CheckIfAdmin;
+use App\Models\FluidbookPublication;
+use Fluidbook\Tools\Links\Link;
+use Illuminate\Support\Facades\Route;
+
+
+trait ShortLinksOperation
+{
+
+ protected function setupShortlinkRoutes($segment, $routeName, $controller)
+ {
+ foreach (['services', 's'] as $segment) {
+ Route::match(['get'], $segment . '/shortlinks/{cid?}', $controller . '@listShortLinks')->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') {
+
+ }
+ }
+ }
+
+}
$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'];
}
}
'page' => $link['page'],
'url' => $link['to'],
];
-
-
}
if (count($externalLinks) > 0) {
//Log::info('Job exécuté avec succès');
ShortLink::touchChangeFile();
+ AuditLink::dispatch(count($externalLinks));
}
}
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;
GetPageFromWebsiteOperation::class,
FormOperation::class,
PDFFormOperation::class,
+ ShortLinksOperation::class,
// Carts
BastideOperation::class,
PumaOperation::class,
$this->addField('fluidbook_links', ShortLinkFluidbooks::class, __('Présence dans les fluidbooks'), ['column_label' => '<i class="las la-link" title="' . __('Nombre d\'occurence dans les fluidbooks') . '"></i>', '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);
$crud->addClause('where', 'http_code', '>=', 400);
}
}, ['ok' => __('Valide'), 'error' => __('Erreur'), 'warning' => __('Avertissement')]);
+
}
public function showPrimaryColumn()
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);