[WIP] Add thumb on offers, refactor categories, try to fix counter on relations polymorphic with eage loader, bad pattern !

This commit is contained in:
Ludovic CANDELLIER
2021-12-17 00:30:07 +01:00
parent cb0b2e4aa0
commit 8a1573d425
26 changed files with 171 additions and 107 deletions

View File

@@ -1,48 +0,0 @@
<?php
namespace App\Repositories\Core;
use TheSeer\DirectoryScanner\DirectoryScanner;
class Cache
{
public static function getAutoVersion($file)
{
$filePath = public_path() . $file;
if (!file_exists($filePath)) {
return '';
}
$version = filemtime($filePath);
return '?v=' . $version;
}
public static function getFilesVersion($folder, $type)
{
$folder = str_replace('.', '/', $folder);
// dump($folder);
// dump($type);
// exit;
$scanner = new DirectoryScanner;
$scanner->addInclude('*.'.$type);
// $scanner->addExclude('*filter*');
// $scanner->addExclude('./src/*');
$path = public_path() . '/' . $folder;
$data = [];
foreach ($scanner($path) as $i) {
// dump($i);
$sub = $i->getPath();
$sub = str_replace($path, '', $sub);
$sub = str_replace('\\', '/', $sub);
// dump($sub);
$filename = '/' . $folder . $sub . '/' . $i->getFilename();
// dump($filename);
$mtime = $i->getMTime();
$data[$filename] = $mtime;
}
return $data;
}
}

View File

@@ -0,0 +1,102 @@
<?php
namespace App\Repositories\Core;
use App\Repositories\Core\Arrays;
class Categories
{
public static function getTree($withFolder = false)
{
$categories = self::getCategoryTree()->toArray();
return self::getChildren($categories[0]['children'], $withFolder);
}
public static function getFancyTree()
{
$categories = self::getTree(true);
$categories = Arrays::changeKeyName($categories, 'title', 'name');
$categories = Arrays::changeKeyName($categories, 'key', 'id');
return $categories;
}
public static function getCategoryTree()
{
return self::getModel()->defaultOrder()->get()->toTree();
}
public static function getChildren($data, $withFolder = false)
{
$tree = [];
foreach ($data as $item) {
$leaf = [];
$leaf['name'] = $item['name'];
$leaf['id'] = $item['id'];
$children = ($item['children'] ?? false) ? self::getChildren($item['children']) : false;
if ($children) {
$leaf['children'] = $children;
if ($withFolder) {
$leaf['folder'] = true;
}
}
$tree[] = $leaf;
}
return $tree;
}
public static function moveTree($node_id, $target_id, $type)
{
$category = self::getNode($node_id);
$category_target = self::getNode($target_id);
switch ($type) {
case 'after':
// dump("$node_id After $target_id");
$category->afterNode($category_target);
break;
case 'inside':
// dump("$node_id inside $target_id");
$category_target->appendNode($category);
break;
}
$category->save();
return "1";
}
public static function create($data)
{
$parent = ($data['parent_id'] ?? false) ? self::getNode($data['parent_id']) : self::getRoot();
$category = self::getModel()->create(['name' => $data['name']]);
$category->appendToNode($parent)->save();
return $category;
}
public static function update($data, $id = false)
{
$id = $id ? $id : $data['id'];
$item = self::getNode($id);
$item->update($data);
return $item;
}
public static function destroy($id)
{
// return Category::destroy($id);
}
public static function getRoot()
{
return self::getNode(1);
}
public static function getNode($id)
{
return self::getModel()->find($id);
}
public static function getModel()
{
return app('rinvex.categories.category');
}
}