Compare commits

..

No commits in common. '0cecdc8477d617642b00409a1193ea2b74305ae7' and 'c17c35ec21c3d73d932c0e98a5a57a0c5feda2a9' have entirely different histories.

@ -46,7 +46,7 @@ SMS_USER=""
SMS_PASS="" SMS_PASS=""
SMS_NUMBER="" SMS_NUMBER=""
AWS_ACCESS_KEY_ID=O AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY= AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1 AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET= AWS_BUCKET=
@ -65,4 +65,3 @@ PAY_GATWAY=zarinpal
THUMBNAIL_SIZE=600x600 THUMBNAIL_SIZE=600x600
XLANG=false XLANG=false
XLANG_MAIN=en

@ -19,7 +19,7 @@ jobs:
- name: Copy .env - name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');" run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies - name: Install Dependencies
run: composer update -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key - name: Generate key
run: php artisan key:generate run: php artisan key:generate
- name: Directory Permissions - name: Directory Permissions

@ -1,33 +0,0 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class XlangSaveRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->check() && auth()->user()->hasRole('super-admin');
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, mixed>
*/
public function rules()
{
return [
//
'name' => ['required','string','min:3','max:128'],
'tag' => ['required','alpha_dash:','min:2','max:7'],
'img' => ['nullable','file','mimes:svg,png,jpg,gif'],
];
}
}

@ -35,10 +35,9 @@ use Illuminate\Database\Eloquent\SoftDeletes;
*/ */
class Xlang extends Model class Xlang extends Model
{ {
use HasFactory, SoftDeletes; use HasFactory,SoftDeletes;
public function imgUrl() public function imgUrl(){
{
if ($this->img == null || $this->img == '') { if ($this->img == null || $this->img == '') {
return asset('/images/logo.png'); return asset('/images/logo.png');
} else { } else {

@ -28,12 +28,10 @@
"laravel/sanctum": "^2.14.1", "laravel/sanctum": "^2.14.1",
"laravel/tinker": "^2.7", "laravel/tinker": "^2.7",
"laravel/ui": "^3.4", "laravel/ui": "^3.4",
"nyholm/psr7": "^1.8",
"pishran/zarinpal": "^4.3", "pishran/zarinpal": "^4.3",
"plank/laravel-metable": "^5.2", "plank/laravel-metable": "^5.2",
"psr/log": "v2.*", "psr/log": "v2.*",
"symfony/dom-crawler": "^6.2", "symfony/dom-crawler": "^6.2",
"symfony/psr-http-message-bridge": "^7.0",
"xmen/starter-kit": "^v3.1.0" "xmen/starter-kit": "^v3.1.0"
}, },
"require-dev": { "require-dev": {

163
composer.lock generated

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "476fc03eaacbf9c04610c95da580105c", "content-hash": "e34256b2073a1fa70ed816043240b6de",
"packages": [ "packages": [
{ {
"name": "artesaos/seotools", "name": "artesaos/seotools",
@ -3566,84 +3566,6 @@
], ],
"time": "2023-02-08T01:06:31+00:00" "time": "2023-02-08T01:06:31+00:00"
}, },
{
"name": "nyholm/psr7",
"version": "1.8.1",
"source": {
"type": "git",
"url": "https://github.com/Nyholm/psr7.git",
"reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Nyholm/psr7/zipball/aa5fc277a4f5508013d571341ade0c3886d4d00e",
"reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e",
"shasum": ""
},
"require": {
"php": ">=7.2",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1 || ^2.0"
},
"provide": {
"php-http/message-factory-implementation": "1.0",
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"http-interop/http-factory-tests": "^0.9",
"php-http/message-factory": "^1.0",
"php-http/psr7-integration-tests": "^1.0",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
"symfony/error-handler": "^4.4"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.8-dev"
}
},
"autoload": {
"psr-4": {
"Nyholm\\Psr7\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com"
},
{
"name": "Martijn van der Ven",
"email": "martijn@vanderven.se"
}
],
"description": "A fast PHP7 implementation of PSR-7",
"homepage": "https://tnyholm.se",
"keywords": [
"psr-17",
"psr-7"
],
"support": {
"issues": "https://github.com/Nyholm/psr7/issues",
"source": "https://github.com/Nyholm/psr7/tree/1.8.1"
},
"funding": [
{
"url": "https://github.com/Zegnat",
"type": "github"
},
{
"url": "https://github.com/nyholm",
"type": "github"
}
],
"time": "2023-11-13T09:31:12+00:00"
},
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
"version": "v9.99.100", "version": "v9.99.100",
@ -7006,89 +6928,6 @@
], ],
"time": "2023-11-17T21:06:49+00:00" "time": "2023-11-17T21:06:49+00:00"
}, },
{
"name": "symfony/psr-http-message-bridge",
"version": "v7.0.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d9fadaf9541d7c01c307e48905d7ce1dbee6bf38",
"reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38",
"shasum": ""
},
"require": {
"php": ">=8.2",
"psr/http-message": "^1.0|^2.0",
"symfony/http-foundation": "^6.4|^7.0"
},
"conflict": {
"php-http/discovery": "<1.15",
"symfony/http-kernel": "<6.4"
},
"require-dev": {
"nyholm/psr7": "^1.1",
"php-http/discovery": "^1.15",
"psr/log": "^1.1.4|^2|^3",
"symfony/browser-kit": "^6.4|^7.0",
"symfony/config": "^6.4|^7.0",
"symfony/event-dispatcher": "^6.4|^7.0",
"symfony/framework-bundle": "^6.4|^7.0",
"symfony/http-kernel": "^6.4|^7.0"
},
"type": "symfony-bridge",
"autoload": {
"psr-4": {
"Symfony\\Bridge\\PsrHttpMessage\\": ""
},
"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": "PSR HTTP message bridge",
"homepage": "https://symfony.com",
"keywords": [
"http",
"http-message",
"psr-17",
"psr-7"
],
"support": {
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.3"
},
"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": "2024-01-23T15:02:46+00:00"
},
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v6.4.0", "version": "v6.4.0",

@ -94,7 +94,6 @@ return [
'locale' => 'fa', 'locale' => 'fa',
'xlang' => env('XLANG',false), 'xlang' => env('XLANG',false),
'xlang_main' => env('XLANG_MAIN','en'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

@ -34,23 +34,15 @@ class DatabaseSeeder extends Seeder
XlangSeeder::class, XlangSeeder::class,
CategorySeeder::class, CategorySeeder::class,
CatSeeder::class, CatSeeder::class,
CustomerSeeder::class,
// PostSeeder::class,
// MenuSeeder::class,
// PropSeeder::class,
// ProductSeeder::class,
// InvoiceSeeder::class,
// SliderSeeder::class,
SettingSeeder::class,
MenuSeeder::class,
]); ]);
if (env('NO_SEED_PRODUCT', 'false') != 'true') {
$this->call([
PostSeeder::class,
MenuSeeder::class,
PropSeeder::class,
ProductSeeder::class,
// InvoiceSeeder::class,
// SliderSeeder::class,
]);
$this->call([
CustomerSeeder::class,
SettingSeeder::class,
MenuSeeder::class,
]);
}
} }
} }

@ -37,8 +37,6 @@ REPLACE INTO `settings` (`id`, `section`, `type`, `title`, `active`, `key`, `val
(NULL, '6footer', 'text', 'شبکه اجتماعی توییتر', 1, 'soc_tw', 'https://twitter.com/a1gard', '2022-08-02 05:11:20', '2022-08-02 05:24:06'), (NULL, '6footer', 'text', 'شبکه اجتماعی توییتر', 1, 'soc_tw', 'https://twitter.com/a1gard', '2022-08-02 05:11:20', '2022-08-02 05:24:06'),
(NULL, '6footer', 'text', 'شبکه اجتماعی واستاپ (شماره با کد کشور)', 1, 'soc_wp', '+989121234567', '2022-08-02 05:11:20', '2022-08-02 05:27:02'), (NULL, '6footer', 'text', 'شبکه اجتماعی واستاپ (شماره با کد کشور)', 1, 'soc_wp', '+989121234567', '2022-08-02 05:11:20', '2022-08-02 05:27:02'),
(NULL, '6footer', 'text', 'شبکه اجتماعی یوتویب', 1, 'soc_yt', NULL, '2022-08-02 05:11:20', '2022-08-02 05:11:20'), (NULL, '6footer', 'text', 'شبکه اجتماعی یوتویب', 1, 'soc_yt', NULL, '2022-08-02 05:11:20', '2022-08-02 05:11:20'),
(NULL, '6footer', 'text', 'عنوان فوتر', 1, 'footer_title', 'اطلاعات تماس', '2022-08-02 05:11:20', '2022-08-02 05:11:20'),
(NULL, '6footer', 'editor', 'نوشته فوتر', 1, 'footer_text', 'افراد گروه سوم از اهمیت به پایان رساندن آگاه هستند. آنها با تفکر منطقی، طرحی روشن ارائه می‌کنند. آنها نه تنها برای پایان دادن به پروژه‌ی خود در آینده برنامه ریزی می‌کنند، بلکه به تمام نتایج و عواقب اجرای آن برنامه هم می‌اندیشند. این افراد کسانی هستند که هنر به پایان رساندن را می‌دانند. ', '2022-08-02 05:11:20', '2022-08-02 05:11:20'),
(NULL, '7seo', 'text', 'کد رنگ سایت', 1, 'color', '#3593D2', '2022-08-02 05:18:38', '2022-08-02 05:24:06'), (NULL, '7seo', 'text', 'کد رنگ سایت', 1, 'color', '#3593D2', '2022-08-02 05:18:38', '2022-08-02 05:24:06'),
(NULL, '7seo', 'text', 'سئو کلمات کلیدی', 1, 'keywords', 'فروشگاه، فروش آنلاین', '2022-08-02 05:19:10', '2022-08-02 05:24:06'), (NULL, '7seo', 'text', 'سئو کلمات کلیدی', 1, 'keywords', 'فروشگاه، فروش آنلاین', '2022-08-02 05:19:10', '2022-08-02 05:24:06'),
(NULL, '7seo', 'text', 'سئو جزئیات', 1, 'desc', 'توضیحات فروشگاه شما', '2022-08-02 05:20:08', '2022-08-02 05:24:06'), (NULL, '7seo', 'text', 'سئو جزئیات', 1, 'desc', 'توضیحات فروشگاه شما', '2022-08-02 05:20:08', '2022-08-02 05:24:06'),

@ -188,287 +188,287 @@
"Invoices list": "Список счетов", "Invoices list": "Список счетов",
"Invoices status changed successfully": "Статус счетов успешно изменен", "Invoices status changed successfully": "Статус счетов успешно изменен",
"Is breaking news?": "Разбить на новости?", "Is breaking news?": "Разбить на новости?",
"Is default": "«По умолчанию»", "Is default": "",
"Is effective price?": "«Эффективная цена?»", "Is effective price?": "",
"Key": "Ключ", "Key": "",
"LTR": "ЛТР", "LTR": "",
"Label": "Этикетка", "Label": "",
"Lang": "Ланг", "Lang": "",
"Language list": "«Список языков»", "Language list": "",
"Languages": "«Языки»", "Languages": "",
"Languages translate": "«Языки переводят»", "Languages translate": "",
"Last update": "Последнее обновление", "Last update": "",
"Link": "Связь", "Link": "",
"Login": "Авторизоваться", "Login": "",
"Login / Register": "«Войти/Зарегистрироваться»", "Login \/ Register": "",
"Logout": "Выйти", "Logout": "",
"Logs": "«Журналы»", "Logs": "",
"Long text": "«Длинный текст»", "Long text": "",
"Magazine": "«Журнал»", "Magazine": "",
"Main address": "«Основной адрес»", "Main address": "",
"Main category": "Главная категория", "Main category": "",
"Main product category": "«Основная категория товаров»", "Main product category": "",
"Manage": "Управлять", "Manage": "",
"Max click": "«Макс клик»", "Max click": "",
"Menus": "«Меню»", "Menus": "",
"Menus list": "«Список меню»", "Menus list": "",
"Menus preview": "«Предварительный просмотр меню»", "Menus preview": "",
"Metas and publish": "«Метаинформация и публикация»", "Metas and publish": "",
"Mobile": "«Мобильный»", "Mobile": "",
"Monday": "Понедельник", "Monday": "",
"Multi select type": "«Множественный выбор типа»", "Multi select type": "",
"Name": "Имя", "Name": "",
"Name and lastname": "«Имя и фамилия»", "Name and lastname": "",
"New Advertise": "«Новая реклама»", "New Advertise": "",
"New Clip": "«Новый клип»", "New Clip": "",
"New Customer": "Новый клиент", "New Customer": "",
"New Discount": "«Новая скидка»", "New Discount": "",
"New Gallery": "«Новая Галерея»", "New Gallery": "",
"New Invoice": "«Новый счет»", "New Invoice": "",
"New Poll": "«Новый опрос»", "New Poll": "",
"New Post": "Новый пост", "New Post": "",
"New Product": "Новый продукт", "New Product": "",
"New Product category": "«Новая категория товаров»", "New Product category": "",
"New Property": "«Новая недвижимость»", "New Property": "",
"New Slider": "«Новый слайдер»", "New Slider": "",
"New Video": "«Новое видео»", "New Video": "",
"New category": "Новая категория", "New category": "",
"New customer": "Новый клиент", "New customer": "",
"New discount": "«Новая скидка»", "New discount": "",
"New gallery": "«Новая галерея»", "New gallery": "",
"New invoice": "«Новый счет»", "New invoice": "",
"New language": "Новый язык", "New language": "",
"New menu": "«Новое меню»", "New menu": "",
"New product": "Новый продукт", "New product": "",
"New product category": "«Новая категория товаров»", "New product category": "",
"New ticket": "«Новый билет»", "New ticket": "",
"New transport": "«Новый транспорт»", "New transport": "",
"New user": "Новый пользователь", "New user": "",
"Next": "Следующий", "Next": "",
"No": "Нет", "No": "",
"No parent": "«Нет родителя»", "No parent": "",
"No product": "«Нет товара»", "No product": "",
"Normal": "Нормальный", "Normal": "",
"Not required": "Не требуется", "Not required": "",
"Number type": "«Тип номера»", "Number type": "",
"Online": "В сети", "Online": "",
"Option": "Вариант", "Option": "",
"Options": "Параметры", "Options": "",
"Order": "Заказ", "Order": "",
"Order type": "«Тип заказа»", "Order type": "",
"Out stock": "Нет в наличии", "Out stock": "",
"Page name": "«Название страницы»", "Page name": "",
"Parent": "«Родитель»", "Parent": "",
"Password": "Пароль", "Password": "",
"Pay by credit": "«Оплата в кредит»", "Pay by credit": "",
"Payment Type": "Способ оплаты", "Payment Type": "",
"Payment error": "Ошибка оплаты", "Payment error": "",
"Payment price:": "«Стоимость оплаты:»", "Payment price:": "",
"Pediatric dental clips": "«Детские стоматологические зажимы»", "Pediatric dental clips": "",
"Pending": "В ожидании", "Pending": "",
"Phone": "Телефон", "Phone": "",
"Pictures": "Картинки", "Pictures": "",
"Pin": "Приколоть", "Pin": "",
"Please change payment gate.": "«Пожалуйста, измените платежный шлюз».", "Please change payment gate.": "",
"Please confirm your password before continuing.": "«Пожалуйста, подтвердите свой пароль, прежде чем продолжить».", "Please confirm your password before continuing.": "",
"Poll": "Голосование", "Poll": "",
"Poll list": "«Список опросов»", "Poll list": "",
"Polls": "Опросы", "Polls": "",
"Polls list": "«Список опросов»", "Polls list": "",
"Post": "Почта", "Post": "",
"Post Text": "«Опубликовать текст»", "Post Text": "",
"Post list": "«Список сообщений»", "Post list": "",
"Post reply": "Ответить", "Post reply": "",
"Postal code": "Почтовый индекс", "Postal code": "",
"Posts": "Сообщения", "Posts": "",
"Posts search": "«Поиск постов»", "Posts search": "",
"Preview": "«Предварительный просмотр»", "Preview": "",
"Previous": "Предыдущий", "Previous": "",
"Price": "Цена", "Price": "",
"Price range": "Ценовой диапазон", "Price range": "",
"Print": "Распечатать", "Print": "",
"Processing": "Обработка", "Processing": "",
"Product": "Продукт", "Product": "",
"Product added to favorite": "«Товар добавлен в избранное»", "Product added to favorite": "",
"Product categories": "Категории продукта", "Product categories": "",
"Product categories list": "«Список категорий товаров»", "Product categories list": "",
"Product categories node": "«Узел категорий товаров»", "Product categories node": "",
"Product category": "Категория продукта", "Product category": "",
"Product category Parent": "«Категория продукта для родителей»", "Product category Parent": "",
"Product category created successfully": "«Категория товаров успешно создана»", "Product category created successfully": "",
"Product category deleted successfully": "«Категория товара успешно удалена»", "Product category deleted successfully": "",
"Product category name": "«Название категории товаров»", "Product category name": "",
"Product category updated successfully": "«Категория продукта успешно обновлена»", "Product category updated successfully": "",
"Product deleted successfully": "«Продукт успешно удален»", "Product deleted successfully": "",
"Product invoice deleted successfully": "«Счет за продукт успешно удален»", "Product invoice deleted successfully": "",
"Product invoice updated successfully": "«Счет за продукт успешно обновлен»", "Product invoice updated successfully": "",
"Product removed form card": "«Карточка формы удаления товара»", "Product removed form card": "",
"Product removed from favorite": "«Товар удален из избранного»", "Product removed from favorite": "",
"Product restore successfully": "«Продукт восстановлен успешно»", "Product restore successfully": "",
"Product stock changed successfully": "«Запас продукции успешно изменен»", "Product stock changed successfully": "",
"Products": "Продукты", "Products": "",
"Products list": "«Список товаров»", "Products list": "",
"Profile": "Профиль", "Profile": "",
"Profile updated": "Профиль обновлен", "Profile updated": "",
"Properties list": "«Список свойств»", "Properties list": "",
"Properties meta": "«Мета свойства»", "Properties meta": "",
"Properties sort": "«Сортировка свойств»", "Properties sort": "",
"Publish now": "«Опубликовать сейчас»", "Publish now": "",
"Published": "Опубликовано", "Published": "",
"Quantity": "Количество", "Quantity": "",
"Question": "Вопрос", "Question": "",
"Question / Answer": "Вопрос ответ", "Question \/ Answer": "",
"Questions": "Вопросы", "Questions": "",
"Question|Message": "«Вопрос|Сообщение»", "Question|Message": "",
"RTL": "РТЛ", "RTL": "",
"Ref ID": "«Реферальный идентификатор»", "Ref ID": "",
"Register": "Регистр", "Register": "",
"Register or login to complete purchase": "«Зарегистрируйтесь или войдите, чтобы завершить покупку»", "Register or login to complete purchase": "",
"Reject": "Отклонять", "Reject": "",
"Remember Me": "Запомнить меня", "Remember Me": "",
"Remove": "Удалять", "Remove": "",
"Reply": "Отвечать", "Reply": "",
"Required": "Необходимый", "Required": "",
"Reserve order for :H hours": "«Резервный заказ на :H часов»", "Reserve order for :H hours": "",
"Reset": "Перезагрузить", "Reset": "",
"Reset Password": "Сброс пароля", "Reset Password": "",
"Restore": "Восстановить", "Restore": "",
"Role": "Роль", "Role": "",
"SKU": "СКУ", "SKU": "",
"SMS Code": "«СМС-код»", "SMS Code": "",
"SMS send, Please login with you Auth code": "«Отправить SMS. Пожалуйста, войдите, используя свой код авторизации»", "SMS send, Please login with you Auth code": "",
"Saturday": "Суббота", "Saturday": "",
"Save": "Сохранять", "Save": "",
"Save sort": "«Сохранить сортировку»", "Save sort": "",
"Search": "Поиск", "Search": "",
"Search for": "Искать", "Search for": "",
"Search in all panel": "«Поиск по всей панели»", "Search in all panel": "",
"Searchable": "Доступно для поиска", "Searchable": "",
"Section": "Раздел", "Section": "",
"Select type": "«Выбрать тип»", "Select type": "",
"Send": "Отправлять", "Send": "",
"Send Answer": "«Отправить ответ»", "Send Answer": "",
"Send Answer and close": "«Отправить ответ и закрыть»", "Send Answer and close": "",
"Send Password Reset Link": "«Отправить ссылку для сброса пароля»", "Send Password Reset Link": "",
"Send new ticket": "«Отправить новый билет»", "Send new ticket": "",
"Setting": "Параметр", "Setting": "",
"Setting added to website": "«Настройка добавлена на сайт»", "Setting added to website": "",
"Setting of website updated": "«Настройки сайта обновлены»", "Setting of website updated": "",
"Shopping card": "«Покупательная карточка»", "Shopping card": "",
"Short text": "«Короткий текст»", "Short text": "",
"Show": "Показывать", "Show": "",
"Signup or Login": "Зарегистрируйтесь или войдите под своим ником", "Signup or Login": "",
"Single Select \u0026 multi search": "«Единый выбор и множественный поиск»", "Single Select & multi search": "",
"Slider": "«Слайдер»", "Slider": "",
"Slider list": "«Список слайдеров»", "Slider list": "",
"Sliders": "«Слайдеры»", "Sliders": "",
"Sort": "Сортировать", "Sort": "",
"Sort category": "«Сортировать категорию»", "Sort category": "",
"Sort product category": "«Сортировать по категориям товаров»", "Sort product category": "",
"Special quantity": "«Специальное количество»", "Special quantity": "",
"State": "Состояние", "State": "",
"Status": "Положение дел", "Status": "",
"Stock quantity": "«Количество запасов»", "Stock quantity": "",
"Store": "Магазин", "Store": "",
"Sub invoices items": "«Позиции дополнительных счетов»", "Sub invoices items": "",
"Subject": "Предмет", "Subject": "",
"Subtitle": "«Субтитры»", "Subtitle": "",
"Sum": "«Сумма»", "Sum": "",
"Sunday": "Воскресенье", "Sunday": "",
"Tag": "Ярлык", "Tag": "",
"Tag search": "«Поиск по тегам»", "Tag search": "",
"Tag with sub posts": "«Отметка с подзаписями»", "Tag with sub posts": "",
"Tagged by": "Отмечено", "Tagged by": "",
"Tags": "«Теги»", "Tags": "",
"Tax": "«Налог»", "Tax": "",
"Text": "Текст", "Text": "",
"Text type": "«Тип текста»", "Text type": "",
"The first and/or second image will be index image": "«Первое и/или второе изображение будет индексным»", "The first and\/or second image will be index image": "",
"The order is duplicate please check invoices list": "«Заказ дубликат, пожалуйста, проверьте список счетов»", "The order is duplicate please check invoices list": "",
"Thumbnail": "«Миниатюра»", "Thumbnail": "",
"Thursday": "Четверг", "Thursday": "",
"Ticket answered successfully": "«Заявка успешно отвечена»", "Ticket answered successfully": "",
"Ticket has been sent": "«Билет отправлен»", "Ticket has been sent": "",
"Tickets": "Билеты", "Tickets": "",
"Tickets deleted successfully": "«Билеты успешно удалены»", "Tickets deleted successfully": "",
"Tickets status changed successfully": "«Статус заявки успешно изменен»", "Tickets status changed successfully": "",
"Title": "Заголовок", "Title": "",
"To": "К", "To": "",
"Toggle navigation": "«Переключить навигацию»", "Toggle navigation": "",
"Total Price": "Итоговая цена", "Total Price": "",
"Total amount": "Общая сумма", "Total amount": "",
"Tracking code": "Код отслеживания", "Tracking code": "",
"Translates": "«Переводит»", "Translates": "",
"Transport": "Транспорт", "Transport": "",
"Transport method": "«Транспортный метод»", "Transport method": "",
"Transport price": "«Цена перевозки»", "Transport price": "",
"Transports": "«Транспорт»", "Transports": "",
"Transports list": "«Список транспорта»", "Transports list": "",
"Trashed": "Разрушенный", "Trashed": "",
"True": "Истинный", "True": "",
"Try login": "«Попробуйте войти»", "Try login": "",
"Tuesday": "Вторник", "Tuesday": "",
"Type": "Тип", "Type": "",
"Under construction": "В разработке", "Under construction": "",
"Unit": "Единица", "Unit": "",
"Unknown bulk action :": "«Неизвестное массовое действие:»", "Unknown bulk action :": "",
"Upload images": "Загрузить изображения", "Upload images": "",
"Upload new images": "«Загрузить новые изображения»", "Upload new images": "",
"User": "Пользователь", "User": "",
"User list": "«Список пользователей»", "User list": "",
"Username": "Имя пользователя", "Username": "",
"Users": "«Пользователи»", "Users": "",
"Users list": "«Список пользователей»", "Users list": "",
"Verify Your Email Address": "Проверьте свой адрес электронной почты", "Verify Your Email Address": "",
"Video clip": "Видеоклип", "Video clip": "",
"Video clips": "Видеоклипы", "Video clips": "",
"Video list": "«Список видео»", "Video list": "",
"We call you about price soon.": "«Скоро мы позвоним вам и уточним цену».", "We call you about price soon.": "",
"Website contents": "«Содержимое сайта»", "Website contents": "",
"Wednesday": "Среда", "Wednesday": "",
"Welcome": "Добро пожаловать", "Welcome": "",
"Width": "Ширина", "Width": "",
"Yes": "Да", "Yes": "",
"You are logged in!": "Вы вошли в систему!", "You are logged in!": "",
"You can choose one or more image together": "«Вы можете выбрать одно или несколько изображений вместе»", "You can choose one or more image together": "",
"You disliked ": "«Тебе не понравилось»", "You disliked ": "",
"You don't have any credit": "«У тебя нет кредита»", "You don't have any credit": "",
"You dont't have acccess this acction": "«У вас нет доступа к этому действию»", "You dont't have acccess this acction": "",
"You have got :count products in your basket, Could you complete your purchase?": "«У вас в корзине :count товаров. Не могли бы вы завершить покупку?»", "You have got :count products in your basket, Could you complete your purchase?": "",
"You liked ": "Тебе понравилось ", "You liked ": "",
"You liked ago ": "«Тебе понравилось назад»", "You liked ago ": "",
"You order reserved for a few hours, please pay to complete process": "«Вы заказываете зарезервировано на несколько часов, пожалуйста, заплатите, чтобы завершить процесс»", "You order reserved for a few hours, please pay to complete process": "",
"You voted ago ": "«Вы проголосовали назад»", "You voted ago ": "",
"You voted right now ": "«Вы проголосовали прямо сейчас»", "You voted right now ": "",
"Your Email sent": "«Ваше письмо отправлено»", "Your Email sent": "",
"Your authentication code": "«Ваш код аутентификации»", "Your authentication code": "",
"Your comment submited successfully, After approve will be visbile.": "«Ваш комментарий успешно отправлен. После одобрения он будет виден».", "Your comment submited successfully, After approve will be visbile.": "",
"Your credit": "«Ваша заслуга»", "Your credit": "",
"Your invoices": "«Ваши счета»", "Your invoices": "",
"Your message has been successfully sent.": "Ваше сообщение было успешно отправлено.", "Your message has been successfully sent.": "",
"Your message...": "Ваше сообщение...", "Your message...": "",
"Your question has been sent, We answer it soon.": "«Ваш вопрос отправлен, мы скоро на него ответим».", "Your question has been sent, We answer it soon.": "",
"Your question or request...": "«Ваш вопрос или просьба...»", "Your question or request...": "",
"action": "действие", "action": "",
"body": "тело", "body": "",
"by percent": "по процентам", "by percent": "",
"by price": "по цене", "by price": "",
"choose addrress": "выбрать адрес", "choose addrress": "",
"click here to request another": "«нажмите здесь, чтобы запросить еще»", "click here to request another": "",
"clip or cover not uploaded...": "клип или обложка не загружены...", "clip or cover not uploaded...": "",
"created successfully": "«создано успешно»", "created successfully": "",
"deleted successfully": "успешно удалено", "deleted successfully": "",
"id": "идентификатор", "id": "",
"invoice created successfully": "счет успешно создан", "invoice created successfully": "",
"name / email": "«имя / адрес электронной почты»", "name \/ email": "",
"not searchable": "недоступно для поиска", "not searchable": "",
"password repeat": "повторить пароль", "password repeat": "",
"phone": "телефон", "phone": "",
"postal_code": "Почтовый индекс", "postal_code": "",
"preview": "предварительный просмотр", "preview": "",
"reply": "отвечать", "reply": "",
"slider or cover not uploaded...": "слайдер или обложка не загружены...", "slider or cover not uploaded...": "",
"transports deleted successfully": "транспорт успешно удален", "transports deleted successfully": "",
"updated successfully": "Успешно Обновлено", "updated successfully": "",
"weight": "масса" "weight": ""
} }

@ -27,9 +27,6 @@
@if($lang !== null && $lang->rtl) @if($lang !== null && $lang->rtl)
isRtl = true; isRtl = true;
@endif @endif
@if(config('app.xlang_main') == 'fa' || config('app.xlang_main') == 'ar')
isRtl = true;
@endif
</script> </script>
</head> </head>
<body> <body>

@ -15,9 +15,6 @@
@if($lang !== null && $lang->rtl) @if($lang !== null && $lang->rtl)
isRtl = true; isRtl = true;
@endif @endif
@if(config('app.xlang_main') == 'fa' || config('app.xlang_main') == 'ar')
isRtl = true;
@endif
</script> </script>
@yield('header-content') @yield('header-content')
<!-- CSRF Token --> <!-- CSRF Token -->

@ -33,10 +33,10 @@
<div class="col-md-3"> <div class="col-md-3">
<h3> <h3>
{!! \App\Helpers\getSetting('footer_title') !!} اطلاعات تماس
</h3> </h3>
<p class="text-secondary"> <p class="text-secondary">
{!! \App\Helpers\getSetting('footer_text') !!} افراد گروه سوم از اهمیت به پایان رساندن آگاه هستند. آنها با تفکر منطقی، طرحی روشن ارائه می‌کنند. آنها نه تنها برای پایان دادن به پروژه‌ی خود در آینده برنامه ریزی می‌کنند، بلکه به تمام نتایج و عواقب اجرای آن برنامه هم می‌اندیشند. این افراد کسانی هستند که هنر به پایان رساندن را می‌دانند.
</p> </p>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

@ -22,62 +22,45 @@ class websitePagesTest extends TestCase
$response->assertStatus(200); $response->assertStatus(200);
} }
public function test_products() public function test_products()
{ {
$response = $this->get(route('products')); $response = $this->get(route('products'));
$response->assertStatus(200); $response->assertStatus(200);
} }
public function test_posts() public function test_posts()
{ {
$response = $this->get(route('posts')); $response = $this->get(route('posts'));
$response->assertStatus(200); $response->assertStatus(200);
} }
public function test_single_post() public function test_single_post()
{ {
if (Post::count() > 0) { $response = $this->get(route('post',Post::inRandomOrder()->first()->slug));
$response = $this->get(route('post', Post::inRandomOrder()->first()->slug));
$response->assertStatus(200);
} else {
$this->assertTrue(true);
}
$response->assertStatus(200);
} }
public function test_single_product() public function test_single_product()
{ {
if (Product::count() > 0) { $response = $this->get(route('product',Product::inRandomOrder()->first()->slug));
$response = $this->get(route('product', Product::inRandomOrder()->first()->slug)); $response->assertStatus(200);
$response->assertStatus(200);
} else {
$this->assertTrue(true);
}
} }
public function test_single_product_category() public function test_single_product_category()
{ {
$response = $this->get(route('cat', Cat::inRandomOrder()->first()->slug)); $response = $this->get(route('cat',Cat::inRandomOrder()->first()->slug));
$response->assertStatus(200); $response->assertStatus(200);
} }
public function test_card_empty() public function test_card_empty(){
{
$this->get(route('reset')); $this->get(route('reset'));
$response = $this->get(route('card.show')); $response = $this->get(route('card.show'));
$response->assertStatus(200); $response->assertStatus(200);
} }
public function test_card_with_products(){
public function test_card_with_products() $this->get(route('card.add',Product::inRandomOrder()->first()->slug));
{ $this->get(route('card.add',Product::inRandomOrder()->first()->slug));
if (Product::count() > 0) {
$this->get(route('card.add', Product::inRandomOrder()->first()->slug));
$this->get(route('card.add', Product::inRandomOrder()->first()->slug));
}
$response = $this->get(route('card.show')); $response = $this->get(route('card.show'));
$response->assertStatus(200); $response->assertStatus(200);
} }

Loading…
Cancel
Save