Beispiel #1
0
function diffsparsejson($old, $new)
{
    $diff = diff(diffstringsplit($old), diffstringsplit($new));
    $adj = 0;
    $out = array();
    foreach ($diff as $k => $v) {
        if (is_array($v)) {
            if (empty($v['d']) && empty($v['i'])) {
                $adj += 1;
                continue;
            } else {
                if (empty($v['d'])) {
                    //insert
                    $out[] = array(0, $k - $adj, $v['i']);
                    $adj += 1;
                } else {
                    if (empty($v['i'])) {
                        //delete
                        $out[] = array(1, $k - $adj, count($v['d']));
                        $adj -= count($v['d']) - 1;
                    } else {
                        //replace
                        $out[] = array(2, $k - $adj, count($v['d']), $v['i']);
                        $adj -= count($v['d']) - 1;
                    }
                }
            }
        }
    }
    if (count($out) == 0) {
        return '';
    } else {
        if (function_exists('json_encode')) {
            return json_encode($out);
        } else {
            require_once "JSON.php";
            $jsonser = new Services_JSON();
            return $jsonser->encode($out);
        }
    }
}
Beispiel #2
0
         exit;
     } else {
         $curBreadcrumb .= " &gt; <a href=\"viewwiki.php?cid={$cid}&id={$id}&grp={$groupid}{$framed}\">View Wiki</a>";
         $curBreadcrumb .= " &gt; Clear WikiPage History\n";
         $pagetitle = "Confirm History Delete";
     }
 } else {
     if (isset($_GET['revert']) && isset($teacherid)) {
         if ($_GET['revert'] == 'true') {
             $revision = intval($_GET['torev']);
             $query = "SELECT revision FROM imas_wiki_revisions WHERE wikiid='{$id}' AND stugroupid='{$groupid}' ";
             $query .= "AND id>={$revision} ORDER BY id DESC";
             $result = mysql_query($query) or die("Query failed : " . mysql_error());
             if (mysql_num_rows($result) > 1 && $revision > 0) {
                 $row = mysql_fetch_row($result);
                 $base = diffstringsplit($row[0]);
                 while ($row = mysql_fetch_row($result)) {
                     //apply diffs
                     $base = diffapplydiff($base, $row[0]);
                 }
                 $newbase = addslashes(implode(' ', $base));
                 $query = "UPDATE imas_wiki_revisions SET revision='{$newbase}' WHERE id={$revision}";
                 mysql_query($query) or die("Query failed : " . mysql_error());
                 $query = "DELETE FROM imas_wiki_revisions WHERE wikiid='{$id}' AND stugroupid='{$groupid}' AND id>{$revision}";
                 mysql_query($query) or die("Query failed : " . mysql_error());
             }
             header('Location: ' . $urlmode . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/viewwiki.php?cid={$cid}&id={$id}{$framed}");
             exit;
         } else {
             $curBreadcrumb .= " &gt; <a href=\"viewwiki.php?cid={$cid}&id={$id}&grp={$groupid}{$framed}\">View Wiki</a>";
             $curBreadcrumb .= " &gt; Revert Wiki\n";
Beispiel #3
0
                //$users = '{';
                $users = array();
                foreach ($keys as $uid) {
                    //if ($i>0) { $users .= ',';}
                    //$users .= $uid.':"'.str_replace(array('\\','"',), array('\\\\','\"'), $revisionusers[$uid]).'"';
                    $users[$uid] = $revisionusers[$uid];
                    $i++;
                }
                //$users .= '}';
            } else {
                $users = array();
                //'{}';
                $revisionhistory = array();
                //'[]';
            }
            $text = diffstringsplit($text);
            foreach ($text as $k => $v) {
                $text[$k] = filter($v);
                //str_replace(array("\n","\r",'"'),array('','','\\"'),filter($v));
            }
            //$original = '["'.implode('","',$text).'"]';
        }
    }
}
if ($overwriteBody == 1) {
    echo $body;
} else {
    // general JSON
    $out = array('o' => $text, 'h' => $revisionhistory, 'u' => $users);
    if (function_exists('json_encode')) {
        echo json_encode($out);