Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapis konfiguracji, formularz, użyć klasy / funkcji?
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
WebCM
post
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


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?

Ten post edytował WebCM 15.09.2007, 22:29:08
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 14:12