Stworzenie uniwersalnego "cmsa"

Cześć!

Potrzebuję narzędzia, dla którego będę mógł tworzyć różne typy wpisów (typy wpisów będą przypisywane do wspólnych kategorii). Chodzi ogólnie, aby można było wyklikać różne typy np. 3 pola tekstowe, 3 pola bool, rozwijana lista, upload obrazków, a w innym typie 5 pól tekstowych, 1 bool. Mam nadzieje, że jest to zrozumiałe. ;)

[list=1]

[*]Czy warto zabierać się za takie coś czy lepiej tworzyć osobne tabelki pod każdy typ?

[*]Istnieją jakieś rozszerzenia, którymi warto się wspomóc?

[*]Jak rozwiązać kwestie generowania formularzy, walidacji itp?

[/list]

Oczywiście Yii w wersji 2.

  1. Według mojego doświadczenia lepiej zrobić jedną tabelkę. Jeżeli obiekt klasyfikuje się do tej samej klasy np teksty. Według wzorca strategy. Jedna tabelka dodatkowe pole na typ. Nawet jeżeli na początku to rozwiązanie wydaje się dłuższe później, inwestycja zwróci z nawiązką czas. Zmieniarka typów wpisów może pobierać dane o typie z tabeli lub ze stałych w klasie.

  2. Krajee Yii Extensions szczególnie : Select2,

  3. Kierunków jest wiele. Możesz stworzyć 2 formularze a następnie w kontrolerze stworzyć przełącznik lub 2 akcje do wyboru formularza. Dodając scenariusze co rozwiąże Ci problem walidacji. Tworzysz walidację dla wszystkich pól ogólnie, a w scenerio wybierasz które pola są brane pod uwagę w danym typie wpisu.

Dzięki z odpowiedź, chyba jednak zbyt ogólnie to opisałem. Nie chodziło o stworzenie tylko dwóch typów, lecz o stworzenie uniwersalnego narzędzia. Tak aby można było tworzyć wiele typów w zależności od potrzeb. Czyli chce dodać coś nowego więc wyklikuje nowy typy i na tej podstawie mam kolejny formularz, który jest dopasowany do konkretnego typy wpisu.

Drugi post jest jeszcze bardziej ogólny. Szczególnie po słowach "typów/typy" brakuje mi jakiegoś słowa.

Jeżeli to ma być rozwiązanie uniwersalne to ogólnie mówiąc powinna to być jedna tabela.

Generator tworzy formularz od razu przypisując jakie elementy są wykorzystywane w danym scenariuszu.

Przykład zmodyfikowanego generatora : schmunk42/yii2-giiant

Typy wpisów. Tak jak podawałem w pierwszym poście, potrzebuję wiele typów dla wpisów, np.

[list=1]

[*]w typie X mam 3 pól tekstowych, możliwość dodawania 2 grafik i 1 select

[*]w typie Y mam 2 textarea, 2 pola bool, 5 pól tekstowych

[*]w typie Z mam 10 select, 1 textare, 5 bool i 3 grafiki do dodanie

[*]itp.

[/list]