Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]System tworzenia/modyfikacji/usuwania podstron serwisu
Forum PHP.pl > Forum > PHP
jj09
Witam, mam dosyć prostą stronę w której wykorzystałem includowane menu:
  1. <?
  2. switch ($_GET['txt'])
  3. {
  4. case (""):
  5. include ("home.php");
  6. break;
  7.  
  8. case ("podstrona1"):
  9. include ("podstrona1.php");
  10. break;
  11.  
  12. case ("podstrona2"):
  13. include ("podstrona2.php");
  14. break;
  15.  
  16. default:
  17. include ("home.php");
  18. }
  19. ?>


Chcę utworzyć system, który umożliwiłby tworzenie/edycję/usuwanie podstron.

System miałby spełniać następujące wymogi:
:ballon: Tworzenie pliku wraz ze strukturą (aby podstrony były identyczne):
  1. <? 
  2. //nagłówek podstrony
  3. <class="site_title"> .$txt_title</p><hr style="width: 420px;" />
  4. //treść podstrony
  5. <div class="justify">
  6. $txt_tresc
  7. </div> 
  8. ?>


:ballon: przy tworzeniu nowego pliku...i tutaj są dwie opcje:
1) modyfikowany byłby index.php tzn.dodawana była by podstrona tak aby po utworzeniu mogła się includować oraz pojawiał się link do podstrony w menu
2) menu byłoby pentlą i podstrony miałyby nazwy np.liczbowe oraz link pojawiałby się w pliku, który wypisywał by strony z katalogu i odczytywał ich $txt_title

:ballon: plik administracyjny można umieścić w katalogu np.admin, ale to nie byłoby konieczne

No i tak...mam skrypt, który tworzy/edytuje/usuwa pliki, ale jest on bardzo prosty...tzn.nie ma możliwości o których napisałem...oto on:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"><head>
  4. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
  5. <title>test</title><style type="text/css"><!--
  6. body, td { font-family: arial; font-size: 13px; }
  7. --></style></head><body>
  8.  
  9. <table><tr><td valign="top">
  10.  
  11. Utwórz nowy plik o nazwie:
  12. <form action="admin.php" method="get">
  13. <input type="text" name="nowy" />
  14. <br /><input type="submit" value="Wykonaj" />
  15. </form>
  16.  
  17. <?
  18. // zakladanie wskazanego pliku
  19. $nowy = $_GET["nowy"];
  20. if (!file_exists($nowy) && $nowy<>"") {
  21. touch($nowy);
  22. chmod($nowy, 0664);
  23. } else if ($nowy<>"" && file_exists($nowy)) {
  24. echo "Plik o podanej nazwie już istnieje!";
  25. }
  26.  
  27. // usuwanie wskazanego pliku
  28. $usun = $_GET["usun"];
  29. if ($usun<>"" && file_exists($usun)) {
  30. unlink($usun);
  31. }
  32.  
  33. // wypisywanie dostępnych plików
  34. $katalog = opendir("./");
  35. while ($plik = strtolower(readdir($katalog))) {
  36. if ($plik<>"." && $plik<>".." && $plik<>"admin.php" ) $lista[]=$plik;
  37. } 
  38. closedir($katalog);
  39. if (count($lista)>0) { 
  40. echo "Wybierz plik do edycji:";
  41. sort($lista);
  42. }
  43. for ($i=0;$i<count($lista);$i++) {
  44. echo "<br /><a href=\"admin.php?edycja=$lista[$i]\">$lista[$i]</a>";
  45. echo " - <a href=\"admin.php?usun=$lista[$i]\">usuń</a>";
  46. echo " - <a href=\"$lista[$i]\">zobacz</a>";
  47. }
  48.  
  49.  
  50. // zmiana zawartosci pliku
  51. $edycja = $_REQUEST["edycja"];
  52. if (isset($_POST["tekst"]) && file_exists($edycja)) {
  53. $f = fopen($edycja, "w");
  54. fputs($f, stripslashes($_POST["tekst"]));
  55. fclose($f);
  56. }
  57.  
  58. echo "</td><td valign=top align=center>";
  59.  
  60. // umieszczenie pliku w formularzu
  61. if ($edycja<>"" && file_exists($edycja)) {
  62. echo "<p> </p>Edycja pliku: <b>$edycja</b>";
  63. echo '<form action="admin.php" method="post">
  64. <input type="hidden" name="edycja" value="'.$edycja.'" />
  65. <textarea name="tekst" rows="20" cols="50">';
  66. $f = fopen($edycja,"r");
  67. while(!feof($f)) echo fread($f,1024);
  68. fclose($f);
  69. echo '</textarea><br /><input type="submit" value="Zmień" /></form>';
  70. }
  71. ?>
  72.  
  73. </td></tr></table>
  74.  
  75. </body></html>


Czy dałoby radę na podstawie tego skryptu taki system wykonać? Czy może są w sieci jakieś lepsze gotowce do czegoś takiego?
carbolymer
Zamist tego switcha wybierającego podstronę, można by było użyć listy stron w xml-u lub yml, która była by edytowalna w php. I tu uniknąłbyćś modyfikacji pliku index.php. Zabardzo nie wiem dokładnie do czego dążysz, ale takie coś jest możliwe.
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.