[ Index ]
 

Code source de WikiNi 0.4.4

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/handlers/page/ -> slide_show.php (source)

   1  <?php
   2      
   3  /*
   4  Handler "slide_show" pour WikiNi version WikiNi 0.4.1 et supérieurs.
   5  Développé par Charles Népote.
   6  Version 0.1 du 09/01/2005.
   7  Licence GPL.
   8  
   9  Par défaut il utilise les classes de style suivantes :
  10  .slide { font-size: 160%; margin: 5%; background-color: #FFFFFF; padding: 30px; border: 1px inset; line-height: 1.5; }
  11  .slide UL, LI { font-size: 100%; }
  12  .slide LI LI { font-size: 90% }
  13  .sl_nav p { text-decoration: none; text-align: right; font-size: 80%; line-height: 0.4; }
  14  .sl_nav A { text-decoration: none; }
  15  .sl_nav a:hover { color: #CF8888 }
  16  .sum { font-size: 8px; }
  17  
  18  Pour modifier ces styles il faut créer un fichier "slideshow.css" contenant les styles modifiés.
  19  Le fichier "slideshow.css" sera reconnu automatiquement.
  20  
  21  */
  22  
  23  // Vérification de sécurité
  24  if (!defined("WIKINI_VERSION"))
  25  {
  26      die ("acc&egrave;s direct interdit");
  27  }
  28  
  29  // On teste si l'utilisateur peut lire la page
  30  if (!$this->HasAccess("read"))
  31  {
  32      return;
  33  }
  34  else
  35  {
  36      // On teste si la page existe
  37      if (!$this->page)
  38      {
  39          return;
  40      }
  41      else
  42      {
  43          /*
  44          Exemple de page :
  45          
  46          (1) Présentation xxxxxxxxxxxxxx
  47          
  48          ===== (2) Titre =====
  49          Diapo 2.
  50          
  51          ===== (3) Titre =====
  52          Diapo 3.
  53          
  54          ===== (4) Titre =====
  55          Diapo 4.
  56          
  57          ===== (5) Titre =====
  58          Diapo 5.
  59          
  60          ===== (6) Titre =====
  61          Diapo 6.
  62          
  63          ===== (7) Titre =====
  64          Diapo 7.
  65          
  66          Autre exemple :
  67          
  68          ===== (1) Titre =====
  69          Diapo 1.
  70          
  71          ===== (2) Titre =====
  72          Diapo 2.
  73          
  74          ===== (3) Titre =====
  75          Diapo 3.
  76          
  77          ===== (4) Titre =====
  78          Diapo 4.
  79          
  80          ===== (5) Titre =====
  81          Diapo 5.
  82          
  83          ===== (6) Titre =====
  84          Diapo 6.
  85          
  86          ===== (7) Titre =====
  87          Diapo 7.
  88          
  89          */
  90  
  91          //
  92          // découpe la page
  93          $body_f = $this->format($this->page["body"]);
  94          $body = preg_split('/(.*<h2>.*<\/h2>)/',$body_f,-1,PREG_SPLIT_DELIM_CAPTURE);
  95          
  96                  // Informations de débogage
  97          if (isset($_REQUEST["debug"]) and $_REQUEST["debug"] == "1")
  98          {
  99              echo "<div style=\"display: none\">\n";
 100              print_r($body);
 101              echo "</div>\n\n";
 102          }
 103  
 104          // Si la première diapositive commence par un titre de niveau 1
 105          if (preg_match('/^<h2>.*<\/h2>/', $body_f)) $major = "0";
 106          else $major = "1";
 107          
 108          $user = $this->GetUser(); // echo $this->GetUser();
 109  
 110          // On teste toutes les paramètres du handler "slide_show" ; s'il n'y en a pas, c'est le paramètre "slide=1" qui est invoqué par défaut
 111  
 112          /*
 113          switch ($_REQUEST["method"])
 114          {
 115              case "export":
 116                  export();
 117                  break;
 118              case "show":
 119                  showSlide();
 120                  break;
 121              default:
 122                  showSlide();
 123                  break;
 124          }
 125          */
 126  
 127          //if ($_REQUEST["export"]) { return; }
 128              
 129  
 130          if (!$body)
 131          {
 132              return;
 133          }
 134          else
 135          {
 136              // Si on ne précise pas de paramètre, on affiche par défaut la première diapo
 137              if (!isset($_REQUEST["slide"]) or $_REQUEST["slide"] == "1") $slide = "1";
 138              else $slide = $_REQUEST["slide"];
 139  
 140              // En-tête du fichier HTML
 141              echo
 142              "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
 143              echo
 144              "<html>\n\n\n",
 145              "<head>\n",
 146              "<title>", $this->GetWakkaName(), ":", $this->GetPageTag(), "</title>\n",
 147              "<meta name=\"robots\" content=\"noindex, nofollow\" />\n",
 148              "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
 149              echo
 150              "<style type=\"text/css\" media=\"all\"> @import \"wakka.css\";</style>\n";
 151              // Teste s'il existe une feuille de style externe, sinon utilise des styles par défaut
 152              if (!file_exists("slideshow.css"))
 153              {
 154                  echo "<style type=\"text/css\">\n",
 155                  ".slide { font-size: 160%; margin: 5%; background-color: #FFFFFF; padding: 30px; border: 1px inset; line-height: 1.5; }\n",
 156                  ".slide UL, LI { font-size: 100%; }\n",
 157                  ".slide LI LI { font-size: 90% }\n",
 158                  ".sl_nav p { text-decoration: none; text-align: right; font-size: 80%; line-height: 0.4; }\n",
 159                  ".sl_nav A { text-decoration: none; }\n",
 160                  ".sl_nav a:hover { color: #CF8888 }\n",
 161                  ".sum { font-size: 8px; }\n",
 162                  "</style>\n";
 163              }
 164              else
 165              {
 166                  echo "<style type=\"text/css\" media=\"all\"> @import \"slideshow.css\";</style>\n";
 167              }
 168  
 169              echo
 170              "</head>\n\n\n";
 171              
 172              // Affiche le corps de la page
 173              echo
 174              "<body ";
 175              echo (!$user || ($user["doubleclickedit"] == 'Y')) ? "ondblclick=\"document.location='".$this->href("edit")."';\" " : "", ">\n";
 176  
 177              // -- Affichage du sommaire [à compléter] ----------
 178              /*
 179              if ($_REQUEST["sum"] == "on")
 180              {
 181                  echo "<ul class=\"sum\">\n";
 182                  if ($major = "1") echo "<li>", $this->format($body[0]), "</li>\n";
 183                  foreach ($body as $title_sum)
 184                  {
 185                      $i = $i + 1;
 186                      $type = gettype($i/2);
 187                      // Ne retourne que les 50 premiers caractères du titre
 188                      $title_sum = substr($title_sum, 0, 50);
 189                      if ($type == "integer")
 190                      {
 191                          echo "<li>",$this->format($title_sum),"</li>\n";
 192                      }
 193                  }
 194                  echo "</ul>\n\n";
 195              }
 196              */
 197  
 198              // -- Affichage du menu de navigation --------------
 199              echo
 200              "<div class=\"sl_nav\">\n",
 201              "<p>";
 202              // Si ce n'est pas la première diapositive, on affiche les liens "<< précédent"
 203              // et "[Début]"
 204              if ($slide !== "1")
 205              echo
 206              "<a href=\"",$this->href(),"/slide_show&slide=",$_REQUEST['slide']-1,"\"><< précédent</a>",
 207              " :: <a href=\"",$this->href(),"/slide_show&slide=1\">[début]</a>\n";
 208              echo " :: ";
 209              // Si ce n'est pas la dernière diapositive, on affiche le lien "suivant >>"
 210              if (isset($body[($slide)*2-($major*2)+2]) or $slide == "1")
 211              echo "<a href=\"",$this->href(),"/slide_show&slide=",$slide+1,"\">suivant >></a>\n";
 212              echo
 213              "</p>\n";
 214              // Quelquesoit la diapositive, on affiche les liens "Éditer" et "[]->" (pour quitter)
 215              echo "<p><a href=\"",$this->href(),"/edit\">Éditer </a> :: <a href=\"",$this->href(),"\">[]-></a></p>\n";
 216              echo
 217              "</div>\n\n";
 218  
 219              echo
 220              "<div class=\"slide\">\n";
 221  
 222              // -- Affichage du contenu -------------------------
 223  
 224              // Si c'est la première diapositive
 225              if ($slide == "1" and $major == "1")
 226              {
 227                  echo $body[0], "<br /><br />";
 228              }
 229  
 230              // A partir de la deuxième diapositive
 231              else
 232              {
 233                  echo
 234                  $body[($slide*2)-($major*2)-1].$body[($slide*2)-($major*2)],"\n";
 235                  echo "\n";
 236              }
 237              echo
 238              "</div>\n\n";
 239  
 240              echo
 241              "</body>\n",
 242              "</html>";
 243          }
 244      }
 245  }
 246  ?>


Généré le : Mon Nov 26 12:05:46 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics