Issue #5960 fixed
This commit is contained in:
parent
dd9be9a981
commit
ed1e0a5fe8
|
|
@ -18,7 +18,6 @@
|
|||
"diglactic/laravel-breadcrumbs": "^7.0",
|
||||
"doctrine/dbal": "^2.9",
|
||||
"enshrined/svg-sanitize": "^0.15.0",
|
||||
"spatie/laravel-ignition": "^1.0",
|
||||
"fakerphp/faker": "^1.14",
|
||||
"flynsarmy/db-blade-compiler": "dev-master",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
|
|
@ -36,7 +35,9 @@
|
|||
"maatwebsite/excel": "^3.1.26",
|
||||
"paypal/paypal-checkout-sdk": "1.0.1",
|
||||
"prettus/l5-repository": "^2.6",
|
||||
"pusher/pusher-php-server": "^7.0"
|
||||
"pusher/pusher-php-server": "^7.0",
|
||||
"spatie/laravel-ignition": "^1.0",
|
||||
"spatie/laravel-sitemap": "^6.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"codeception/codeception": "*@dev",
|
||||
|
|
@ -102,7 +103,8 @@
|
|||
"Webkul\\SocialLogin\\": "packages/Webkul/SocialLogin/src",
|
||||
"Webkul\\DebugBar\\": "packages/Webkul/DebugBar/src",
|
||||
"Webkul\\Marketing\\": "packages/Webkul/Marketing/src",
|
||||
"Webkul\\Notification\\": "packages/Webkul/Notification/src"
|
||||
"Webkul\\Notification\\": "packages/Webkul/Notification/src",
|
||||
"Webkul\\Sitemap\\": "packages/Webkul/Sitemap/src"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "7bd7dd4e790275d3a14a8ab268f2972a",
|
||||
"content-hash": "8ec53721d44a7274183e99125e4fef64",
|
||||
"packages": [
|
||||
{
|
||||
"name": "astrotomic/laravel-translatable",
|
||||
|
|
@ -3479,6 +3479,71 @@
|
|||
],
|
||||
"time": "2022-03-12T19:32:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/glide",
|
||||
"version": "2.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/glide.git",
|
||||
"reference": "bff5b0fe2fd26b2fde2d6958715fde313887d79d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/glide/zipball/bff5b0fe2fd26b2fde2d6958715fde313887d79d",
|
||||
"reference": "bff5b0fe2fd26b2fde2d6958715fde313887d79d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"intervention/image": "^2.7",
|
||||
"league/flysystem": "^2.0|^3.0",
|
||||
"php": "^7.2|^8.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.3.3",
|
||||
"phpunit/php-token-stream": "^3.1|^4.0",
|
||||
"phpunit/phpunit": "^8.5|^9.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Glide\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jonathan Reinink",
|
||||
"email": "jonathan@reinink.ca",
|
||||
"homepage": "http://reinink.ca"
|
||||
},
|
||||
{
|
||||
"name": "Titouan Galopin",
|
||||
"email": "galopintitouan@gmail.com",
|
||||
"homepage": "https://titouangalopin.com"
|
||||
}
|
||||
],
|
||||
"description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.",
|
||||
"homepage": "http://glide.thephpleague.com",
|
||||
"keywords": [
|
||||
"ImageMagick",
|
||||
"editing",
|
||||
"gd",
|
||||
"image",
|
||||
"imagick",
|
||||
"league",
|
||||
"manipulation",
|
||||
"processing"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/glide/issues",
|
||||
"source": "https://github.com/thephpleague/glide/tree/2.2.2"
|
||||
},
|
||||
"time": "2022-02-21T07:40:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/mime-type-detection",
|
||||
"version": "1.9.0",
|
||||
|
|
@ -4402,6 +4467,52 @@
|
|||
},
|
||||
"time": "2022-01-24T11:29:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nicmart/tree",
|
||||
"version": "0.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nicmart/Tree.git",
|
||||
"reference": "c55ba47c64a3cb7454c22e6d630729fc2aab23ff"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nicmart/Tree/zipball/c55ba47c64a3cb7454c22e6d630729fc2aab23ff",
|
||||
"reference": "c55ba47c64a3cb7454c22e6d630729fc2aab23ff",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ergebnis/composer-normalize": "^2.8.0",
|
||||
"ergebnis/license": "^1.0.0",
|
||||
"ergebnis/php-cs-fixer-config": "^2.2.1",
|
||||
"phpunit/phpunit": "^7.5.20"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Tree\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolò Martini",
|
||||
"email": "nicmartnic@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A basic but flexible php tree data structure and a fluent tree builder implementation.",
|
||||
"support": {
|
||||
"issues": "https://github.com/nicmart/Tree/issues",
|
||||
"source": "https://github.com/nicmart/Tree/tree/0.3.1"
|
||||
},
|
||||
"time": "2020-11-27T09:02:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.13.2",
|
||||
|
|
@ -6075,6 +6186,139 @@
|
|||
],
|
||||
"time": "2021-11-09T10:57:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/browsershot",
|
||||
"version": "3.52.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/browsershot.git",
|
||||
"reference": "4f8584e835035a4696a496c4508c3c35edaef28a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/browsershot/zipball/4f8584e835035a4696a496c4508c3c35edaef28a",
|
||||
"reference": "4f8584e835035a4696a496c4508c3c35edaef28a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.4|^8.0",
|
||||
"spatie/image": "^1.5.3|^2.0",
|
||||
"spatie/temporary-directory": "^1.1|^2.0",
|
||||
"symfony/process": "^4.2|^5.0|^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.0",
|
||||
"spatie/phpunit-snapshot-assertions": "^4.2.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\Browsershot\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Freek Van der Herten",
|
||||
"email": "freek@spatie.be",
|
||||
"homepage": "https://github.com/freekmurze",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Convert a webpage to an image or pdf using headless Chrome",
|
||||
"homepage": "https://github.com/spatie/browsershot",
|
||||
"keywords": [
|
||||
"chrome",
|
||||
"convert",
|
||||
"headless",
|
||||
"image",
|
||||
"pdf",
|
||||
"puppeteer",
|
||||
"screenshot",
|
||||
"webpage"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/browsershot/issues",
|
||||
"source": "https://github.com/spatie/browsershot/tree/3.52.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/spatie",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-12-17T23:11:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/crawler",
|
||||
"version": "7.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/crawler.git",
|
||||
"reference": "31f7eb8661340bc878f7e32a8ece90308ec713ae"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/crawler/zipball/31f7eb8661340bc878f7e32a8ece90308ec713ae",
|
||||
"reference": "31f7eb8661340bc878f7e32a8ece90308ec713ae",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "^7.3",
|
||||
"guzzlehttp/psr7": "^2.0",
|
||||
"illuminate/collections": "^8.38|^9.0",
|
||||
"nicmart/tree": "^0.3.0",
|
||||
"php": "^8.0",
|
||||
"spatie/browsershot": "^3.45",
|
||||
"spatie/robots-txt": "^2.0",
|
||||
"symfony/dom-crawler": "^5.2|^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\Crawler\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Freek Van der Herten",
|
||||
"email": "freek@spatie.be"
|
||||
}
|
||||
],
|
||||
"description": "Crawl all internal links found on a website",
|
||||
"homepage": "https://github.com/spatie/crawler",
|
||||
"keywords": [
|
||||
"crawler",
|
||||
"link",
|
||||
"spatie",
|
||||
"website"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/crawler/issues",
|
||||
"source": "https://github.com/spatie/crawler/tree/7.1.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://spatie.be/open-source/support-us",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/spatie",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-20T17:08:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/flare-client-php",
|
||||
"version": "1.1.0",
|
||||
|
|
@ -6209,6 +6453,129 @@
|
|||
],
|
||||
"time": "2022-03-23T11:02:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/image",
|
||||
"version": "2.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/image.git",
|
||||
"reference": "bdf1146c740746d635344f8291c491371c3f2f25"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/image/zipball/bdf1146c740746d635344f8291c491371c3f2f25",
|
||||
"reference": "bdf1146c740746d635344f8291c491371c3f2f25",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-exif": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"league/glide": "^2.2.2",
|
||||
"php": "^8.0",
|
||||
"spatie/image-optimizer": "^1.1",
|
||||
"spatie/temporary-directory": "^1.0|^2.0",
|
||||
"symfony/process": "^3.0|^4.0|^5.0|^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"symfony/var-dumper": "^4.0|^5.0|^6.0",
|
||||
"vimeo/psalm": "^4.6"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\Image\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Freek Van der Herten",
|
||||
"email": "freek@spatie.be",
|
||||
"homepage": "https://spatie.be",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Manipulate images with an expressive API",
|
||||
"homepage": "https://github.com/spatie/image",
|
||||
"keywords": [
|
||||
"image",
|
||||
"spatie"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/image/issues",
|
||||
"source": "https://github.com/spatie/image/tree/2.2.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://spatie.be/open-source/support-us",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/spatie",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-21T08:27:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/image-optimizer",
|
||||
"version": "1.6.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/image-optimizer.git",
|
||||
"reference": "6db75529cbf8fa84117046a9d513f277aead90a0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/image-optimizer/zipball/6db75529cbf8fa84117046a9d513f277aead90a0",
|
||||
"reference": "6db75529cbf8fa84117046a9d513f277aead90a0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-fileinfo": "*",
|
||||
"php": "^7.3|^8.0",
|
||||
"psr/log": "^1.0 | ^2.0 | ^3.0",
|
||||
"symfony/process": "^4.2|^5.0|^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.21|^9.4.4",
|
||||
"symfony/var-dumper": "^4.2|^5.0|^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\ImageOptimizer\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Freek Van der Herten",
|
||||
"email": "freek@spatie.be",
|
||||
"homepage": "https://spatie.be",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Easily optimize images using PHP",
|
||||
"homepage": "https://github.com/spatie/image-optimizer",
|
||||
"keywords": [
|
||||
"image-optimizer",
|
||||
"spatie"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/image-optimizer/issues",
|
||||
"source": "https://github.com/spatie/image-optimizer/tree/1.6.2"
|
||||
},
|
||||
"time": "2021-12-21T10:08:05+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-ignition",
|
||||
"version": "1.1.1",
|
||||
|
|
@ -6296,6 +6663,260 @@
|
|||
],
|
||||
"time": "2022-03-21T07:13:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-package-tools",
|
||||
"version": "1.11.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-package-tools.git",
|
||||
"reference": "baeb3df0ebb3a541394fdaf8cbe6115bf4034a59"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/baeb3df0ebb3a541394fdaf8cbe6115bf4034a59",
|
||||
"reference": "baeb3df0ebb3a541394fdaf8cbe6115bf4034a59",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/contracts": "^7.0|^8.0|^9.0",
|
||||
"php": "^7.4|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.4",
|
||||
"orchestra/testbench": "^5.0|^6.23|^7.0",
|
||||
"phpunit/phpunit": "^9.4",
|
||||
"spatie/test-time": "^1.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\LaravelPackageTools\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Freek Van der Herten",
|
||||
"email": "freek@spatie.be",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Tools for creating Laravel packages",
|
||||
"homepage": "https://github.com/spatie/laravel-package-tools",
|
||||
"keywords": [
|
||||
"laravel-package-tools",
|
||||
"spatie"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/laravel-package-tools/issues",
|
||||
"source": "https://github.com/spatie/laravel-package-tools/tree/1.11.3"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/spatie",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-15T20:01:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-sitemap",
|
||||
"version": "6.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-sitemap.git",
|
||||
"reference": "e51c68f9e51f476f3d6d92beb2cac0afa2de6d0d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/e51c68f9e51f476f3d6d92beb2cac0afa2de6d0d",
|
||||
"reference": "e51c68f9e51f476f3d6d92beb2cac0afa2de6d0d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"illuminate/support": "^8.0|^9.0",
|
||||
"nesbot/carbon": "^2.0",
|
||||
"php": "^8.0",
|
||||
"spatie/crawler": "^7.0",
|
||||
"spatie/laravel-package-tools": "^1.5",
|
||||
"symfony/dom-crawler": "^5.1.14|^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.4",
|
||||
"orchestra/testbench": "^6.23|^7.0",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"spatie/phpunit-snapshot-assertions": "^4.0",
|
||||
"spatie/temporary-directory": "^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Spatie\\Sitemap\\SitemapServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\Sitemap\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Freek Van der Herten",
|
||||
"email": "freek@spatie.be",
|
||||
"homepage": "https://spatie.be",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Create and generate sitemaps with ease",
|
||||
"homepage": "https://github.com/spatie/laravel-sitemap",
|
||||
"keywords": [
|
||||
"laravel-sitemap",
|
||||
"spatie"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/laravel-sitemap/issues",
|
||||
"source": "https://github.com/spatie/laravel-sitemap/tree/6.1.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://spatie.be/open-source/support-us",
|
||||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2022-01-14T07:45:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/robots-txt",
|
||||
"version": "2.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/robots-txt.git",
|
||||
"reference": "312ff78f39c0c7071fac3ee25edb0f4d1511dc60"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/robots-txt/zipball/312ff78f39c0c7071fac3ee25edb0f4d1511dc60",
|
||||
"reference": "312ff78f39c0c7071fac3ee25edb0f4d1511dc60",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"larapack/dd": "^1.0",
|
||||
"phpunit/phpunit": "^8.0 || ^9.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\Robots\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Brent Roose",
|
||||
"email": "brent@spatie.be",
|
||||
"homepage": "https://spatie.be",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Determine if a page may be crawled from robots.txt and robots meta tags",
|
||||
"homepage": "https://github.com/spatie/robots-txt",
|
||||
"keywords": [
|
||||
"robots-txt",
|
||||
"spatie"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/robots-txt/issues",
|
||||
"source": "https://github.com/spatie/robots-txt/tree/2.0.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://spatie.be/open-source/support-us",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/spatie",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-05-06T16:55:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/temporary-directory",
|
||||
"version": "2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/temporary-directory.git",
|
||||
"reference": "79f138f2b81adae583d04d3727a4538dd394023f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/temporary-directory/zipball/79f138f2b81adae583d04d3727a4538dd394023f",
|
||||
"reference": "79f138f2b81adae583d04d3727a4538dd394023f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Spatie\\TemporaryDirectory\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Alex Vanderbist",
|
||||
"email": "alex@spatie.be",
|
||||
"homepage": "https://spatie.be",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Easily create, use and destroy temporary directories",
|
||||
"homepage": "https://github.com/spatie/temporary-directory",
|
||||
"keywords": [
|
||||
"php",
|
||||
"spatie",
|
||||
"temporary-directory"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/temporary-directory/issues",
|
||||
"source": "https://github.com/spatie/temporary-directory/tree/2.1.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://spatie.be/open-source/support-us",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/spatie",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-11T08:16:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v6.0.5",
|
||||
|
|
@ -6591,6 +7212,79 @@
|
|||
],
|
||||
"time": "2021-11-01T23:48:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dom-crawler",
|
||||
"version": "v6.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dom-crawler.git",
|
||||
"reference": "9b4126901a6146c151d95af3868b1e0e30519ea6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9b4126901a6146c151d95af3868b1e0e30519ea6",
|
||||
"reference": "9b4126901a6146c151d95af3868b1e0e30519ea6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"masterminds/html5": "<2.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"masterminds/html5": "^2.6",
|
||||
"symfony/css-selector": "^5.4|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/css-selector": ""
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\DomCrawler\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Eases DOM navigation for HTML and XML documents",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/dom-crawler/tree/v6.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-02T12:58:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v6.0.3",
|
||||
|
|
@ -11917,79 +12611,6 @@
|
|||
],
|
||||
"time": "2022-01-02T09:55:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dom-crawler",
|
||||
"version": "v6.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dom-crawler.git",
|
||||
"reference": "9b4126901a6146c151d95af3868b1e0e30519ea6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/9b4126901a6146c151d95af3868b1e0e30519ea6",
|
||||
"reference": "9b4126901a6146c151d95af3868b1e0e30519ea6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0.2",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"masterminds/html5": "<2.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"masterminds/html5": "^2.6",
|
||||
"symfony/css-selector": "^5.4|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/css-selector": ""
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\DomCrawler\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Eases DOM navigation for HTML and XML documents",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/dom-crawler/tree/v6.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-02T12:58:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v6.0.3",
|
||||
|
|
@ -12129,5 +12750,5 @@
|
|||
"php": "^8.0.2"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.0.0"
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -280,7 +280,8 @@ return [
|
|||
Webkul\SocialLogin\Providers\SocialLoginServiceProvider::class,
|
||||
Webkul\DebugBar\Providers\DebugBarServiceProvider::class,
|
||||
Webkul\Marketing\Providers\MarketingServiceProvider::class,
|
||||
Webkul\Notification\Providers\NotificationServiceProvider::class
|
||||
Webkul\Notification\Providers\NotificationServiceProvider::class,
|
||||
Webkul\Sitemap\Providers\SitemapServiceProvider::class
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ return [
|
|||
\Webkul\Ui\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\User\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\Velocity\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\Sitemap\Providers\ModuleServiceProvider::class,
|
||||
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
use GuzzleHttp\RequestOptions;
|
||||
use Spatie\Sitemap\Crawler\Profile;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
* These options will be passed to GuzzleHttp\Client when it is created.
|
||||
* For in-depth information on all options see the Guzzle docs:
|
||||
*
|
||||
* http://docs.guzzlephp.org/en/stable/request-options.html
|
||||
*/
|
||||
'guzzle_options' => [
|
||||
|
||||
/*
|
||||
* Whether or not cookies are used in a request.
|
||||
*/
|
||||
RequestOptions::COOKIES => true,
|
||||
|
||||
/*
|
||||
* The number of seconds to wait while trying to connect to a server.
|
||||
* Use 0 to wait indefinitely.
|
||||
*/
|
||||
RequestOptions::CONNECT_TIMEOUT => 10,
|
||||
|
||||
/*
|
||||
* The timeout of the request in seconds. Use 0 to wait indefinitely.
|
||||
*/
|
||||
RequestOptions::TIMEOUT => 10,
|
||||
|
||||
/*
|
||||
* Describes the redirect behavior of a request.
|
||||
*/
|
||||
RequestOptions::ALLOW_REDIRECTS => false,
|
||||
],
|
||||
|
||||
/*
|
||||
* The sitemap generator can execute JavaScript on each page so it will
|
||||
* discover links that are generated by your JS scripts. This feature
|
||||
* is powered by headless Chrome.
|
||||
*/
|
||||
'execute_javascript' => false,
|
||||
|
||||
/*
|
||||
* The package will make an educated guess as to where Google Chrome is installed.
|
||||
* You can also manually pass it's location here.
|
||||
*/
|
||||
'chrome_binary_path' => null,
|
||||
|
||||
/*
|
||||
* The sitemap generator uses a CrawlProfile implementation to determine
|
||||
* which urls should be crawled for the sitemap.
|
||||
*/
|
||||
'crawl_profile' => Profile::class,
|
||||
|
||||
];
|
||||
|
|
@ -349,7 +349,7 @@ return [
|
|||
'key' => 'marketing.promotions',
|
||||
'name' => 'admin::app.acl.promotions',
|
||||
'route' => 'admin.cart-rules.index',
|
||||
'sort' => 6,
|
||||
'sort' => 1,
|
||||
], [
|
||||
'key' => 'marketing.promotions.cart-rules',
|
||||
'name' => 'admin::app.acl.cart-rules',
|
||||
|
|
@ -399,7 +399,7 @@ return [
|
|||
'key' => 'marketing.email-marketing',
|
||||
'name' => 'admin::app.acl.email-marketing',
|
||||
'route' => 'admin.email-templates.index',
|
||||
'sort' => 7,
|
||||
'sort' => 2,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.email-templates',
|
||||
'name' => 'admin::app.acl.email-templates',
|
||||
|
|
@ -409,22 +409,22 @@ return [
|
|||
'key' => 'marketing.email-marketing.email-templates.create',
|
||||
'name' => 'admin::app.acl.create',
|
||||
'route' => 'admin.email-templates.create',
|
||||
'sort' => 1,
|
||||
'sort' => 2,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.email-templates.edit',
|
||||
'name' => 'admin::app.acl.edit',
|
||||
'route' => 'admin.email-templates.edit',
|
||||
'sort' => 2,
|
||||
'sort' => 3,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.email-templates.delete',
|
||||
'name' => 'admin::app.acl.delete',
|
||||
'route' => 'admin.email-templates.delete',
|
||||
'sort' => 3,
|
||||
'sort' => 4,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.events',
|
||||
'name' => 'admin::app.acl.events',
|
||||
'route' => 'admin.events.index',
|
||||
'sort' => 1,
|
||||
'sort' => 2,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.events.create',
|
||||
'name' => 'admin::app.acl.create',
|
||||
|
|
@ -444,7 +444,7 @@ return [
|
|||
'key' => 'marketing.email-marketing.campaigns',
|
||||
'name' => 'admin::app.acl.campaigns',
|
||||
'route' => 'admin.campaigns.index',
|
||||
'sort' => 1,
|
||||
'sort' => 3,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.campaigns.create',
|
||||
'name' => 'admin::app.acl.create',
|
||||
|
|
@ -464,16 +464,36 @@ return [
|
|||
'key' => 'marketing.email-marketing.subscribers',
|
||||
'name' => 'admin::app.acl.subscribers',
|
||||
'route' => 'admin.customers.subscribers.index',
|
||||
'sort' => 1,
|
||||
'sort' => 4,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.subscribers.edit',
|
||||
'name' => 'admin::app.acl.edit',
|
||||
'route' => 'admin.customers.subscribers.edit',
|
||||
'sort' => 2,
|
||||
'sort' => 1,
|
||||
], [
|
||||
'key' => 'marketing.email-marketing.subscribers.delete',
|
||||
'name' => 'admin::app.acl.delete',
|
||||
'route' => 'admin.customers.subscribers.delete',
|
||||
'sort' => 2,
|
||||
], [
|
||||
'key' => 'marketing.sitemaps',
|
||||
'name' => 'admin::app.acl.sitemaps',
|
||||
'route' => 'admin.sitemaps.index',
|
||||
'sort' => 3,
|
||||
], [
|
||||
'key' => 'marketing.sitemaps.create',
|
||||
'name' => 'admin::app.acl.create',
|
||||
'route' => 'admin.sitemaps.create',
|
||||
'sort' => 1,
|
||||
], [
|
||||
'key' => 'marketing.sitemaps.edit',
|
||||
'name' => 'admin::app.acl.edit',
|
||||
'route' => 'admin.sitemaps.edit',
|
||||
'sort' => 2,
|
||||
], [
|
||||
'key' => 'marketing.sitemaps.delete',
|
||||
'name' => 'admin::app.acl.delete',
|
||||
'route' => 'admin.sitemaps.delete',
|
||||
'sort' => 3,
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -235,6 +235,12 @@ return [
|
|||
'route' => 'admin.customers.subscribers.index',
|
||||
'sort' => 3,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'marketing.sitemaps',
|
||||
'name' => 'admin::app.layouts.sitemaps',
|
||||
'route' => 'admin.sitemaps.index',
|
||||
'sort' => 3,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'cms',
|
||||
'name' => 'admin::app.layouts.cms',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
|
||||
class SitemapDataGrid extends DataGrid
|
||||
{
|
||||
protected $index = 'id';
|
||||
|
||||
protected $sortOrder = 'desc';
|
||||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('sitemaps')->addSelect('id', 'file_name', 'path', 'path as url');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
||||
public function addColumns()
|
||||
{
|
||||
$this->addColumn([
|
||||
'index' => 'id',
|
||||
'label' => trans('admin::app.datagrid.id'),
|
||||
'type' => 'number',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '40px',
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'file_name',
|
||||
'label' => trans('admin::app.datagrid.file-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'path',
|
||||
'label' => trans('admin::app.datagrid.path'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'url',
|
||||
'label' => trans('admin::app.datagrid.link-for-google'),
|
||||
'type' => 'string',
|
||||
'searchable' => false,
|
||||
'sortable' => false,
|
||||
'filterable' => false,
|
||||
'closure' => function ($row) {
|
||||
return '<a href="' . ($url = Storage::url($row->path . '/' . $row->file_name)) . '">' . $url . '</a>';
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareActions()
|
||||
{
|
||||
$this->addAction([
|
||||
'title' => trans('admin::app.datagrid.edit'),
|
||||
'method' => 'GET',
|
||||
'route' => 'admin.sitemaps.edit',
|
||||
'icon' => 'icon pencil-lg-icon',
|
||||
]);
|
||||
|
||||
$this->addAction([
|
||||
'title' => trans('admin::app.datagrid.delete'),
|
||||
'method' => 'POST',
|
||||
'route' => 'admin.sitemaps.delete',
|
||||
'icon' => 'icon trash-icon',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -80,6 +80,8 @@ return [
|
|||
'email-marketing' => 'التسويق عبر البريد الإلكتروني',
|
||||
'campaigns' => 'الحملات',
|
||||
'email-templates' => 'قوالب البريد الإلكتروني',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'خصم',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'المعاملات',
|
||||
|
|
@ -130,6 +132,13 @@ return [
|
|||
'promotions' => 'الترقيات',
|
||||
'cart-rules' => 'قواعد سلة التسوق',
|
||||
'catalog-rules' => 'قواعد الكتالوج',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -248,6 +257,9 @@ return [
|
|||
'update-status' => 'تحديث الحالة',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1269,6 +1281,21 @@ return [
|
|||
'delete-success' => 'تم حذف الحدث بنجاح.',
|
||||
'edit-error' => 'لا يمكن تعديل هذا الحدث.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@ return [
|
|||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'tax-categories' => 'Steuer-Kategorien',
|
||||
'tax-rates' => 'Steuersätze',
|
||||
'discount' => 'Rabatt',
|
||||
|
|
@ -129,6 +131,13 @@ return [
|
|||
'promotions' => 'Promotions',
|
||||
'cart-rules' => 'Warenkorbregeln',
|
||||
'catalog-rules' => 'Katalogregeln',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
'dashboard' =>
|
||||
[
|
||||
|
|
@ -247,6 +256,9 @@ return [
|
|||
'update-status' => 'Update-Status',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
'account' =>
|
||||
[
|
||||
|
|
@ -1270,6 +1282,21 @@ return [
|
|||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Can not edit this event.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' =>
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'Discount',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions',
|
||||
|
|
@ -135,6 +136,7 @@ return [
|
|||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
|
|
@ -257,6 +259,9 @@ return [
|
|||
'date' => 'Date',
|
||||
'transaction-id' => 'Transaction ID',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1291,6 +1296,21 @@ return [
|
|||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Can not edit this event.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ return [
|
|||
'campaigns' => 'Campañas',
|
||||
'email-templates' => 'Plantillas de Email',
|
||||
'events' => 'Eventos',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'Descuento',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transakcioj',
|
||||
|
|
@ -136,6 +137,8 @@ return [
|
|||
'campaigns' => 'Campañas',
|
||||
'subscribers' => 'Suscriptores del Boletín',
|
||||
'events' => 'Eventos',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -257,6 +260,9 @@ return [
|
|||
'date' => 'Fecha',
|
||||
'transaction-id' => 'Transacción #',
|
||||
'transaction-date' => 'Fecha de Transacción',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1278,6 +1284,21 @@ return [
|
|||
'delete-success' => 'Evento borrado con éxito.',
|
||||
'edit-error' => 'No se puede editar este evento.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ return [
|
|||
'email-marketing' => 'بازاریابی ایمیل',
|
||||
'campaigns' => 'کمپین ها',
|
||||
'email-templates' => 'قالب های ایمیل',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'تخفیف',
|
||||
'cms' => 'مدیری محتوا',
|
||||
'transactions' => 'پرداختی ها',
|
||||
|
|
@ -128,6 +130,13 @@ return [
|
|||
'promotions' => 'تبلیغات',
|
||||
'cart-rules' => 'قوانین سبد خرید',
|
||||
'catalog-rules' => 'قوانین فهرست',
|
||||
'email-marketing' => 'Email Márketing',
|
||||
'email-templates' => 'Plantillas de Email',
|
||||
'campaigns' => 'Campañas',
|
||||
'subscribers' => 'Suscriptores del Boletín',
|
||||
'events' => 'Eventos',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -247,6 +256,9 @@ return [
|
|||
'transaction-date' => 'تارید پرداخت',
|
||||
'date' => 'تاریخ',
|
||||
'subject' => 'موضوع',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1257,6 +1269,21 @@ return [
|
|||
'delete-success' => 'رویداد مورد نظر حذف شد.',
|
||||
'edit-error' => 'شما نمی توانید این رویداد را ویرایش کنید.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ return [
|
|||
'campaigns' => 'Campagnes',
|
||||
'email-templates' => 'Modèles d\'e-mails',
|
||||
'events' => 'Événements',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'Rabais',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions',
|
||||
|
|
@ -135,6 +136,7 @@ return [
|
|||
'campaigns' => 'Campagnes',
|
||||
'subscribers' => 'Abonnés à la newsletter',
|
||||
'events' => 'Événements',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Abonnement à la Newsletter',
|
||||
],
|
||||
|
||||
|
|
@ -257,6 +259,9 @@ return [
|
|||
'date' => 'Date',
|
||||
'transaction-id' => 'identifiant de transaction',
|
||||
'transaction-date' => 'Date de la transaction',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1289,6 +1294,21 @@ return [
|
|||
'delete-success' => 'Événement supprimé avec succès.',
|
||||
'edit-error' => 'Impossible de modifier cet événement.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ return [
|
|||
'campaigns' => 'अभियान',
|
||||
'email-templates' => 'ईमेल टेम्प्लेट',
|
||||
'events' => 'आयोजन',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'छूट',
|
||||
'cms' => 'सीएमएस',
|
||||
'transactions' => 'लेनदेन',
|
||||
|
|
@ -135,6 +136,7 @@ return [
|
|||
'campaigns' => 'अभियान',
|
||||
'subscribers' => 'न्यूज़लेटर सब्सक्राइबर्स',
|
||||
'events' => 'आयोजन',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'न्यूज़लेटर सदस्यता',
|
||||
],
|
||||
|
||||
|
|
@ -257,6 +259,9 @@ return [
|
|||
'date' => 'तारीख',
|
||||
'transaction-id' => 'लेनदेन आईडी',
|
||||
'transaction-date' => 'कार्यवाही की तिथि',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1291,6 +1296,21 @@ return [
|
|||
'delete-success' => 'ईवेंट सफलतापूर्वक हटाया गया।',
|
||||
'edit-error' => 'इस घटना को संपादित नहीं कर सकता।',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ return [
|
|||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'Sconti',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transactions',
|
||||
|
|
@ -127,6 +129,13 @@ return [
|
|||
'promotions' => 'Promozioni',
|
||||
'cart-rules' => 'Regole Carrello',
|
||||
'catalog-rules' => 'Regole Catalogo',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -245,6 +254,9 @@ return [
|
|||
'update-status' => 'Update Stato',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1260,6 +1272,21 @@ return [
|
|||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Can not edit this event.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ return [
|
|||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'Korting',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transacties',
|
||||
|
|
@ -129,6 +131,13 @@ return [
|
|||
'promotions' => 'Promoties',
|
||||
'cart-rules' => 'Cart Rules',
|
||||
'catalog-rules' => 'Catalog Rules',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -245,6 +254,9 @@ return [
|
|||
'rtl' => 'RTL',
|
||||
'ltr' => 'LTR',
|
||||
'update-status' => 'Update Status',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1256,6 +1268,21 @@ return [
|
|||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Can not edit this event.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@ return [
|
|||
'promotions' => 'Promocje',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campaigns',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'email-templates' => 'Email Templates',
|
||||
'discount' => 'Rabat',
|
||||
'cms' => 'System CMS',
|
||||
|
|
@ -126,6 +128,13 @@ return [
|
|||
'promotions' => 'Promocje',
|
||||
'cart-rules' => 'Zasady koszyka',
|
||||
'catalog-rules' => 'Zasady katalogu',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -243,6 +252,9 @@ return [
|
|||
'update-status' => 'Aktualizcja statusu',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1257,6 +1269,21 @@ return [
|
|||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Can not edit this event.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -79,6 +79,8 @@ return [
|
|||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campanhas',
|
||||
'email-templates' => 'Email Templates',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'Desconto',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'Transações',
|
||||
|
|
@ -127,6 +129,13 @@ return [
|
|||
'promotions' => 'Promoções',
|
||||
'cart-rules' => 'Regras do Carrinho',
|
||||
'catalog-rules' => 'Regras do Catálogo',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -244,6 +253,9 @@ return [
|
|||
'update-status' => 'Atualizar o status',
|
||||
'transaction-id' => 'Transaction Id',
|
||||
'transaction-date' => 'Transaction Date',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1256,6 +1268,21 @@ return [
|
|||
'delete-success' => 'Event deleted successfully.',
|
||||
'edit-error' => 'Não é possível editar esse evento.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -77,6 +77,8 @@ return [
|
|||
'email-marketing' => 'Email Marketing',
|
||||
'campaigns' => 'Campaigns',
|
||||
'email-templates' => 'Email Templates',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => 'İndirim',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => 'işlemler',
|
||||
|
|
@ -127,6 +129,13 @@ return [
|
|||
'promotions' => 'Promosyonlar',
|
||||
'cart-rules' => 'Alışveriş Sepeti Kuralları',
|
||||
'catalog-rules' => 'Katalog Kuralları',
|
||||
'email-marketing' => 'Email Marketing',
|
||||
'email-templates' => 'Email Templates',
|
||||
'campaigns' => 'Campaigns',
|
||||
'subscribers' => 'Newsletter Subscribers',
|
||||
'events' => 'Events',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => 'Newsletter Subscriptions',
|
||||
],
|
||||
|
||||
'dashboard' => [
|
||||
|
|
@ -244,6 +253,9 @@ return [
|
|||
'update-status' => 'Durum Güncelle',
|
||||
'transaction-id' => 'İşlem Id',
|
||||
'transaction-date' => 'İşlem Tarihi',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1256,6 +1268,21 @@ return [
|
|||
'delete-success' => 'Etkinlik başarıyla silindi.',
|
||||
'edit-error' => 'Bu etkinlik düzenlenemiyor.',
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
'error' => [
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ return [
|
|||
'campaigns' => '广告活动',
|
||||
'email-templates' => '邮件模板',
|
||||
'events' => '事件列表',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'discount' => '折扣',
|
||||
'cms' => 'CMS',
|
||||
'transactions' => '事物列表',
|
||||
|
|
@ -87,52 +88,53 @@ return [
|
|||
],
|
||||
|
||||
'acl' => [
|
||||
'dashboard' => '仪表盘',
|
||||
'sales' => '销售列表',
|
||||
'cancel' => '取消',
|
||||
'orders' => '订单列表',
|
||||
'shipments' => '发货列表',
|
||||
'invoices' => '发票列表',
|
||||
'refunds' => '退款列表',
|
||||
'catalog' => '商品目录',
|
||||
'products' => '产品列表',
|
||||
'copy' => '复制',
|
||||
'categories' => '分类列表',
|
||||
'attributes' => '属性列表',
|
||||
'attribute-families' => '属性家族',
|
||||
'customers' => '客户列表',
|
||||
'addresses' => '地址列表',
|
||||
'note' => '备注',
|
||||
'groups' => '客户群',
|
||||
'reviews' => '评论列表',
|
||||
'configure' => '全局配置',
|
||||
'settings' => '系统设置',
|
||||
'locales' => '多语言',
|
||||
'currencies' => '货币列表',
|
||||
'exchange-rates' => '汇率换算',
|
||||
'inventory-sources' => '货源列表',
|
||||
'channels' => '渠道列表',
|
||||
'users' => '后台用户',
|
||||
'roles' => '权限规则',
|
||||
'sliders' => '图片轮播',
|
||||
'taxes' => '税务列表',
|
||||
'tax-categories' => '税务分类',
|
||||
'tax-rates' => '税率',
|
||||
'view' => '查看',
|
||||
'edit' => '编辑',
|
||||
'create' => '添加',
|
||||
'delete' => '删除',
|
||||
'mass-delete' => '批量删除',
|
||||
'mass-update' => '批量更新',
|
||||
'marketing' => '市场营销',
|
||||
'promotions' => '促销活动',
|
||||
'cart-rules' => '购物车规则',
|
||||
'catalog-rules' => '商品目录规则',
|
||||
'email-marketing' => '邮件营销',
|
||||
'email-templates' => '邮件模板',
|
||||
'campaigns' => '活动列表',
|
||||
'subscribers' => '邮件订阅',
|
||||
'events' => '事件列表',
|
||||
'dashboard' => '仪表盘',
|
||||
'sales' => '销售列表',
|
||||
'cancel' => '取消',
|
||||
'orders' => '订单列表',
|
||||
'shipments' => '发货列表',
|
||||
'invoices' => '发票列表',
|
||||
'refunds' => '退款列表',
|
||||
'catalog' => '商品目录',
|
||||
'products' => '产品列表',
|
||||
'copy' => '复制',
|
||||
'categories' => '分类列表',
|
||||
'attributes' => '属性列表',
|
||||
'attribute-families' => '属性家族',
|
||||
'customers' => '客户列表',
|
||||
'addresses' => '地址列表',
|
||||
'note' => '备注',
|
||||
'groups' => '客户群',
|
||||
'reviews' => '评论列表',
|
||||
'configure' => '全局配置',
|
||||
'settings' => '系统设置',
|
||||
'locales' => '多语言',
|
||||
'currencies' => '货币列表',
|
||||
'exchange-rates' => '汇率换算',
|
||||
'inventory-sources' => '货源列表',
|
||||
'channels' => '渠道列表',
|
||||
'users' => '后台用户',
|
||||
'roles' => '权限规则',
|
||||
'sliders' => '图片轮播',
|
||||
'taxes' => '税务列表',
|
||||
'tax-categories' => '税务分类',
|
||||
'tax-rates' => '税率',
|
||||
'view' => '查看',
|
||||
'edit' => '编辑',
|
||||
'create' => '添加',
|
||||
'delete' => '删除',
|
||||
'mass-delete' => '批量删除',
|
||||
'mass-update' => '批量更新',
|
||||
'marketing' => '市场营销',
|
||||
'promotions' => '促销活动',
|
||||
'cart-rules' => '购物车规则',
|
||||
'catalog-rules' => '商品目录规则',
|
||||
'email-marketing' => '邮件营销',
|
||||
'email-templates' => '邮件模板',
|
||||
'campaigns' => '活动列表',
|
||||
'subscribers' => '邮件订阅',
|
||||
'events' => '事件列表',
|
||||
'sitemaps' => 'Sitemaps',
|
||||
'newsletter-subscriptions' => '邮件列表订阅',
|
||||
],
|
||||
|
||||
|
|
@ -255,6 +257,9 @@ return [
|
|||
'date' => '日期',
|
||||
'transaction-id' => '交易ID',
|
||||
'transaction-date' => '交易日期',
|
||||
'file-name' => 'File Name',
|
||||
'path' => 'Path',
|
||||
'link-for-google' => 'Link For Google',
|
||||
],
|
||||
|
||||
'account' => [
|
||||
|
|
@ -1264,6 +1269,21 @@ return [
|
|||
'update-success' => '事件更新成功.',
|
||||
'delete-success' => '事件删除成功.',
|
||||
'edit-error' => '无法编辑此活动.'
|
||||
],
|
||||
|
||||
'sitemaps' => [
|
||||
'title' => 'Sitemaps',
|
||||
'add-title' => 'Add Sitemap',
|
||||
'edit-title' => 'Edit Sitemap',
|
||||
'save-btn-title' => 'Save',
|
||||
'general' => 'General',
|
||||
'file-name' => 'File Name',
|
||||
'file-name-info' => 'Example: sitemap.xml',
|
||||
'path' => 'Path',
|
||||
'path-info' => 'Example: "/sitemap/" or "/" for base path',
|
||||
'create-success' => 'Sitemap created successfully.',
|
||||
'update-success' => 'Sitemap updated successfully.',
|
||||
'delete-success' => 'Sitemap deleted successfully.',
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,58 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.marketing.sitemaps.add-title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
|
||||
<form method="POST" action="{{ route('admin.sitemaps.store') }}" @submit.prevent="onSubmit" enctype="multipart/form-data">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="window.location = '{{ route('admin.sitemaps.index') }}'"></i>
|
||||
|
||||
{{ __('admin::app.marketing.sitemaps.add-title') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.sitemaps.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
{!! view_render_event('bagisto.admin.marketing.sitemaps.create.before') !!}
|
||||
|
||||
<accordian title="{{ __('admin::app.marketing.sitemaps.general') }}" :active="true">
|
||||
<div slot="body">
|
||||
<div class="control-group" :class="[errors.has('file_name') ? 'has-error' : '']">
|
||||
<label for="file_name" class="required">{{ __('admin::app.marketing.sitemaps.file-name') }}</label>
|
||||
<input v-validate="'required'" class="control" id="file_name" name="file_name" value="{{ old('file_name') }}" data-vv-as=""{{ __('admin::app.marketing.sitemaps.file-name') }}""/>
|
||||
<span class="control-error" v-if="errors.has('file_name')">@{{ errors.first('file_name') }}</span>
|
||||
<span class="control-info">{{ __('admin::app.marketing.sitemaps.file-name-info') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('path') ? 'has-error' : '']">
|
||||
<label for="path" class="required">{{ __('admin::app.marketing.sitemaps.path') }}</label>
|
||||
<input v-validate="'required'" class="control" id="path" name="path" value="{{ old('path') }}" data-vv-as=""{{ __('admin::app.marketing.sitemaps.path') }}""/>
|
||||
<span class="control-error" v-if="errors.has('path')">@{{ errors.first('path') }}</span>
|
||||
<span class="control-info">{{ __('admin::app.marketing.sitemaps.path-info') }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
{!! view_render_event('bagisto.admin.marketing.sitemaps.create.after') !!}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.marketing.sitemaps.edit-title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
|
||||
<form method="POST" action="{{ route('admin.sitemaps.update', $sitemap->id) }}" @submit.prevent="onSubmit" enctype="multipart/form-data">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="window.location = '{{ route('admin.sitemaps.index') }}'"></i>
|
||||
|
||||
{{ __('admin::app.marketing.sitemaps.edit-title') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.sitemaps.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input name="_method" type="hidden" value="PUT">
|
||||
|
||||
{!! view_render_event('bagisto.admin.marketing.sitemaps.update.before') !!}
|
||||
|
||||
<accordian title="{{ __('admin::app.marketing.sitemaps.general') }}" :active="true">
|
||||
<div slot="body">
|
||||
<div class="control-group" :class="[errors.has('file_name') ? 'has-error' : '']">
|
||||
<label for="file_name" class="required">{{ __('admin::app.marketing.sitemaps.file-name') }}</label>
|
||||
<input v-validate="'required'" class="control" id="file_name" name="file_name" value="{{ old('file_name') ?: $sitemap->file_name }}" data-vv-as=""{{ __('admin::app.marketing.sitemaps.file-name') }}""/>
|
||||
<span class="control-error" v-if="errors.has('file_name')">@{{ errors.first('file_name') }}</span>
|
||||
<span class="control-info">{{ __('admin::app.marketing.sitemaps.file-name-info') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('path') ? 'has-error' : '']">
|
||||
<label for="path" class="required">{{ __('admin::app.marketing.sitemaps.path') }}</label>
|
||||
<input v-validate="'required'" class="control" id="path" name="path" value="{{ old('path') ?: $sitemap->path }}" data-vv-as=""{{ __('admin::app.marketing.sitemaps.path') }}""/>
|
||||
<span class="control-error" v-if="errors.has('path')">@{{ errors.first('path') }}</span>
|
||||
<span class="control-info">{{ __('admin::app.marketing.sitemaps.path-info') }}</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
{!! view_render_event('bagisto.admin.marketing.sitemaps.update.after') !!}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('admin::app.marketing.sitemaps.title') }}
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>{{ __('admin::app.marketing.sitemaps.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.sitemaps.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.marketing.sitemaps.add-title') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
<datagrid-plus src="{{ route('admin.sitemaps.index') }}"></datagrid-plus>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -8,6 +8,7 @@ use Webkul\Core\Http\Controllers\SubscriptionController;
|
|||
use Webkul\Marketing\Http\Controllers\CampaignController;
|
||||
use Webkul\Marketing\Http\Controllers\EventController;
|
||||
use Webkul\Marketing\Http\Controllers\TemplateController;
|
||||
use Webkul\Sitemap\Http\Controllers\Admin\SitemapController;
|
||||
|
||||
/**
|
||||
* Marketing routes.
|
||||
|
|
@ -171,5 +172,31 @@ Route::group(['middleware' => ['web', 'admin', 'admin_locale'], 'prefix' => conf
|
|||
Route::put('subscribers/update/{id}', [SubscriptionController::class, 'update'])->defaults('_config', [
|
||||
'redirect' => 'admin.customers.subscribers.index',
|
||||
])->name('admin.customers.subscribers.update');
|
||||
|
||||
|
||||
/**
|
||||
* Cart rules routes.
|
||||
*/
|
||||
Route::get('sitemaps', [SitemapController::class, 'index'])->defaults('_config', [
|
||||
'view' => 'admin::marketing.sitemaps.index',
|
||||
])->name('admin.sitemaps.index');
|
||||
|
||||
Route::get('sitemaps/create', [SitemapController::class, 'create'])->defaults('_config', [
|
||||
'view' => 'admin::marketing.sitemaps.create',
|
||||
])->name('admin.sitemaps.create');
|
||||
|
||||
Route::post('sitemaps/create', [SitemapController::class, 'store'])->defaults('_config', [
|
||||
'redirect' => 'admin.sitemaps.index',
|
||||
])->name('admin.sitemaps.store');
|
||||
|
||||
Route::get('sitemaps/edit/{id}', [SitemapController::class, 'edit'])->defaults('_config', [
|
||||
'view' => 'admin::marketing.sitemaps.edit',
|
||||
])->name('admin.sitemaps.edit');
|
||||
|
||||
Route::put('sitemaps/edit/{id}', [SitemapController::class, 'update'])->defaults('_config', [
|
||||
'redirect' => 'admin.sitemaps.index',
|
||||
])->name('admin.sitemaps.update');
|
||||
|
||||
Route::post('sitemaps/delete/{id}', [SitemapController::class, 'destroy'])->name('admin.sitemaps.delete');
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ return [
|
|||
\Webkul\Ui\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\User\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\Velocity\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\Sitemap\Providers\ModuleServiceProvider::class,
|
||||
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Contracts;
|
||||
|
||||
interface Sitemap
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('sitemaps', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->string('file_name');
|
||||
$table->string('path');
|
||||
|
||||
$table->datetime('generated_at')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('sitemaps');
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Http\Controllers\Admin;
|
||||
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Webkul\Admin\DataGrids\SitemapDataGrid;
|
||||
use Webkul\Sitemap\Repositories\SitemapRepository;
|
||||
|
||||
class SitemapController extends Controller
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
|
||||
/**
|
||||
* Contains route related configuration
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_config;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
public SitemapRepository $sitemapRepository
|
||||
)
|
||||
{
|
||||
$this->_config = request('_config');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
if (request()->ajax()) {
|
||||
return app(SitemapDataGrid::class)->toJson();
|
||||
}
|
||||
|
||||
return view($this->_config['view']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view($this->_config['view']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store()
|
||||
{
|
||||
$this->validate(request(), [
|
||||
'file_name' => 'required',
|
||||
'path' => 'required',
|
||||
]);
|
||||
|
||||
Event::dispatch('marketing.sitemaps.create.before');
|
||||
|
||||
$sitemap = $this->sitemapRepository->create(request()->all());
|
||||
|
||||
Event::dispatch('marketing.sitemaps.create.after', $sitemap);
|
||||
|
||||
session()->flash('success', trans('admin::app.marketing.sitemaps.create-success'));
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
$sitemap = $this->sitemapRepository->findOrFail($id);
|
||||
|
||||
return view($this->_config['view'], compact('sitemap'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update($id)
|
||||
{
|
||||
$this->validate(request(), [
|
||||
'file_name' => 'required',
|
||||
'path' => 'required',
|
||||
]);
|
||||
|
||||
Event::dispatch('marketing.sitemaps.update.before', $id);
|
||||
|
||||
$sitemap = $this->sitemapRepository->update(request()->all(), $id);
|
||||
|
||||
Event::dispatch('marketing.sitemaps.update.after', $sitemap);
|
||||
|
||||
session()->flash('success', trans('admin::app.marketing.sitemaps.update-success'));
|
||||
|
||||
return redirect()->route($this->_config['redirect']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$sitemap = $this->sitemapRepository->findOrFail($id);
|
||||
|
||||
Storage::delete($sitemap->path . '/' . $sitemap->file_name);
|
||||
|
||||
try {
|
||||
Event::dispatch('marketing.sitemaps.delete.before', $id);
|
||||
|
||||
$this->sitemapRepository->delete($id);
|
||||
|
||||
Event::dispatch('marketing.sitemaps.delete.after', $id);
|
||||
|
||||
return response()->json(['message' => trans('admin::app.marketing.sitemaps.delete-success')]);
|
||||
} catch (\Exception $e) {}
|
||||
|
||||
return response()->json(['message' => trans('admin::app.response.delete-failed', ['name' => 'Sitemap'])], 500);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Spatie\Sitemap\Contracts\Sitemapable;
|
||||
use Spatie\Sitemap\Tags\Url;
|
||||
use Webkul\Category\Models\Category as BaseCategory;
|
||||
|
||||
class Category extends BaseCategory implements Sitemapable
|
||||
{
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function toSitemapTag(): Url | string | array
|
||||
{
|
||||
if (! $this->slug
|
||||
|| ! $this->status
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return route('shop.productOrCategory.index', $this->slug);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Webkul\Category\Models\CategoryTranslation as BaseCategoryTranslation;
|
||||
|
||||
class CategoryTranslation extends BaseCategoryTranslation
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Spatie\Sitemap\Contracts\Sitemapable;
|
||||
use Spatie\Sitemap\Tags\Url;
|
||||
use Webkul\CMS\Models\CmsPage as BaseCmsPage;
|
||||
|
||||
class CmsPage extends BaseCmsPage implements Sitemapable
|
||||
{
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function toSitemapTag(): Url | string | array
|
||||
{
|
||||
if (! $this->url_key) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return route('shop.cms.page', $this->url_key);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Webkul\CMS\Models\CmsPageTranslation as BaseCmsPageTranslation;
|
||||
|
||||
class CmsPageTranslation extends BaseCmsPageTranslation
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Spatie\Sitemap\Contracts\Sitemapable;
|
||||
use Spatie\Sitemap\Tags\Url;
|
||||
use Webkul\Product\Models\Product as BaseProduct;
|
||||
|
||||
class Product extends BaseProduct implements Sitemapable
|
||||
{
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function toSitemapTag(): Url | string | array
|
||||
{
|
||||
if (! $this->url_key
|
||||
|| ! $this->status
|
||||
|| ! $this->visible_individually
|
||||
) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return route('shop.productOrCategory.index', $this->url_key);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Webkul\Sitemap\Contracts\Sitemap as SitemapContract;
|
||||
|
||||
class Sitemap extends Model implements SitemapContract
|
||||
{
|
||||
protected $fillable = [
|
||||
'file_name',
|
||||
'path',
|
||||
'generated_at',
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Models;
|
||||
|
||||
use Konekt\Concord\Proxies\ModelProxy;
|
||||
|
||||
class SitemapProxy extends ModelProxy
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Providers;
|
||||
|
||||
use Konekt\Concord\BaseModuleServiceProvider;
|
||||
|
||||
class ModuleServiceProvider extends BaseModuleServiceProvider
|
||||
{
|
||||
protected $models = [
|
||||
\Webkul\Sitemap\Models\Sitemap::class
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class SitemapServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->app->register(ModuleServiceProvider::class);
|
||||
|
||||
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Sitemap\Repositories;
|
||||
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Spatie\Sitemap\Sitemap;
|
||||
use Spatie\Sitemap\Tags\Url;
|
||||
use Webkul\Core\Eloquent\Repository;
|
||||
use Webkul\Sitemap\Models\Product;
|
||||
use Webkul\Sitemap\Models\Category;
|
||||
use Webkul\Sitemap\Models\CmsPage;
|
||||
|
||||
class SitemapRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* Specify Model class name
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function model()
|
||||
{
|
||||
return 'Webkul\Sitemap\Contracts\Sitemap';
|
||||
}
|
||||
|
||||
/**
|
||||
* Create.
|
||||
*
|
||||
* @param array $attributes
|
||||
* @return mixed
|
||||
*/
|
||||
public function create(array $attributes)
|
||||
{
|
||||
$sitemap = parent::create($attributes);
|
||||
|
||||
$this->generateSitemap($sitemap);
|
||||
|
||||
return $sitemap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update.
|
||||
*
|
||||
* @param array $attributes
|
||||
* @param $id
|
||||
* @return mixed
|
||||
*/
|
||||
public function update(array $attributes, $id)
|
||||
{
|
||||
$sitemap = $this->find($id);
|
||||
|
||||
Storage::delete($sitemap->path . '/' . $sitemap->file_name);
|
||||
|
||||
$sitemap = parent::update($attributes, $id);
|
||||
|
||||
$this->generateSitemap($sitemap);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update.
|
||||
*
|
||||
* @param \Webkul\Sitemap\Contracts\Sitemap $sitemap
|
||||
* @return void
|
||||
*/
|
||||
public function generateSitemap($sitemap)
|
||||
{
|
||||
Sitemap::create()
|
||||
->add(Url::create('/'))
|
||||
->add(Category::all())
|
||||
->add(Product::all())
|
||||
->add(CmsPage::all())
|
||||
->writeToDisk('public', $sitemap->path . '/' . $sitemap->file_name);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue