MVC a funkcje rekurencyjne

Witam, ja z takowym pytaniem, ponieważ szukam przyjemnego dla oka rozwiązania - szczególnie, że też jestem zdania jak ludzie z tej strony - że używanie HTML w kodzie kontrolerów/modelów jest BARDZO ZŁE - wręcz tragiczne. No OK, zgadzam się z tym i sam za wszelką cenę staram się HTML zostawiać w widokach, lecz jakie byście zaproponowali rozwiązanie klasycznego drzewka, którego poskładanie wymaga raczej użycia rekurencji i składania HTML na bieżąco? Jako przykład lista kategorii z dowolnym stopniem zagnieżdżenia. Do tej pory składałem listę HTML w funkcji rekurencyjnej - w modelu bodajże, jednak chętnie za karę będę klęczał na grochu, jeśli zaproponuje ktoś przyjemniejsze rozwiązanie.

  • Przede wszystkim jestem zdania, że powinieneś nauczyć się języka polskiego. Następnie będziesz mógł zadawać pytania, bo logiki w Twojej wypowiedzi brak. Mam nadzieję, że zastosowana kryptologia pozwoliła mi zrozumieć o co pytasz.

    Problem wyświetlania w HTML widoków zagnieżdżonych w widokach nie wymaga stosowania rekurencji, ani generowania tegoż w modelu. Należy w odpowiedniej strukturze danych przenieść niezbędne informacje (w PHP robi się to w tablicach lub tworzy klasę) o drzewie do widoku, i tam przekształcać te informacje na HTML.

    Jeżeli struktura jest drzewiasta, można do widoku dodać funkcję nierekurencyjną, która to drzewo rozwija. Jednakże prostszą metodą wydaje się zbudowanie od razu płaskiej struktury (listy) elementów hierarchii z podaniem liczbowej wartości stopnia ich zagnieżdżenia, która to liczba zostanie przez widok użyta do określenia stylu zastosowanego do wyświetlenia tego elementu. Z punktu widzenia HTML, to i tak będzie płaska lista.

  • Ciekawe podejście prezentuje django-treebeard, pod koniec strony w opisie get_annotated_list(). Wprawdzie to Python a nie PHP, ale nie spotkałem się jeszcze z taką implementacją widoku drzewka w PHP.

Zaloguj się, aby dodać swoją odpowiedź