Compare commits

...

8 Commits

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

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

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

@ -28,10 +28,12 @@
"laravel/sanctum": "^2.14.1",
"laravel/tinker": "^2.7",
"laravel/ui": "^3.4",
"nyholm/psr7": "^1.8",
"pishran/zarinpal": "^4.3",
"plank/laravel-metable": "^5.2",
"psr/log": "v2.*",
"symfony/dom-crawler": "^6.2",
"symfony/psr-http-message-bridge": "^7.0",
"xmen/starter-kit": "^v3.1.0"
},
"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",
"This file is @generated automatically"
],
"content-hash": "e34256b2073a1fa70ed816043240b6de",
"content-hash": "476fc03eaacbf9c04610c95da580105c",
"packages": [
{
"name": "artesaos/seotools",
@ -3566,6 +3566,84 @@
],
"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",
"version": "v9.99.100",
@ -6928,6 +7006,89 @@
],
"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",
"version": "v6.4.0",

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

@ -34,15 +34,23 @@ class DatabaseSeeder extends Seeder
XlangSeeder::class,
CategorySeeder::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,6 +37,8 @@ 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_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, '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, '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'),

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

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

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

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

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

Loading…
Cancel
Save