コード例 #1
0
ファイル: wspad.php プロジェクト: npds/npds_dune
function Page($page, $ranq)
{
    global $NPDS_Prefix, $ModPath, $ModStart, $gmt, $auteur, $groupe, $mess;
    $tmp = "\n   <script type='text/javascript'>\n   //<![CDATA[\n   // timerID=10 secondes (verrou) : timerTTL=20 minutes (force la deconnexion)// 240000 pour debug\n   var timerID = null;\n   var timerTTL = null;\n   function TimerInit() {\n       timerID = setTimeout('TimerAct()',10000);\n       timerTTL= setTimeout('TimerDes()',240000);\n   }\n   function TimerAct() {\n       clearTimeout(timerID);\n          ws_verrou('{$auteur}', '{$page}', '{$groupe}');\n       TimerInit();\n   }\n   function TimerDes() {\n       if (timerID != 0) {\n       bootbox.alert('" . wspad_trans("note : Enregistrer votre travail") . "', function() {});\n       }\n       clearTimeout(timerID);\n       timerID = 0;\n       clearTimeout(timerTTL);\n       timerTTL = 0;\n   }\n   function ws_verrou(xuser, xpage, xgroupe) {\n      var xmlhttp;\n      if (window.XMLHttpRequest) {\n         xmlhttp=new XMLHttpRequest();\n      } else {\n         xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");\n      }\n      var url='modules/{$ModPath}/ws_verrou.php?verrou_user='******'&verrou_page='+xpage+'&verrou_groupe='+xgroupe+'&random='+Math.random();\n      xmlhttp.open('GET', url, true);\n      xmlhttp.send();\n      document.getElementById('verrous').src='modules/{$ModPath}/images/ajax_waiting.gif';\n      document.getElementById('mess').innerHTML='';\n   }\n\n   document.getElementsByTagName('body')[0].setAttribute('onload','TimerInit();');\n   //]]>\n   </script>";
    // Analyse des verrous
    $filename = "modules/{$ModPath}/locks/{$page}-vgp-{$groupe}.txt";
    $refresh = 15;
    clearstatcache();
    if (file_exists($filename)) {
        if (filemtime($filename) > time() - $refresh) {
            // propriétaire de ce verrou ?
            $cont = file($filename);
            if ($cont[0] == $auteur) {
                $edition = true;
                echo $tmp;
            } else {
                $edition = false;
            }
        } else {
            // pose le verrou
            $fp = fopen($filename, "w");
            fwrite($fp, $auteur);
            fclose($fp);
            sql_query("UPDATE " . $NPDS_Prefix . "wspad SET verrou='' WHERE verrou='{$auteur}'");
            sql_query("UPDATE " . $NPDS_Prefix . "wspad SET verrou='{$auteur}' WHERE page='{$page}' AND member='{$groupe}'");
            $edition = true;
            echo $tmp;
        }
    } else {
        // pose le verrou
        $fp = fopen($filename, "w");
        fwrite($fp, $auteur);
        fclose($fp);
        sql_query("UPDATE " . $NPDS_Prefix . "wspad SET verrou='' WHERE verrou='{$auteur}'");
        sql_query("UPDATE " . $NPDS_Prefix . "wspad SET verrou='{$auteur}' WHERE page='{$page}' AND member='{$groupe}'");
        $edition = true;
        echo $tmp;
    }
    // Analyse des verrous
    $row = sql_fetch_assoc(sql_query("SELECT content, modtime, editedby, ranq FROM " . $NPDS_Prefix . "wspad WHERE page='{$page}' AND member='{$groupe}' AND ranq='{$ranq}'"));
    if (!$edition) {
        $mess = wspad_trans("Mode lecture seulement");
    }
    echo '';
    if (!is_array($row)) {
        $row['ranq'] = 1;
        $row['editedby'] = $auteur;
        $row['modtime'] = time();
    } else {
        $row['ranq'] += 1;
    }
    global $surlignage;
    echo '
   <h4>' . wspad_trans("Document : ") . $page . '<span class="text-muted">&nbsp;[ ' . wspad_trans("révision") . ' : ' . $row['ranq'] . ' - ' . $row['editedby'] . ' / ' . date(translate("dateinternal"), $row['modtime'] + $gmt * 3600) . ' ] </span> <span style="float: right;"><img src="modules/' . $ModPath . '/images/ajax_waiting.gif" id="verrous" title="wspad locks" /></span></h4>
   <div id="mess" class="alert alert-success" role="alert">test debug' . $mess . '</div>
   <form action="modules.php?ModPath=' . $ModPath . '&amp;ModStart=' . $ModStart . '&amp;member=' . $groupe . '" method="post" name="wspadformcont">
   <div class="form-group">
      <textarea class="tin form-control" rows="30" name="content" ><div class="mceNonEditable">' . $row['content'] . '</div></textarea>
   </div>';
    echo aff_editeur('content', '');
    if ($edition) {
        echo '
      <div class="form-group">
         <input class="btn btn-primary" type="submit" name="sauve" value="' . wspad_trans("Sauvegarder") . '" />
         <a class="btn btn-secondary" href="modules.php?ModPath=' . $ModPath . '&amp;ModStart=' . $ModStart . '&amp;member=' . $groupe . '" >' . wspad_trans("Abandonner") . '</a>
         <input type="hidden" name="page" value="' . $page . '" />
         <input type="hidden" name="op" value="sauve" />
      </div>';
    }
    echo '</form>';
}
コード例 #2
0
ファイル: preview.php プロジェクト: Jireck-npds/npds_dune
    if ($cookie[9] == "") {
        $cookie[9] = $Default_Theme;
    }
    if (isset($theme)) {
        $cookie[9] = $theme;
    }
    $tmp_theme = $cookie[9];
    if (!($file = @opendir("themes/{$cookie['9']}"))) {
        $tmp_theme = $Default_Theme;
    }
} else {
    $tmp_theme = $Default_Theme;
}
$Titlesitename = "NPDS wspad";
include "meta/meta.php";
echo "<link rel=\"shortcut icon\" href=\"images/favicon.ico\" type=\"image/x-icon\" />\n";
global $site_font;
echo import_css($tmp_theme, $language, $site_font, '', '');
echo '
   </head>
   <body style="padding: 10px; background:#ffffff;">';
$wspad = rawurldecode(decrypt($pad));
$wspad = explode("#wspad#", $wspad);
$row = sql_fetch_assoc(sql_query("SELECT content, modtime, editedby, ranq  FROM " . $NPDS_Prefix . "wspad WHERE page='" . $wspad[0] . "' and member='" . $wspad[1] . "' and ranq='" . $wspad[2] . "'"));
echo "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"2\" border=\"0\"><tr><td class=\"header\">\n";
echo $wspad[0] . "&nbsp;&nbsp;[ " . wspad_trans("révision") . " : " . $row['ranq'] . " - " . $row['editedby'] . " / " . date(translate("dateinternal"), $row['modtime'] + $gmt * 3600) . " ]";
echo "</td></tr></table>\n";
echo aff_langue($row['content']);
echo '
   </body>
</html>';