Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Powrót do... szablonów, Wybór szablonu HELP!
Kshyhoo
post
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Witam, czas poszydzić za mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Piszę pracę szkolną i zagłębiam się w temacie szablonów w php (brrr).
Chciałbym, by użytkownik miał wybór szablonu strony a jego wybór był zapisany w bazie. Nie wiem tylko jak pobrać taką strukturę:
Kod
themes [DIR]
          |
          +- szablon1 [DIR]
          |             |
          |             +- themes.php
          |
          +- szablon2 [DIR]
          |             |
          |             +- themes.php
          |
          +- szablon3 [DIR]
          |             |
          |             +- themes.php
          |
          +- szablonX [DIR]
                        |
                        +- themes.php

W plikach theme.php zawarta będzie oprawa graficzna (już mam) oparta na CSS.
Problem mam z pobraniem struktury i dołączeniem do głównego skryptu. Kombinowałem pobrać tak:
  1. <?php
  2. $handle = opendir(THEMES);
  3. while ($folder = readdir($handle)) if (!in_array($folder, array(&#092;".\", \"..\", \"/\", \"index.php\"))) $theme_list[] = $folder;
  4. closedir($handle);
  5. sort($theme_list);
  6. array_unshift($theme_list, &#092;"Default\");
  7. ?>

ale nie wiem, co z tym zrobić dalej a chciałbym móc wyświetlić wybór, ustawić temat i zapisać wybór w bazie. Skrypt wykonuje się bez błędów, ale nie wiem, jak wyświetlić wyniki i dokonać wyboru...

Ten post edytował Kshyhoo 25.02.2005, 20:56:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Leezard
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

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


rozumiem ze chcesz pobrac do tablicy nazwy katalogow w ktorych sa pliki theme.php tzn. szablon1, szablon2 itd... jesli tak to w warunku w petli while musisz dac sprawdzenie funkcja is_dir(), poniewaz chcesz pobrac tyko nazwy katalogow.

majac tablice dorzucasz sobie na poczatek twoj "Default" tak jak zrobiles, a potem wyswietlasz tablice np w elemencie SELECT html'a np tak:
  1. <?php
  2.  
  3. echo '<select name=\"nazwa_selecta\">';
  4. foreach($tablica as $element)
  5. {
  6.  echo '<option value='.$element.'>'.$element.'</option>';
  7. }
  8. echo '</select>';
  9.  
  10. ?>

a potem submitujesz formularz z tym selectem do jakiegos skryptu ktory ci odczyta odpowiednia zmienna $_POST i zapisze w bazie danych
Go to the top of the page
+Quote Post
-Guest-
post
Post #3





Goście







To wiem, kombinowałem na wszytskie sposoby i nie mogę załapać.
Próbowałem tak:
  1. <?php
  2. <select name='user_theme' class='textbox' style='width:100px;'>&#092;n\";
  3. for ($count=0;$theme_list[$count]!=&#092;"\";$count++) {
  4. echo &#092;"<option\".($theme_list[$count] == $userdata['user_theme'] ? \" selected\" : \"\").\">$theme_list[$count]</option>n\";
  5. }
  6. echo &#092;"</select>
  7. ?>

ale wywala błędy.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Wymyśliłem coś takiego:
  1. <?php
  2. $handle = opendir(themes);
  3. while ($folder = readdir($handle)) if (!in_array($folder, array(&#092;".\", \"..\", \"/\", \"index.php\"))) $theme_list[] = $folder;
  4. closedir($handle);
  5. sort($theme_list);
  6. array_unshift($theme_list, &#092;"Default\");
  7.  
  8. echo '<center><select name=\"theme_list\">';
  9. foreach($theme_list as $folder)
  10. {
  11. echo '<option value='.$theme_list.'>'.$folder.'</option>';
  12. }
  13. echo '</select><BR>';
  14. echo &#092;"<BR><input TYPE='submit' value='Zapisz'></form>\";
  15. ?>
Go to the top of the page
+Quote Post
Coyote
post
Post #5





Grupa: Zarejestrowani
Postów: 151
Pomógł: 0
Dołączył: 20.02.2005
Skąd: Poznań

Ostrzeżenie: (30%)
XX---


jak piszesz ze wywala bledy to pokazuj jakie ....
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No dobra, po ciężkiej bitwie, jakoś poszło. Efekty mizerne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jednak jest problem. Nie wszystko co includuję, zachowuje się tak jak bym chciał.
Szczegóły tutaj.
Chodzi o to, że po wejściu na link Logowanie wcina prawy panel i stopkę. Część skryptu admin.php, gdzie jest includowana klasa:
  1. <?php
  2. $sl_perm = 5;
  3. include &#092;"admin/sitelock.class.php\";
  4. $DB = new GateDB;
  5. ?>

I sama klasa (wklejam cały, bo ma kilka odwołań):
  1. <?php
  2.  
  3. $path_to_sl = &#092;"\";
  4.  
  5. include $path_to_sl . &#092;"sitelock.conf.php\";
  6.  
  7. class SiteLock {
  8.  
  9. function SiteLock() {
  10. global $user, $password, $if_logged_in;
  11. global $cookie_name, $sl_cookie, $loggedout, $path_to_sl, $sl, $html;
  12. $GF = new SiteLockForm;
  13. $GF->logout();
  14. if ((isset($sl_cookie)) and ($loggedout != &#092;"yes\")) {
  15. include $path_to_sl . &#092;"dbclass.\" . $sl['db_type'] . \".php\";
  16. $DB = new GateDB;
  17. if ($DB->db_initialize()) {
  18. if ($DB->find_user_by_cookie($sl_cookie)) {
  19. $if_logged_in = &#092;"yes\";
  20. } else {
  21. $GF->print_form_in();
  22. }
  23. } else {
  24. echo('Nie mogłem połączyć się z serweram baz danych. Administrator tej strony powinien
  25. ją poprawnie skonfigurować.');
  26. }
  27. } else {
  28. if ($GF->check_form_in()) {
  29. include $path_to_sl . &#092;"dbclass.\" . $sl['db_type'] . \".php\";
  30. $DB = new GateDB;
  31. if ($DB->db_initialize()) {
  32. if ($DB->find_user($user, $password)) {
  33. $this->generate_cookie();
  34. setCookie($sl['cookie_name'], $sl_cookie);
  35. if ($DB->update_user_entry($user, $password)) {
  36. $if_logged_in = &#092;"yes\";
  37. } else {
  38. echo('Nie mogłem ukatualnić informacji w bazie danych. Prawdopodobnie baza danych nie 
  39. a odpowiednich tabel i pól wymienionych w pliku konfiguracyjnym.');
  40. }
  41. } else {
  42. $GF->print_form_in('Dane niepoprawne. Proszę wpisać swój identyfikator i hasło.');
  43. }
  44. } else {
  45. echo('Nie mogłem połączyć się z serweram baz danych. Administrator tej strony powinien
  46. ją poprawnie skonfigurować.');
  47. }
  48. } else {
  49.  $GF->print_form_in('Proszę wpisać swój identyfikator i hasło.');
  50. }
  51. }
  52. }
  53.  
  54. function generate_cookie() {
  55. global $sl_cookie;
  56. srand((double)microtime()*100000);
  57. $sl_cookie = md5(uniqid(rand()));
  58. return $sl_cookie;
  59. }
  60. }
  61.  
  62. class SiteLockForm {
  63.  
  64. function print_form_in($login_message) {
  65. global $sl, $html;
  66. echo '<title>Strona logowania</title>';
  67. echo $html['br'] . $html['br'] . $html['br']; 
  68. echo &#092;"n\" . '<form method=\"post\">' . \"n\";
  69. echo '<table border=\"0\" width=\"\" align=\"center\">' . &#092;"n\";
  70. echo '<tr><td colspan=\"2\">';
  71. echo $html['b'] . $login_message . $html['/b'] . $html['br'] . $html['br'];
  72. echo '</td></tr>' . &#092;"n\";
  73. echo '<tr><td>Identyfikator: </td><td>';
  74. echo '<input type=\"text\" name=\"' . $sl['form_user'] . '\" maxlength=\"15\" size=\"12\">';
  75. echo '</td></tr>' . &#092;"n\";
  76. echo '<tr><td>Hasło: </td><td>';
  77. echo '<input type=\"password\" name=\"' . $sl['form_password'] . '\" maxlength=\"15\" size=\"12\">';
  78. echo '</td></tr>' . &#092;"n\";
  79. echo '<tr><td colspan=\"2\" align=\"center\">';
  80. echo $html['br']. '<input type=\"submit\" value=\"Zaloguj\">';
  81. echo '</td></tr>' . &#092;"n\";
  82. echo '</table>' . &#092;"n\";
  83. echo '</form>' . &#092;"n\";
  84. }
  85.  
  86. function print_form_out() {
  87. global $sl, $user, $html;
  88. echo('Identyfikator: ');
  89. echo $user . $html['brn'] . &#092;"n\";
  90. echo '<form method=\"post\">';
  91. echo '<input type=\"submit\" name=\"' . $sl['form_logout'] .'\" value=\"' . $sl['form_logout'] . '\">';
  92. echo &#092;"</form>nn\";
  93. }
  94.  
  95. function check_form_in() {
  96. global $user, $password, $html;
  97. if ((!empty($user)) && (!empty($password))) {
  98. return true; 
  99. } else {
  100. return false;
  101. }
  102. }
  103. function logout() {
  104. global $logout, $sl, $loggedout;
  105. if (!empty($logout)) {
  106. setCookie($sl['cookie_name'], &#092;"\");
  107. $loggedout = &#092;"yes\";
  108. }
  109. }
  110.  
  111. function admin_print_user($id, $user, $password, $perm) {
  112.  
  113. echo '<form name=\"' . $user . '\" method=\"post\">';
  114. echo '<input type=\"hidden\" name=\"form_id\" value=\"' . $id . '\">';
  115. echo '<tr>';
  116. echo '<td><input type=\"text\" name=\"form_user\" value=\"';
  117. echo $user . '\" size=\"10\" maxlength=\"15\"></td>';
  118. echo '<td><input type=\"text\" name=\"form_password\" value=\"';
  119. if (empty($password)) {
  120. echo &#092;"-\";
  121. }
  122. echo '\" size=\"10\" maxlength=\"15\"></td>';
  123. echo '<td><input type=\"text\" name=\"form_perm\" value=\"';
  124. echo  $perm . '\" size=\"10\" maxlength=\"15\"></td>';
  125. echo '<td><a href=\"javascript:confirm_change('' . $user . '')\">';
  126. echo  ('Zmień'). '</a></td>';
  127. echo '<td><a href=\"javascript:confirm_delete('' . $user . '')\">';
  128. echo  ('Skasuj') . '</a></td>';
  129. echo '</tr>';
  130. echo &#092;"</form>n\";
  131. }
  132.  
  133. function admin_print_user_new() {
  134. global $sl, $html;
  135. echo '<form method=\"post\" action=' . $sl['add_page'] . '>'; 
  136. echo &#092;"<tr>\";
  137. echo '<td><input type=\"text\" name=\"form_user\" size=\"10\" maxlength=\"15\"></td>';
  138. echo '<td><input type=\"text\" name=\"form_password\" size=\"10\" maxlength=\"15\"></td>';
  139. echo '<td><input type=\"text\" name=\"form_perm\" size=\"10\" maxlength=\"15\"></td>';
  140. echo '<td><input type=\"submit\" name=\"delete\" value=\"' .'Dodaj'. '\"></td>';
  141. echo '<td>&nbsp;</td>';
  142. echo &#092;"</tr>\";
  143. echo &#092;"</form>n\";
  144. }
  145. }
  146.  
  147. /* Execution of the script starts here: */
  148.  
  149. $SL = new SiteLock;
  150.  
  151. if ($if_logged_in != &#092;"yes\") {
  152. die;
  153. }
  154.  
  155. ?>

P.S. Nie patrzcie na layout, to ma służyć nauce php, na sztukę czas przyjdzie później.

Ten post edytował Kshyhoo 17.03.2005, 22:25:22
Go to the top of the page
+Quote Post

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: 24.08.2025 - 00:59