Esempio n. 1
0
 public function saveTextRevision($moduleId, $moduleContentTypeId, $moduleContentId, $oldText, $newText, $textfieldIndex = 0, $revision = 0)
 {
     global $dbi, $login, $settings;
     if (!$settings->enableRevisioning) {
         return;
     }
     // Get latest revision number and increment
     $maxRevision = 0;
     if (empty($revision)) {
         $result = $dbi->query("SELECT MAX(revision) FROM " . revisionTableName . " WHERE moduleId=" . $dbi->quote($moduleId) . " AND moduleContentTypeId=" . $dbi->quote($moduleContentTypeId) . " AND moduleContentId=" . $dbi->quote($moduleContentId));
         if ($result->rows()) {
             list($maxRevision) = $result->fetchrow_array();
             $maxRevision++;
         }
     } else {
         $maxRevision = $revision;
     }
     // Parse text strings
     $newText = parseString($newText);
     $oldText = parseString($oldText);
     // Calculate diff
     $diff = new Diff();
     $result = $diff->stringDiff($newText, $oldText, " ");
     $changes = $diff->sequentialChanges($result);
     if (sizeof($changes) > 0) {
         $serializedChanges = serialize($changes);
         // Insert diff
         $dbi->query("INSERT INTO " . revisionTableName . "(moduleId,moduleContentTypeId,moduleContentId,textfieldIndex,diff,revision,userId,timestamp) VALUES(" . $dbi->quote($moduleId) . "," . $dbi->quote($moduleContentTypeId) . "," . $dbi->quote($moduleContentId) . "," . $dbi->quote($textfieldIndex) . "," . $dbi->quote($serializedChanges) . "," . $dbi->quote($maxRevision) . "," . $dbi->quote($login->id) . ",NOW())");
     }
     return $maxRevision;
 }
    $first_retweet[$text] = array_search(array_search($short_text, $retweets_short), $tweets);
}
$first_retweet_ids = array_values($first_retweet);
sort($first_retweet_ids);
$first_tweet = $tweets[$first_retweet_ids[0]];
$first_tweet_short = $retweets_short[$first_tweet];
// calculate levenshtein and diff for first occurences of modified text of retweet
$levenshtein = $diffs = array();
foreach ($first_retweet as $text => $id) {
    if (empty($levenshtein)) {
        $levenshtein[$first_tweet_short] = 0;
        $diffs[$retweets_short[$text]] = $retweets_short[$text];
    } else {
        $levenshtein[$retweets_short[$text]] = levenshtein($first_tweet_short, $retweets_short[$text]);
        $diffClass = new Diff();
        $diffs[$retweets_short[$text]] = $diffClass->renderDiff($diffClass->stringDiff($first_tweet_short, $retweets_short[$text]));
    }
}
echo "<Br>Zoom: <span id='zoomin' class='zoom'>in</span> / <span id='zoomout' class='zoom'>out</span><Br>";
echo '<fieldset class="if_parameters">';
echo '<legend>Retweet URLs</legend>';
print "<div id='content'>";
//$palette = array("108cbf", "f62221", "008027", "97c932", "fad40d", "f8962b", "c99997", "7e7e7e", "cbcbcb", "44bdec", "ff6364", "42c168", "bced5e"); // issue crawler
//$palette = array_reverse($palette);
$palette = array("#90C4A7", "#EDA391", "#DEE287", "#DAC0D8", "#E0B97B", "#D6D0AA", "#A9DFDE", "#A2D093", "#D4D5CC", "#BABD7B", "#D6B4A2", "#E8ABBC", "#B0C1D0", "#D9EFAC", "#B6EECA");
asort($first_retweet);
$distinct_retweets = count($indentation);
print "<table cellspacing='0' cellpadding='0'>";
// header row
print "<tr><td>date</td><td>user</td><td>source</td><td class='seperator'>tweet</td>";
foreach ($first_retweet_ids as $id) {