[WIP] Add thumb on offers, refactor categories, try to fix counter on relations polymorphic with eage loader, bad pattern !
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
102
app/Repositories/Core/Categories.php
Normal file
102
app/Repositories/Core/Categories.php
Normal 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');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user