Katalog stron/firm

  • routy:
    /routes/vendor/idir/web/dirs.php
    /routes/vendor/idir/admin/dirs.php
  • kontrolery:
    N1ebieski\IDir\Http\Controllers\Web\DirController
    N1ebieski\IDir\Http\Controllers\Admin\DirController
  • model:
    N1ebieski\IDir\Models\Dir
  • widoki:
    /resources/views/vendor/idir/web/dir
    /resources/views/vendor/idir/admin/dir
  • widoki powiadomień mailowych:
    /resources/views/vendor/idir/mails/dir
  • pliki językowe:
    /resources/lang/vendor/idir/pl/dirs.php
    /resources/lang/vendor/idir/en/dirs.php


# Opis

Moduł katalogu umożliwia użytkownikom dodawanie wpisów, które zostają zaprezentowane na stronie. Użytkownik ma możliwość edycji swoich wpisów z poziomu profilu. Wpisy zostają dodane do kategorii tematycznych, tagów oraz do grup posiadających określone przywileje. Domyślnie model zapisuje między innymi tytuł, opis, opcjonalny lub obowiązkowy adres strony (ustawienie zależne od grupy). Istnieje możliwość stworzenia dodatkowych pól formularza i powiązanie ich z określoną grupą.

Moderator ma możliwość pełnej lub szybkiej (asynchronicznie z użyciem AJAX) edycji wpisów z poziomu panelu administracyjnego. Może filtrować listę w oparciu o różne parametry. Może aktywować/deaktywować, usunąć wpis, zbanować użytkownika oraz adres strony. Może sprawdzić historię logów płatności za wpis. Może półautomatycznie sprawdzić unikalność opisu. Może podejrzeć miniaturkę dodawanej strony oraz wysłać automatyczny request o odświeżenie.

# Statusy

  • aktywny - widoczny na stronie i korzystający ze wszystkich przywilejów wynikających z przynależności do grupy
  • nieaktywny - oczekujący na moderację
  • nieaktywny - oczekujący na płatność - wpis przyjęty, aplikacja oczekuje na powiadomienie o poprawnym statusie płatności od providera, po czym zmieni status na "oczekujący na moderację"
  • nieaktywny - oczekujący na backlink - wpis który był aktywny, ale w którym nie wykryto backlinka pomimo deklaracji. Backlink sprawdzany jest automatycznie przez zadanie cron. W momencie wykrycia wpis zostaje z powrotem aktywowany
  • nieaktywny - oczekujący na status 200 - wpis który był aktywny, ale adres pod którym się znajdował nie zwraca prawidłowego nagłówka. Taki wpis uznany jest za "wygasły". Status sprawdzany jest automatycznie przez zadanie cron. W momencie wykrycia prawidłowego statusu wpis zostaje z powrotem aktywowany
  • nieaktywny - oczekujący na poprawę - wpis niezaakceptowany przez moderację, ale nie usunięty. Użytkownik otrzymuje stosowne powiadomienie mailowe wraz z powodem odrzucenia i ma możliwość poprawy wpisu za pośrednictwem swojego profilu.

# Uprawnienia

  • admin.* - dostęp do wszystkich funkcjonalności panelu administracyjnego
  • admin.dirs.* - dostęp do wszystkich funkcjonalności katalogu stron/firm panelu administracyjnego
  • admin.dirs.view - dostęp do listy wpisów w panelu administracyjnym
  • admin.dirs.create - dostęp do dodawania wpisów w panelu administracyjnym
  • admin.dirs.status - dostęp do aktywacji/deaktywacji wpisów w panelu administracyjnym
  • admin.dirs.edit - dostęp do edycji wpisów w panelu administracyjnym
  • admin.dirs.delete - dostęp do usuwania wpisów w panelu administracyjnym
  • admin.dirs.notification - dostęp do powiadomień mailowych dotyczących wpisów dla moderatorów
  • web.* - dostęp do wszystkich funkcjonalności strony użytkownika
  • web.dirs.* - dostęp do wszystkich funkcjonalności katalogu stron/firm na stronie użytkownika
  • web.dirs.create - dostęp do dodawania wpisów na stronie użytkownika
  • web.dirs.edit - dostęp do edycji wpisów na stronie użytkownika
  • web.dirs.delete - dostęp do usuwania wpisów na stronie użytkownika
  • web.dirs.notification - dostęp do powiadomień mailowych dotyczących wpisów na stronie użytkownika

Tylko zalogowani użytkownicy mają możliwość korzystania z powyższych uprawnień.

# Wyszukiwanie powiązane

Z poziomu panelu administracyjnego w oknie filtrowania można zdefiniować dodatkowe opcje wyszukiwania. Aby wyszukać wszystkie wpisy powiązane z użytkownikiem o określonym IP należy podać:

user:"167.89.01.32"

Aby wyszukać wszystkie wpisy powiązane z użytym kodem płatności należy podać:

payment:"multikod_01"

Aby wyszukać wpis o konkretnym ID należy podać:

id:"5"

Powyższe opcje można łączyć z domyślnym wyszukiwaniem po słowach kluczowych lub frazach.

# Powiadomienia mailowe

Powiadomienie wysyłane jest do użytkownika w przypadku aktywacji, usunięcia lub prośby o poprawę wpisu. W przypadku usunięcia lub prośby o poprawę, moderator może wskazać z listy powód odrzucenia.

Powiadomienie o nowych wpisach wysyłane jest do wszystkich moderatorów posiadających odpowiednie uprawnienia. Więcej można przeczytać w sekcji zadań cron.

# Powody odrzuceń

Podczas moderacji wpisu moderator może wybrać powód odrzucenia z predefiniowanej listy lub wpisać ręcznie indywidualny komunikat dla pojedynczego wpisu. Nowe kwestie predefiniowane można zdefiniować z poziomu pliku konfiguracyjnego /config/idir.php jako kolejne elementy tablicy:

'reasons' => [
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
    'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
    'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
    'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
],


# Opcje formularza

Nie powiązane z ustawieniami grupy ustawienia formularza można skonfigurować z poziomu pliku .env w głównym folderze domeny:

  • maksymalna ilość tagów
    IDIR_DIR_MAX_TAGS=10
  • maksymalna długość tytułu:
    IDIR_DIR_MAX_TITLE=100
  • minimalna długość opisu (bez tagów html w przypadku edytora rozszerzonego)
    IDIR_DIR_MIN_CONTENT=255
  • maksymalna długość opisu (bez tagów html w przypadku edytora rozszerzonego)
    IDIR_DIR_MAX_CONTENT=500
  • maksymalna długość opisu skróconego (zawsze bez tagów html):
    IDIR_DIR_SHORT_CONTENT=500


Z poziomu pliku config/idir.php można ustawić normalizer dla tytułu, czyli funkcję która przed dodaniem wpisu sformatuje wartość:

'dir' => [
    'title_normalizer' => 'ucfirst'
],

Powyższa funkcja zamienia pierwszą literę tytułu na dużą.

Aby wyłączyć normalizer należy zamiast nazwy funkcji, ustawić zmienną na null.

# Podlinkowany tytuł wpisu oraz domena

Ze względu na zgodność z wytycznymi Google, iDir domyślnie stosuje nie podlinkowany tytuł wpisu, podlinkowana jest wyłącznie domena bez anchor textu. Stosownej zmiany można dokonać w widoku podstrony wpisu tj. resources/views/vendor/idir/web/dir/show.blade.php zamieniając odpowiedni akcesor modelu.

  • podlinkowany tytuł wpisu:
    {!! $dir->title_as_link !!}
  • nie podlinkowany tytuł wpisu:
    {{ $dir->title }}
  • podlinkowana domena:
    {!! $dir->url_as_link !!}
  • nie podlinkowana domena:
    {{ $dir->url_as_host }}


# Konfiguracja edytora treści WYSIWYG

Zgodnie z dokumentacją pluginu Trumbowyg z poziomu assetu JS:

  • dla strony:
    /resources/js/vendor/idir/web/scripts/plugins/trumbowyg.js
  • dla panelu administracyjnego:
    /resources/js/vendor/idir/admin/scripts/plugins/trumbowyg.js