Sign in to follow this  
Followers 0
Человек-редиска

[Урок]Редактирование сайтов.

9 posts in this topic

И,так всех приветствую уважаемые пользователи форума.Решил,сделать такой урок по редактированию сайтов..Возьмём к примеру сайт Namalsk RP,который я сливал.

Допустим,вам нужно заменить ссылки на свои..Т.к если,нажать на кнопку форум,о проекте,донат..это всё будет проекта намальск.

Для настройки ссылок нам,нужна будет программа Notepad++ и сам PHP Стиль,как я сказал выше я,взял стиль Namalsk RP,в прочем,везде всё одинаково только,в разных местах ссылки.И,так допустим мы хотим заменить ссылку форума намальска,на свой форум..Находим 21 строку ( Внимание 21 строка,только у стиля Намальска у всех может быть разная),и видим на 21 строке,такой код <li><a href="https://forum.namalsk-rp.ru/">Форум</a></li>

Видим,ссылку она начинается с https:// и т.д,главное не удалять кавычки убираем ссылку https://forum.namalsk-rp.ru/ и вместо,этой ссылки вставляем вашу покажу пример:<li><a href="Ваша ссылка">Форум</a></li>..После,ваша ссылка будет работать,главное нажать на кнопку сохранить,после окончания изменения ссылок.

Далее,видим в углу надпись Namalsk RP,что бы её удалить достаточно зайти в папку images и,все не нужные картинки/надписи,удалить оттуда.

Ну,или заменить на свои.Вот,такой мини-урок.

Автор урока:Я то бишь Maks_Badanov он же HOFFMAN.

Спасибо за внимание,если что то не понятно,также отписывайтесь в эту тему.

 

Share this post


Link to post
Share on other sites

Могу выразить своё мнение по вашему уроку ( без обид ).  Если вы пользуйтесь Notepad++ то это тоже самое что редактировать в блокноте. Если я правильно понимаю у вас написано в теме "[Урок]Редактирование сайтов." Не у всех сайтов такое строение. И если вы уже взялись за уроки в этом разделе то расскажите людям почему именно в <li></li> встроены ссылки и почему именно надо вставлять http и https и какая разница в них.С логотипом такая-же история, почему человек должен удалять картинку если её можно просто в комментарий обернуть <!--...--> и она не будет работать и если потом вы захотите заменить логотип на свой вы сможете без проблем поставить своё названия картинки и путь к ней вместо того чтоб искать в гугле код для вставки картинки.
 

P.S:для работы с шаблонами HTML и CSS могу посоветовать 2 программы это Atom и Sublime Text 3 они более понятные для новичков.

Edited by BELOFF

Share this post


Link to post
Share on other sites

@BELOFF Картинки,состоят в папке а не в коде HTML,В блокноте говоришь?Ну,попробуйте отредактировать в блокноте я,посмотрю как это у вас получиться..С Notepad ++ работать,легче чем в блокноте,или текстовом документе..

Share this post


Link to post
Share on other sites
15 минут назад, Maks_Badanov сказал:

@BELOFF Картинки,состоят в папке а не в коде HTML,В блокноте говоришь?Ну,попробуйте отредактировать в блокноте я,посмотрю как это у вас получиться..С Notepad ++ работать,легче чем в блокноте,или текстовом документе..

Ахаха "Картинки,состоят в папке а не в коде HTML" серьезно?? Как ты картинку подключишь при верстке если не с помощью HTML?
Покажи мне хотяб одного здравомыслящего front-end разработчика который работает в Notepad?

Share this post


Link to post
Share on other sites

@BELOFF Ну,ты посмотри пример логотипа,сайта Motion RP картинки,стоят не в коде,посмотри,прежде чем что-то писать..И набивать,посты..Посмотри для начала папку img и т.д

@BELOFF Покажи,мне того кто редактирует в Блокноте?:P Посмешил так посмешил..

Share this post


Link to post
Share on other sites
7 минут назад, Maks_Badanov сказал:

@BELOFF Ну,ты посмотри пример логотипа,сайта Motion RP картинки,стоят не в коде,посмотри,прежде чем что-то писать..И набивать,посты..Посмотри для начала папку img и т.д

@BELOFF Покажи,мне того кто редактирует в Блокноте?:P Посмешил так посмешил..

Умный ты наш послушай пожалуйста меня. Я тебе могу в эту папку накидать картинок на 1гб только смысла от них 0 если их не подключить в самом коде. И во вторых открой немного глаза и увидишь что в PS я написал программы через которые работают большинство веб-разработчиков. Твой Notepad по полезность в верстание тоже самое что и блокнот. И если ты сейчас скажешь что это не так то покажи мне как подключить такие плагины как emmet для HTML и разные фреймворки для css на него. Если покажешь то по прошу прошения и пусть админы удалят все мой посты. Ты сам не знаешь о чем пишешь и хочешь мне доказать что ты прав.

Edited by BELOFF

Share this post


Link to post
Share on other sites

@BELOFF Если,их удалить с папки они удаляться,втирать хватит xD

Share this post


Link to post
Share on other sites
Только что, Maks_Badanov сказал:

@BELOFF Если,их удалить с папки они удаляться,втирать хватит xD

Хочешь я тебе сейчас видео сделаю как я могу подключить картинку без того чтоб она была у меня вообще на компе?

Share this post


Link to post
Share on other sites

@BELOFF При,чём тут подключить?Ты прочитай,урок там написано "УДАЛИТЬ",а не подключить,в преть будь внимательнее.

Администрация сайта,закрыл тему от оффтопа.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Chopick
      By Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?
    • Jdjdjd
      By Jdjdjd
      Как сделать открытие закрытие ворот в Радмир рп на копии,и куд а нужно вставлять код?
       
    • Мемен Томорли
      By Мемен Томорли
      Как создать команду /warns чтобы игрок смог просматривать активные варны у персонажа ??
      Типо как на Малиновка ЛП
    • Andrey Markelov
      By Andrey Markelov

      Описание
      Готовый сайт для SAMP-проекта, разработанный на PHP-фреймворке Laravel. Проект полностью готов к запуску и включает следующие функции: раздел новостей, авторизация в личный кабинет, восстановление пароля, система донатов, история платежей, карта сервера, смена пароля. Сложный функционал намеренно не добавлялся, чтобы облегчить процесс изучения структуры проекта и работы с ним. Все реализовано максимально просто, чтобы новички могли быстро разобраться, где что находится. База данных содержит минимальный набор информации, поскольку у каждого SAMP-проекта своя уникальная структура и функционал. Это позволяет вам легко адаптировать сайт под ваш проект. Например, в личном кабинете вы самостоятельно можете подставить необходимые данные для отображения информации об аккаунте пользователя. Сайт также включает административную панель. Для доступа к админке перейдите по адресу /admin. Если вы уже авторизованы как администратор, система перенаправит вас на главную страницу админки. В противном случае откроется страница авторизации. Важно отметить, что авторизация в личном кабинете и в административной панели — это две разные системы, которые между собой не связаны. Проект создан с упором на простоту и функциональность, что делает его отличным стартовым решением для вашего SAMP-проекта.
       
       
       
      Структура страниц
      Публичный сайт
      1. Главная страница (/)
      Стандартная страница с базовой информацией о вашем проекте. Здесь размещены инструкции по началу игры, новости и контакты. Если в базе данных отсутствуют новости, блок с ними отображаться не будет — для отображения требуется как минимум одна новость.
       
      2. Новости (/news)
      Раздел, где отображаются все ваши новости. Используется пагинация: на одной странице выводится по 10 записей.
       
      3. О нас (/company/about)
      Раздел с более детальной информацией о вашем проекте.
       
      4. Пользовательское соглашение (/company/user-agreement)
      Раздел с текстом пользовательского соглашения.
       
      5. Политика обработки персональных данных (/company/privacy-policy)
      Страница, где размещена информация о политике обработки персональных данных.
       
      Профиль игрока
      1. Личный кабинет (/profile)
      Страница с общей информацией об аккаунте пользователя.
       
      2. История платежей (/profile/payment-history)
      Страница с историей всех платежей пользователя, независимо от их статуса. Используется пагинация: на одной странице отображается 10 записей.
       
      3. Карта сервера (/profile/map)
      Мониторинг карты сервера. На данный момент отображаются только дома и бизнесы, а также информация о них. Функционал можно расширить в зависимости от особенностей вашего SAMP-проекта.
       
      4. Настройки (/profile/settings)
      Страница с формой для смены пароля. При успешной смене пароля пользователю отправляется уведомление на почту. Функционал также может быть доработан в зависимости от ваших требований.
       
      Админка
      1. Главная страница (/admin)
      Основная информация для администратора. Сделано минималистично, функционал можно расширить при необходимости.
       
      2. Новости (/admin/news)
      Страница для управления новостями. Здесь отображаются все новости, независимо от их статуса. Реализованы кнопки для создания, редактирования и удаления новостей. Для редактирования контента используется QuillJS, что упрощает наполнение текстами. Изображения, добавленные в контент, сохраняются в базу данных в формате base64. Обложки новостей хранятся в каталоге public/storage/news_images. При редактировании или удалении новости ненужные файлы автоматически удаляются.
       
      3. Пользователи (/admin/users)
      Страница всех игроков вашего SAMP-проекта. Используется пагинация: на одной странице отображается по 10 записей. Неподтвержденные email-адреса выделяются красным цветом (подтвержденными считаются те, у которых в поле email_verified_at указана дата). На странице редактирования пользователя доступен раздел "Платежи", где выводятся все транзакции игрока, также с пагинацией (по 10 записей на странице).
       
      4. Администраторы (/admin/admins)
      Раздел для управления администраторами сайта (не игровыми). Используется пагинация: на одной странице выводится по 10 записей. По умолчанию в проекте существует супер-администратор (Super_Admin), который может создавать новых администраторов. Функционал включает создание, редактирование и удаление администраторов. Супер-админа удалить невозможно. Для разграничения прав администраторов рекомендуется использовать пакет spatie/laravel-permission, позволяющий добавлять роли (например, "модератор", "редактор").
       
      5. Личный кабинет администратора (/admin/profile)
      Простая страница с основной информацией о текущем администраторе. При необходимости функционал можно доработать.
       
       
       
      Пароль
      Насколько мне известно, большинство SAMP-проектов используют формат MD5 для хранения паролей. Однако Laravel и его пакеты для работы с авторизацией не поддерживают MD5 из-за его уязвимости. Поэтому было принято решение написать собственную реализацию авторизации. Функционал авторизации и смены пароля полностью работает с MD5. При этом авторизация в административную панель не использует MD5 и реализована с использованием более безопасных методов. Если в вашем проекте пароли хранятся не в формате MD5, вам потребуется немного изменить логику работы с паролями, чтобы адаптировать проект. Также настоятельно рекомендую добавить двухфакторную аутентификацию, если вы используете MD5 для хранения паролей, чтобы повысить уровень безопасности.
       
       
       
      Мои ожидания
      Исходя из структуры проекта, я предполагаю, что у вас уже настроена база данных с таблицами: users (пользователи — игроки), businesses (бизнесы), houses (дома).
       
      Таблица users:
      username — игровой ник;
      password — пароль;
      email — игровая почта;
      p_level — уровень;
      p_skin — ID скина;
      p_money — игровая валюта;
      p_donate — донат-счет;
      email_verified_at — дата подтверждения почты;
      created_at — дата создания аккаунта;
      updated_at — дата последнего обновления записи (обновляется автоматически).
       
      Таблицы houses и businesses:
      name — название;
      description — описание;
      price — государственная стоимость;
      entrance_x — координата входа по оси X;
      entrance_y — координата входа по оси Y;
      entrance_z — координата входа по оси Z;
      user_id — ID игрока, которому принадлежит дом или бизнес.
       
      Для карты в личном кабинете используются координаты X и Y. Если в вашей базе данных эти поля называются иначе, не забудьте внести изменения в контроллер MapController.php и файл map.blade.php.
       
       
       
      Структура проекта
      Для работы с проектом рекомендую использовать IDE PhpStorm. Вы можете навести курсор на любой метод, нажать Ctrl, чтобы перейти к его реализации, и таким образом разобраться, где и как вызывается код.
       
      Основные файлы и директории
      routes/web.php Здесь находятся роуты для публичной части сайта. Для каждой страницы и её логики создан отдельный роут.
      routes/admin.php Этот файл содержит роуты, относящиеся к админке.
       
      Проект построен по принципу MVC (Model-View-Controller): 
      Model — работа с базой данных.
      View — представления (HTML-шаблоны).
      Controller — логика, например, извлечение данных из базы и передача их в представления.
       
      app/Models В этой папке находятся модели, которые представляют таблицы базы данных. Например, app/Models/User связана с таблицей users.
      resources/views Здесь хранится вся верстка сайта, включая шаблоны административной панели. В любом шаблоне вам будут доступны две переменные: $serverName и $serverIP.
      app/Http/Controllers Содержит контроллеры. Для каждой части логики создается отдельный контроллер. Также есть папка Admin, где находятся контроллеры, относящиеся к админке.
       
      Middleware
      В проекте используются два Middleware:
      AuthenticateUser — проверяет авторизацию пользователя. Например, чтобы открыть страницу личного кабинета, используется этот Middleware. Если пользователь не авторизован, доступ к странице будет закрыт.
      AuthenticateAdmin — отвечает за авторизацию в админке. Например, для создания новости или входа в административную панель.
       
      В роутах они называются auth.user и auth.admin.
       
      Работа с базой данных
      database/seeders — Здесь находятся сидеры, которые используются для заполнения базы данных. Например, для разработки или тестирования можно заполнить таблицы фейковыми данными с помощью пакета fakerphp/faker.
       
      На данный момент в проекте есть три сидера: для домов, бизнесов и создания супер-администратора. По умолчанию используется DatabaseSeeder.
       
      Команды для работы с сидерами:
      Запуск всех сидеров: php artisan db:seed.
      Запуск конкретного сидера: php artisan db:seed --class=UserSeeder.
       
      database/migrations — Важная часть проекта. Все манипуляции с базой данных (создание, изменение, удаление таблиц) выполняются через миграции. Миграции можно отслеживать, откатывать и проверять их статус.
       
      Основные команды:
      Создание миграции: php artisan make:migration create_users_table.
      Применение миграции: php artisan migrate.
      Откат миграции: php artisan migrate:rollback (можно указать, сколько миграций откатить).
      Просмотр всех доступных команд: php artisan.
       
      Фронтенд
      public/assets — В этой директории находятся стили, JavaScript-код и изображения.
      resources — Файлы CSS и JS также находятся в этой папке. Если вы изменяете их, обязательно выполните сборку проекта командой: npm run build
       
       
       
      Донат
      Платежных систем достаточно, и каждый может выбрать подходящую по своему усмотрению. Однако в данном проекте не реализован полный функционал оплаты. Есть таблица с оплатами, в админке отображается статистика, а у пользователя — история платежей, но сам процесс оплаты не предусмотрен. Я лишь подготовил основу, и вам нужно выбрать платёжную систему и подключить её самостоятельно. В вашем распоряжении будет контроллер ShopController.php, в котором есть метод processPayment. В этом методе вы получаете информацию о пользователе, который совершает донат, сумму и email. Все данные для записи в таблицу о платеже уже есть, и создается запись со статусом waiting. Все возможные статусы можно найти в файле app/Enums/PaymentStatus. После того как платеж будет обработан, вам нужно изменить статус в таблице с waiting на success или error, в зависимости от результата. Если платёж успешен, также необходимо обновить поле p_donate в таблице users.
       
      Пример кода для изменения статуса и обновления данных пользователя:
      $payment->update(['status' => 'success']); $user->increment('p_donate', $validated['amount']);  
      В интернете есть множество статей о том, как подключить платёжные системы, а также существуют специализированные пакеты для Laravel, которые могут упростить этот процесс.
       
       
       
      Что нужно для запуска проекта
      Для пользователей Linux данная инструкция не требуется, так как предполагается, что вы уже знакомы с процессом настройки.
       
      1. Установите OpenServer или аналогичный инструмент
      2. Проверьте версии установленных инструментов, используя команды:
      2.1. php -v
      2.2. composer -V
      3. Установите Node.js. После установки убедитесь, что Node.js и npm работают корректно, выполнив команды:
      3.1. node -v
      3.2. npm -v
       
      PHP: версия 8.2 или выше. MySQL: у меня 8.0 на момент разработки.
       
       
       
      Первые шаги
      Скорее всего, вы скачали архив проекта, но инструкция составлена так, будто вы клонировали репозиторий с GitHub.
      Рекомендую для начала использовать предоставленные данные проекта, чтобы разобраться в его работе, вместо того чтобы сразу адаптировать вашу базу данных.
       
      1. Создание базы данных.
      Создайте пустую базу данных для проекта.
       
      2. Настройка файла .env. 
      В корневой директории проекта у вас должен быть файл .env. Если его нет, скопируйте файл env.example и переименуйте его, удалив .example:
       
      3. Далее выполните команду: php artisan key:generate
       
      4. Откройте файл .env и настройте его под свои параметры:
      APP_URL — Укажите адрес сайта (локально - локальный, на хостинге - ссылка сайта).
      SAMP_SERVER_NAME — Название вашего SAMP-проекта.
      SAMP_SERVER_IP — IP-адрес вашего SAMP-сервера.
      DB_HOST — Хост базы данных.
      DB_PORT — Порт базы данных.
      DB_DATABASE — Имя базы данных.
      DB_USERNAME — Имя пользователя базы данных.
      DB_PASSWORD — Пароль для базы данных (оставьте пустым, если не требуется).
      SUPER_ADMIN_PASSWORD — Задайте сложный пароль для супер-администратора (требуется минимум 8 символов).
      CONTACT_EMAIL — Почта проекта.
       
      Найдите переменную MAIL_MAILER и укажите настройки для вашего почтового сервиса. Без этого отправка писем на почту не будет работать. Для тестирования локально я использовал mailtrap.
       
      5. Установка зависимостей. 
      Установите зависимости PHP и Node.js:
      5.1. composer install
      5.2. npm install
       
      6. Очистка кеша. 
      На всякий случай очистите все кеши:
      6.1. php artisan cache:clear
      6.2. php artisan route:clear
      6.3. php artisan config:clear
      6.4. php artisan view:clear
       
      7. Сборка фронтенда. 
      Соберите проект: npm run build
       
      8. Файловое хранилище. 
      Чтобы изображения, которые вы загружаете, были видны в шаблонах, используйте команду: php artisan storage:link.
       
      9. Миграции и сидеры. 
      Выполните миграцию базы данных и запустите сидеры для начального заполнения: php artisan migrate:fresh --seed
       
      10. Запуск проекта. 
      Для запуска проекта выполните: php artisan serve
       
      Не пугайтесь большого количества шагов на первый взгляд — на самом деле все достаточно просто. Основные действия включают настройку файла .env и установку зависимостей. Это всего лишь первоначальная настройка. В дальнейшем для запуска проекта вам понадобится всего одна команда: php artisan serve
       
      Если все сделано правильно, сайт будет доступен по адресу: 127.0.0.1:8000
       
       
      Дополнительно:
      В архиве предоставлен дамп базы данных, использовавшийся на этапе разработки.
      Пароли в таблице users: 123123
      Пароли в таблице admins: 12345678
       
       
       
      Скачать: https://disk.yandex.by/d/UNdQVj-XATlvzw
       
      Скриншоты: