gestion des skins, ajout screenshot pour la skin par défaut
authorx2000habouzit <x2000habouzit>
Mon, 26 Jan 2004 18:00:01 +0000 (18:00 +0000)
committerx2000habouzit <x2000habouzit>
Mon, 26 Jan 2004 18:00:01 +0000 (18:00 +0000)
htdocs/css/default.css
htdocs/images/sk_default_snapshot.png [new file with mode: 0644]
htdocs/skins.php [new file with mode: 0644]
include/menu.inc.php
include/xorg.common.inc.php
include/xorg.session.inc.php
templates/skins.tpl [new file with mode: 0644]

index d0c2c52..7cde687 100644 (file)
@@ -83,6 +83,31 @@ table.bicol td.bicoltitre,span.bicoltitre {
 }
 table.bicol td.bouton { text-align: right; }
 
+/*******************************************
+*             CHOIX SKINS                  *
+*******************************************/
+
+#skin {
+    border-bottom: 1px solid #003399;
+    border-top: 1px solid #003399;
+    width: 98%;
+    margin-left: 1%;
+}
+#skin td {
+    border-bottom: 1px solid #003399;
+    border-top: 1px solid #003399;
+    vertical-align: middle;
+}
+#skin td.skigauche {
+    background-color: #eeeeee;
+    color: inherit;
+    vertical-align: middle;
+}
+#skin td.skimilieu {
+    padding-left: 1em;
+    width: 100%;
+}
+#skin td.skidroite { padding: 0; }
 
 /**************
     LAYOUTS 
diff --git a/htdocs/images/sk_default_snapshot.png b/htdocs/images/sk_default_snapshot.png
new file mode 100644 (file)
index 0000000..4de8ca9
Binary files /dev/null and b/htdocs/images/sk_default_snapshot.png differ
diff --git a/htdocs/skins.php b/htdocs/skins.php
new file mode 100644 (file)
index 0000000..54177b0
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('skins.tpl', AUTH_COOKIE);
+
+if (isset($_REQUEST['submit']))  {  // formulaire soumis, traitons les données envoyées
+    mysql_query("UPDATE auth_user_md5
+                SET skin={$_REQUEST['newskin']}
+                WHERE user_id={$_SESSION['uid']}");
+    set_skin();
+}
+
+$res = mysql_query("SELECT id,s.skin,s.skin_popup,snapshot,name,s.date,comment,auteur,count(*) AS nb FROM skins AS s
+                    LEFT JOIN auth_user_md5 AS a ON s.id=a.skin
+                    WHERE !FIND_IN_SET('cachee',type) AND s.skin != ''
+                    GROUP BY id ORDER BY s.date DESC");
+$skins = Array();
+while($skins[] = mysql_fetch_assoc($res));
+mysql_free_result($res);
+array_pop($skins);
+
+$page->assign_by_ref('skins',$skins);
+$page->assign('stochaskin',SKIN_STOCHASKIN_ID);
+
+$page->display();
+?>
index 4d2b513..a574c94 100644 (file)
@@ -44,7 +44,6 @@ if(logged()) {
             'Documentations' => '###url###',
             'Clear cache' => 'clear_all_cache.php'
         );
-        if(empty($site_dev)) array_pop($menu['***']);
     }
 } else {
     $menu = Array(
index 07a9c74..2adc3cf 100644 (file)
@@ -9,6 +9,7 @@ define("PERMS_USER", "user");
 define("PERMS_ADMIN", "admin");
 
 define('SKIN_COMPATIBLE','default.tpl');
+define('SKIN_COMPATIBLE_ID',1);
 define('SKIN_POPUP_COMPATIBLE','default.popup.tpl');
 define('SKIN_STOCHASKIN_ID','254');
 
index f76e50a..59a9c66 100644 (file)
@@ -226,19 +226,18 @@ function start_connexion ($username, $uid, $identified) {
 
 function set_skin() {
   if(logged()) {
-    $result = mysql_query("SELECT skin FROM auth_user_md5 WHERE username = '{$_SESSION['uid']}'");
+    $result = mysql_query("SELECT skin FROM auth_user_md5 WHERE user_id='{$_SESSION['uid']}'");
     if(list($skin) = mysql_fetch_row($result)) {
-      $sql = "SELECT normal,popup FROM skins WHERE ";
-      if ($_SESSION['skin'] == SKIN_STOCHASKIN_ID) {
-        $sql .= " !FIND_IN_SET('cachee',type) order by rand() limit 1";
-      } else {
-        $sql .= "id='$skin'";
-      }
-      $res = mysql_query($sql);
-      list($_SESSION['skin'], $_SESSION['skin_popup']) = mysql_fetch_row($res);
+      if ($_SESSION['skin'] == SKIN_STOCHASKIN_ID)
+        $sql = " !FIND_IN_SET('cachee',type) order by rand() limit 1";
+      else
+        $sql = "id='$skin'";
+      $res = mysql_query("SELECT id,skin,skin_popup FROM skins WHERE $sql");
+      list($_SESSION['skin_id'], $_SESSION['skin'], $_SESSION['skin_popup']) = mysql_fetch_row($res);
       mysql_free_result($res);
     } else {
       $_SESSION['skin'] = SKIN_COMPATIBLE;
+      $_SESSION['skin_id'] = SKIN_COMPATIBLE_ID;
       $_SESSION['skin_popup'] = SKIN_COMPATIBLE;
     }
     mysql_free_result($result);
@@ -247,8 +246,9 @@ function set_skin() {
   if( !logged() || !isset($_SERVER['HTTP_USER_AGENT'])
       || ereg("Mozilla/4\.[0-9]{1,2} \[",$_SERVER['HTTP_USER_AGENT']) )
   {
-    $_SESSION['skin'] = SKIN_COMPATIBLE;
-    $_SESSION['skin_popup'] = SKIN_COMPATIBLE;
+    $_SESSION['skin'] = SKIN_POPUP_COMPATIBLE;
+    $_SESSION['skin_id'] = SKIN_COMPATIBLE_ID;
+    $_SESSION['skin_popup'] = SKIN_POPUP_COMPATIBLE;
   }
 }
 
diff --git a/templates/skins.tpl b/templates/skins.tpl
new file mode 100644 (file)
index 0000000..384aa09
--- /dev/null
@@ -0,0 +1,56 @@
+{* $Id: skins.tpl,v 1.1 2004-01-26 18:00:03 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+  Skins Polytechnique.org
+</div>
+<p class="normal">
+Tu n'aimes pas les couleurs ou l'apparence de Polytechnique.org ? Normal, les goûts et les
+couleurs, ça ne se discute pas. Certains préfèrent une page sérieuse, d'autres plus
+fantaisiste. A toi de voir :)
+</p>
+<p class="normal">
+Note aux utilisateurs du navigateur Netscape 4.x ou équivalent.
+La fonctionalité "skins" n'est hélas pas compatible avec ces navigateurs
+qui ne respectent pas les standards du web. <br />
+Pour profiter de toutes les fonctionnalités de Polytechnique.org,
+nous te conseillons de télécharger une version récente de ton navigateur.
+</p>
+<p class="normal">
+Pour toute information complémentaire, n'hésite pas à écrire à
+<a href="mailto:support@polytechnique.org?subject=navigateurs">support@polytechnique.org</a>
+</p>
+
+<form action="{$smarty.server.REQUEST_URI}" method="POST">
+  <div style="text-align:center; margin: 1em;">
+    <input type="submit" value="Enregistrer" name="submit">
+  </div>
+  <table id="skin" cellpadding="0" cellspacing="0" summary="Choix de skins">
+{dynamic}
+{foreach item=skin from=$skins}    
+    <tr>
+      <td class="skigauche">
+        <input type="radio" name="newskin" value="{$skin.id}" {if $smarty.session.skin_id eq $skin.id}checked="checked"{/if}>
+      </td>
+      <td class="skimilieu">
+        <strong>{$skin.name}</strong>
+        ajoutée le {$skin.date|date_format:"%x"}<br />
+        {$skin.comment}
+        <br /><br />
+        Créée par <strong>{$skin.auteur}</strong>
+        <br /><br />
+        Utilisée par <strong>{$skin.nb}</strong> inscrit{if $skin.nb>1}s{/if}
+      </td>
+      <td class="skidroite">
+        <img src="images/{$skin.snapshot}" width=171 height=162 alt=" [ CAPTURE D'ECRAN ] ">
+      </td>
+    </tr>
+{/foreach}
+{/dynamic}
+  </table>
+  <div style="text-align:center; margin: 1em;">
+    <input type="submit" value="Enregistrer" name="submit">
+  </div>
+
+</form>
+
+{* vim:set et sw=2 sts=2 sws=2: *}