Dokumentacja

WYMAGANE PAKIETY

  • php-cli – PHP command-line interface
  • php-dom i php-xml – do parsowania XML (używane w układach i konfiguracjach)
  • php-curl – do zapytań HTTP
  • php-mysql – do połączenia z bazą danych MySQL
  • php-mbstring – obsługa stringów wielobajtowych (wymagane przez PHPUnit i niektóre pakiety)
  • php-gd – do przetwarzania obrazów (używane w galerii, sliderach itp.)

Upewnij się, że wszystkie rozszerzenia pasują do zainstalowanej wersji PHP (np. php8.5-mysql, php8.5-mbstring itd.)

INSTALACJA

Przed uruchomieniem skryptu upewnij się, że skonfigurowałeś połączenie z bazą danych (host, nazwa bazy, użytkownik, hasło i port).

Uruchom następujące komendy, aby utworzyć projekt:

composer create-project cmsrs/cmsrs3
cd cmsrs3 
php artisan cmsrs:install
php artisan serve

Po uruchomieniu serwera otwórz przeglądarkę i przejdź do:

http://127.0.0.1:8000

INSTALACJA RĘCZNA

* Pobierz kod źródłowy:

git clone https://github.com/cmsrs/cmsrs3.git && cd cmsrs3

* Zainstaluj zależności:

composer install

* Przygotuj plik .env i zmień konfigurację bazy danych:

cp .env.example .env

zmień konfigurację bazy danych w pliku .env, na przykład:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cmsrs
DB_USERNAME=rs
DB_PASSWORD="secret102*"

Możesz utworzyć użytkownika MySQL i bazę danych używając skryptu: ./rs/go/go_create_user_and_db.sh

* Skonfiguruj Laravel i JWT (wygeneruj klucz aplikacji i sekrety JWT):

php artisan key:generate && php artisan jwt:secret

* Utwórz tabele w bazie danych i wprowadź dane początkowe:

  • admin (email/login: adm@cmsrs.pl, pass: cmsrs123)
  • client (email/login: client@cmsrs.pl, pass: cmsrs456)
php artisan migrate && php artisan db:seed

* (opcjonalnie) ustaw uprawnienia:

./rs/go/go_privilege.sh

* Uruchom instalację CMS. Ten krok finalizuje konfigurację (reset hasła admina + konfiguracja demo):

php artisan cmsrs:install

* Uruchom serwer

php artisan serve

URUCHAMIANIE TESTÓW (ZALECANE)

Przygotuj plik .env.testing i zmień konfigurację bazy danych:

cp  .env .env.testing 

Zmień konfigurację bazy danych w pliku .env.testing, na przykład:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cmsrs_testing
DB_USERNAME=rs
DB_PASSWORD="secret102*"

Uwaga! DB_DATABASE powinno być inne niż w pliku .env.

Możesz utworzyć bazę danych MySQL używając skryptu: ./rs/go/go_create_test_db.sh

* (opcjonalnie) ustaw uprawnienia

./rs/go/go_privilege.sh

* Uruchom testy:

Zaleca się uruchamianie testów na czystej instancji (bez obrazów)

./vendor/bin/phpunit

ZARZĄDZANIE

* Wejdź na stronę http://127.0.0.1:8000/admin/ i zaloguj się jako:

  • username: adm@cmsrs.pl
  • default password: cmsrs123

* Utwórz stronę główną (typ strony: main_page)

* Dodaj menu

* Dodaj strony

KONFIGURACJA PLIKU .env

Po każdej zmianie wartości konfiguracji konieczne jest ponowne zalogowanie się do panelu administracyjnego.

* Ustaw języki, domyślnie 'en,pl':

LANGS="en,pl"

Pierwszy język będzie domyślnym. Jeśli nie ustawisz tej opcji, będzie 'en,pl'

* Dodaj sekret API, domyślnie '':

API_SECRET=""

Musi być taki sam jak w pliku konfiguracyjnym admina (patrz Vue.js). Może być pustym stringiem.

* Ustaw dostępne typy stron widoczne w panelu administracyjnym:

Domyślne typy stron to:

PAGE_TYPES="cms,gallery,shop,contact,main_page,privacy_policy,projects,clear,inner"
  • cms: Wyświetla edytor WYSIWYG w panelu administracyjnym.
  • gallery: Strona do prezentacji zdjęć.
  • shop: Strona do wyświetlania produktów.
  • contact: Strona kontaktowa.
  • main_page: Strona główna, wymaga czystego HTML.
  • privacy_policy: Strona polityki prywatności.
  • projects: Wyświetla tę samą treść dla wszystkich języków.
  • clear: Strona bez edytora WYSIWYG; wymaga czystego HTML.
  • inner: Reprezentuje blok tekstowy na istniejącej stronie, który musi być zakodowany w layoucie. Kluczem jest short_title. Na przykład w kodzie użyj funkcji: getPageDataByShortTitleCache('main_page_box1', 'content'). Dostępne wartości short_title:
    • main_page_box1, main_page_box2, main_page_box3: Trzy bloki treści na stronie głównej.
    • company_data: Dane firmy na stronie kontaktowej.
    • main_page_slider: Zawiera obrazy w sliderze na stronie głównej. Wymaga dodania elementu:
      <div class='slidecontainer'></div>

* Dodatkowe wysyłanie e-maila z informacją z formularza kontaktowego. Jeśli wartość jest pusta, wiadomość pojawi się tylko w panelu administracyjnym w zakładce kontakt.

CONTACT_EMAIL=""

* Dla Google reCAPTCHA v3 w formularzu kontaktowym ustaw następujące parametry:

GOOGLE_RECAPTCHA_PRIV
GOOGLE_RECAPTCHA_PUBLIC

* Włącz cache bazy danych, domyślnie false:

CACHE_ENABLE=false
CACHE_ENABLE_FILE='app/cache_enable.txt'

* Ustaw walutę, domyślnie USD:

CURRENCY=USD

* Ustaw is_shop, domyślnie true:

IS_SHOP=true

* Ustaw is_login, domyślnie true:

IS_LOGIN=true

* Ustaw is_register, domyślnie true:

IS_REGISTER=true

* Ustaw dozwolone rozszerzenia plików do uploadu:

Domyślne rozszerzenia plików to:

ALLOWED_UPLOAD_EXTENSIONS="jpg,jpeg,png,gif"

* Integracja PayU:

#https://merch-prod.snd.payu.com - sandbox
PAYU_URL=https://merch-prod.snd.payu.com
PAYU_POS_ID=123
PAYU_MD5=xxx
PAYU_CLIENT_ID=123
PAYU_CLIENT_SECRET=zzz
NOTIFY_URL=http://domain/home/orders
CUSTOMER_IP="123.123.123.123"

* Dane administratora

Te dane mogą być użyte do utworzenia pierwszego użytkownika admina podczas instalacji systemu (seed bazy danych).

ADM_EMAIL="adm@cmsrs.pl"
ADM_PASS="cmsrs123"

ADM_EMAIL: Domyślny adres e-mail konta administratora. ADM_PASS: Domyślne hasło konta administratora.

Uwaga: Nie używaj domyślnych danych (adm@cmsrs.pl / cmsrs123) w produkcji. Zawsze zmień je ze względów bezpieczeństwa przed wdrożeniem.

* Dane konta klienta

Te dane mogą być użyte do utworzenia domyślnego konta klienta podczas instalacji systemu.

CLIENT_EMAIL="client@cmsrs.pl"
CLIENT_PASS="cmsrs456"

CLIENT_EMAIL: Domyślny adres e-mail konta klienta. CLIENT_PASS: Domyślne hasło konta klienta.

Uwaga: Nie używaj domyślnych danych klienta (client@cmsrs.pl / cmsrs456) w środowisku produkcyjnym. Zawsze zmień je przed wdrożeniem.

* TRYB DEMO

Użyj tej zmiennej, aby włączyć tryb demo, np. na http://demo.cmsrs.pl/ Służy do blokowania zapisu zmian w publicznych instancjach demo.

DEMO_STATUS=false

Domyślnie false (wyłączony).

* Paginacja

PAGINATION=10

Liczba elementów na stronę w panelu administracyjnym. Domyślnie 10.

* Tryb headless

IS_HEADLESS=true

Włącza API headless. Domyślnie true.

true: Włącza API headless. Tryb z frontendem Nuxt; strony nie są renderowane po stronie serwera (SPA).

false: Wyłącza API headless.

* Tryb SSR

IS_SSR=true

Włącza SSR. Domyślnie true.

true: Włącza klasyczny SSR po stronie PHP.

false: Wyłącza SSR po stronie PHP.

PRZYKŁADOWA KONFIGURACJA .env DLA STRONY FIRMOWEJ

Jeśli chcesz stworzyć stronę firmową, sugeruję następującą konfigurację CMS:

IS_SHOP=false
IS_LOGIN=false
IS_REGISTER=false
LANGS="en"
API_SECRET="string123"
PAGE_TYPES="cms,gallery,contact,main_page,privacy_policy,inner"

POLECENIA CLI

* Załaduj dane testowe (demo):

Zalecam uruchomienie tego skryptu, aby zrozumieć działanie CMS. (Pamiętaj o domyślnych wartościach w .env.)

./rs/go/go_clear_and_load_demo.sh

* Utwórz sitemapę (zalecane do crontab):

php artisan cmsrs:create-site-map

* Utwórz użytkownika klienta lub zmień hasło:

php artisan cmsrs:create-client {user} {password}

* Zmień hasło admina:

php artisan cmsrs:change-admin-pass {new-password}