Database now stores userid, and page info is now more Moodley

(plus it doesn't show IP information to everyone!)

All old authors are not currently displayed  (I chose not to)
This is easy to fix if people want it, since the old author
string is still there in the database.
This commit is contained in:
moodler
2004-08-22 16:41:54 +00:00
parent 9d0daeea4d
commit 71fe1da3f4
6 changed files with 59 additions and 13 deletions
+4
View File
@@ -51,6 +51,10 @@ function wiki_upgrade($oldversion) {
.' ADD `disablecamelcase` TINYINT DEFAULT \'0\' NOT NULL AFTER `ewikiacceptbinary`');
}
if ($oldversion < 2004082200) {
table_column('wiki_pages', '', 'userid', "integer", "10", "unsigned", "0", "not null", "author");
}
return true;
}
+1
View File
@@ -48,6 +48,7 @@ CREATE TABLE `prefix_wiki_pages` (
`flags` INTEGER UNSIGNED DEFAULT 0,
`content` MEDIUMTEXT,
`author` VARCHAR(100) DEFAULT 'ewiki',
`userid` INTEGER UNSIGNED NOT NULL DEFAULT 0,
`created` INTEGER UNSIGNED DEFAULT 0,
`lastmodified` INTEGER UNSIGNED DEFAULT 0,
`refs` MEDIUMTEXT,
+3
View File
@@ -18,6 +18,9 @@ function wiki_upgrade($oldversion) {
modify_database("", "ALTER TABLE ONLY prefix_wiki_pages
ADD CONSTRAINT id PRIMARY KEY (pagename, \"version\", wiki);");
}
if ($oldversion < 2004082200) {
table_column('wiki_pages', '', 'userid', "integer", "10", "unsigned", "0", "not null", "author");
}
return true;
}
+1
View File
@@ -46,6 +46,7 @@ CREATE TABLE prefix_wiki_pages (
flags INTEGER DEFAULT 0,
content TEXT,
author VARCHAR(100) DEFAULT 'ewiki',
userid INTEGER NOT NULL DEFAULT 0,
created INTEGER DEFAULT 0,
lastmodified INTEGER DEFAULT 0,
refs TEXT,
+49 -12
View File
@@ -1123,6 +1123,7 @@ function ewiki_page_search($id, &$data, $action) {
function ewiki_page_info($id, &$data, $action) {
global $ewiki_plugins, $ewiki_config, $ewiki_links;
global $CFG, $course; // MOODLE HACK
$o = ewiki_make_title($id, ewiki_t("INFOABOUTPAGE")." '{$id}'", 2, $action,"", "_MAY_SPLIT=1");
@@ -1131,7 +1132,7 @@ function ewiki_page_info($id, &$data, $action) {
"APPENDONLY", "SYSTEM",
);
$show = array(
"version", "author", "created",
"version", "author", "userid", "created",
"lastmodified", "refs",
"flags", "meta", "content"
);
@@ -1157,19 +1158,21 @@ function ewiki_page_info($id, &$data, $action) {
continue;
}
$o .= '<table class="version-info" border="1" cellpadding="2" cellspacing="1">' . "\n";
$o .= '<table align="center" class="version-info" cellpadding="2" cellspacing="1">' . "\n";
#-- additional info-actions
$o .= '<tr><td></td><td class="action-links">';
$commands = '';
foreach ($ewiki_config["action_links"]["info"] as $action=>$title)
if (@$ewiki_plugins["action"][$action] || @$ewiki_plugins["action_always"][$action]) {
##### BEGIN MOODLE ADDITION #####
$o .= '<a href="' .
if ($commands) {
$commands .= '&nbsp;&nbsp;';
}
$commands .= '<a href="' .
ewiki_script($action, $id, array("version"=>$current["version"])) .
'">' . get_string($title,"wiki") . '</a>&nbsp;';
'">' . get_string($title,"wiki") . '</a>';
##### END MOODLE ADDITION #####
}
$o .= "</td></tr>\n";
#-- print page database entry
foreach($show as $i) {
@@ -1178,6 +1181,7 @@ function ewiki_page_info($id, &$data, $action) {
#-- show database {fields} differently
if ($i == "meta") {
continue; // MOODLE DOESN'T USE IT
$str = "";
if ($first && $value) { foreach ($value as $n=>$d) {
$str .= htmlentities("$n: $d") . "<br>\n";
@@ -1186,11 +1190,12 @@ function ewiki_page_info($id, &$data, $action) {
}
elseif ($value >= UNIX_MILLENNIUM) { #-- {lastmodified}, {created}
#### BEGIN MOODLE CHANGE
$value=userdate($value, $strftimedatetime);
$value=userdate($value);
#$value = strftime("%c", $value);
#### END MOODLE CHANGE
}
elseif ($i == "content") {
continue; // MOODLE DOESN'T CARE
$value = strlen(trim($value)) . " bytes";
$i = "content size";
}
@@ -1201,17 +1206,24 @@ function ewiki_page_info($id, &$data, $action) {
foreach ($a as $n=>$link) {
$a[$n] = ewiki_link_regex_callback(array("$link"), "force_noimg");
}
$value = implode(", ", $a);
$value = trim(implode(", ", $a));
if (!$value) {
continue;
}
}
elseif (strpos($value, "\n") !== false) { #-- also for {refs}
$value = str_replace("\n", ", ", trim($value));
if (!$value) {
continue;
}
}
elseif ($i == "version") {
$value = '<a href="' .
ewiki_script("", $id, array("version"=>$value)) . '">' .
$value . '</a>';
$value . '</a> '."($commands)";
}
elseif ($i == "flags") {
continue; // MOODLE DOESN'T USE IT
$fstr = "";
for ($n = 0; $n < 32; $n++) {
if ($value & (1 << $n)) {
@@ -1222,18 +1234,32 @@ function ewiki_page_info($id, &$data, $action) {
$value = $fstr;
}
elseif ($i == "author") {
continue;
$ewiki_links=1;
$value = preg_replace_callback("/((\w+:)?([".EWIKI_CHARS_U."]+[".EWIKI_CHARS_L."]+){2,}[\w\d]*)/", "ewiki_link_regex_callback", $value);
}
elseif ($i == "userid") {
$i = 'author';
if ($user = get_record('user', 'id', $value)) {
if (!isset($course->id)) {
$course->id = 1;
}
$picture = print_user_picture($user->id, $course->id, $user->picture, false, true, true);
$value = $picture." <a href=\"$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id\">".fullname($user)."</a>";
} else {
continue;
//$value = @$current['author'];
}
}
##### BEGIN MOODLE ADDITION #####
$o .= '<tr class="page-'.$i.'"><td valign="top"><b>' .ewiki_t($i). '</b></td>' .
$o .= '<tr class="page-'.$i.'"><td valign="top" align="right"><b>' .ewiki_t($i). ':</b></td>' .
'<td>' . $value . "</td></tr>\n";
##### END MOODLE ADDITION #####
}
$o .= "</table><br>\n";
$o .= "</table><br /><br />\n";
}
#-- page result split
@@ -1450,13 +1476,16 @@ function ewiki_page_edit($id, $data, $action) {
function ewiki_data_update(&$data, $author="") {
global $ewiki_links;
global $USER, $ewiki_links;
#-- add backlinks entry
ewiki_scan_wikiwords($data["content"], $ewiki_links, "_STRIP_EMAIL=1");
$data["refs"] = "\n\n".implode("\n", array_keys($ewiki_links))."\n\n";
$data["lastmodified"] = time();
$data["author"] = ewiki_author($author);
if (isset($USER->id)) {
$data["userid"] = $USER->id;
}
}
@@ -2452,6 +2481,7 @@ function ewiki_intermap_walking($id, &$data, $action) {
*/
function ewiki_binary($break=0) {
global $ewiki_plugins;
global $USER; // MOODLE
#-- reject calls
if (!strlen($id = @$_REQUEST[EWIKI_UP_BINARY]) || !EWIKI_IDF_INTERNAL) {
@@ -2582,6 +2612,7 @@ EOF;
"lastmodified" => time(),
"created" => time(),
"author" => ewiki_author("ewiki_binary_cache"),
"userid" => $USER->id,
"content" => "",
"meta" => array("Status"=>"404 Absent"),
);
@@ -2617,6 +2648,7 @@ function ewiki_binary_save_image($filename, $id="", $return=0,
$add_meta=array(), $accept_all=EWIKI_ACCEPT_BINARY, $care_for_images=1)
{
global $ewiki_plugins;
global $USER; // MOODLE
#-- break on empty files
if (!filesize($filename)) {
@@ -2719,6 +2751,7 @@ $add_meta=array(), $accept_all=EWIKI_ACCEPT_BINARY, $care_for_images=1)
"id" => $id,
"version" => "1",
"author" => ewiki_author(),
"userid" => $USER->id,
"flags" => EWIKI_DB_F_BINARY | EWIKI_DB_F_READONLY,
"created" => time(),
"lastmodified" => time(),
@@ -3096,6 +3129,8 @@ function ewiki_auth_user($username, $password) {
*/
function ewiki_eventually_initialize(&$id, &$data, &$action) {
global $USER;
#-- initialize database only if frontpage missing
if (($id==EWIKI_PAGE_INDEX) && ($action=="edit") && empty($data["version"])) {
@@ -3117,6 +3152,7 @@ function ewiki_eventually_initialize(&$id, &$data, &$action) {
"flags" => "1",
"content" => $content,
"author" => ewiki_author("ewiki_initialize"),
"userid" => $USER->id,
"refs" => $refs,
"lastmodified" => filemtime("$path/$filename"),
"created" => filectime("$path/$filename") // (not exact)
@@ -3480,6 +3516,7 @@ function ewiki_database_mysql($action, &$args, $sw1, $sw2) {
flags INTEGER UNSIGNED DEFAULT 0,
content MEDIUMTEXT,
author VARCHAR(100) DEFAULT 'ewiki',
userid INTEGER UNSIGNED DEFAULT 0,
created INTEGER UNSIGNED DEFAULT ".time().",
lastmodified INTEGER UNSIGNED DEFAULT 0,
refs MEDIUMTEXT,
+1 -1
View File
@@ -5,7 +5,7 @@
/// This fragment is called by moodle_needs_upgrading() and /admin/index.php
/////////////////////////////////////////////////////////////////////////////////
$module->version = 2004073001; // The current module version (Date: YYYYMMDDXX)
$module->version = 2004082200; // The current module version (Date: YYYYMMDDXX)
$module->cron = 0; // Period for cron to check this module (secs)
?>