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}