Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis konfiguracji, formularz
Forum PHP.pl > Forum > PHP
WebCM
Zabieram się za tworzenie nowego interfejsu do zapisu konfiguracji w CMS-ie.
http://phpproblem.gourl.org

Niektóre dane wymagają obróbki, więc nie mogę zapisać bezpośrednio danych z $_POST:
Kod
funkcja_zapisu($_POST)

Można rozwiązać problem w ten sposób:
Kod
$_POST['dane'] = Clean($_POST['dane']); //Clean = funkcja jądra skryptu

Myślę, że lepiej zdefiniować, jakie wartości mogą zapisać się (int, tekst, itd.) w poszczególnych opcjach mimo tego, że dostęp do konfiguracji właściciele stron mogą przydzielać tylko wybranym osobom lub grupom. Niestety, będzie znacznie więcej kodu (ponad opcji w "ogólnych").

Co o tym myślicie?

Jeżeli definiowałoby się każdą opcję do zapisu, formularz można generować dynamicznie (sposób trochę wolniejszy, ale mniej kodu i może przejrzyściej). Problem w tym, że są różne typy pól:
- checkbox
- radio (kilka pozycji dla tej samej opcji)
- select (opcje <option> często generują inne funkcje, wywalając gotowy kod)
- input (szeroki na tekst bądź wąski na liczbę)

Jak więc generować taki formularz z opcjami konfiguracyjnymi? Chyba, że lepiej pozostać przy statycznych formularzach, aby nie komplikować sytuacji i nie ograniczać możliwości wstawiania kodu.

PS. Dane zapisywane są do plików .php.
.radex
w tej funkcji Funkcja_zapisu, możesz dać pętlę która będzie się wykonywała count($argument) razy i będzie Clean()'owała $argument[$i]. Jednak to bez sensu, bo niektóre dane mogą być innego typu niż tylko string, a bez sensu dawać w drugim argumencie array'a z typami pokolei... Myślę że warto dać możliwość dodawania pól. Trochę w tym roboty, ale możesz dać, jeśli to jest w mysql, w drugiej kolumnie typ. itd. Statyczne formularze to trochę przeszłość - mała elastyczność.
WebCM
W statycznych formularzach nie ograniczasz możliwości jak w dynamicznych. Jak stworzyłbyś kod zarówno generujący formularz z opcjami jak i zapisujący konfigurację (coś w stylu pliku definicji)?

Przykład:
  1. <?php
  2. $form -> checkbox('nazwa_pola', 50, 'int'); //50 = maxlength
  3. $form -> text('nazwa_pola2', 'clean');
  4. ?>
Powyższe rozwiązanie jest nieelastyczne choćby z tego względu, że niektóre pola wymagają np. dodania atrybutów (ID, size), zdarzeń... nie mówiąc o "radio" i <select>. Rozwiązaniem jest użycie np. trzeciego argumentu funkcji jako tablicy z właściwościami bądź:
  1. <?php
  2. $f = $form->checkbox(...);
  3. $f -> id = 'obraz';
  4. $f -> label = 'Etykieta:';
  5. $f -> content = '...'; //np. dla <select>
  6. ?>
Też ogranicza możliwości i jest wolne przy dużej ilości pól.

Kwestię formularzy z opcjami pozostawię na później. Na razie chyba pola formularza będą miały nazwy: o[nazwa_opcji]:
Kod
<input name="o[title]" />
Nie powinno raczej to wpłynąć na wydajność, chyba że się mylę.

Jakie są wasze zdania na ten temat?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.