Skip to content
Snippets Groups Projects
Commit 87575929 authored by Dries Buytaert's avatar Dries Buytaert
Browse files

- Introduced caching support.
parent eacfc042
No related branches found
No related tags found
2 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!789Issue #3210310: Adjust Database API to remove deprecated Drupal 9 code in Drupal 10
...@@ -126,6 +126,9 @@ function comment_post($edit) { ...@@ -126,6 +126,9 @@ function comment_post($edit) {
// add comment to database: // add comment to database:
db_query("INSERT INTO comments (lid, pid, author, subject, comment, hostname, timestamp, score) VALUES ('". check_input($edit[id]) ."', '". check_input($edit[pid]) ."', '$user->id', '". check_input($edit[subject]) ."', '". check_input($edit[comment]) ."', '". getenv("REMOTE_ADDR") ."', '". time() ."', '". ($user->userid ? 1 : 0) ."')"); db_query("INSERT INTO comments (lid, pid, author, subject, comment, hostname, timestamp, score) VALUES ('". check_input($edit[id]) ."', '". check_input($edit[pid]) ."', '$user->id', '". check_input($edit[subject]) ."', '". check_input($edit[comment]) ."', '". getenv("REMOTE_ADDR") ."', '". time() ."', '". ($user->userid ? 1 : 0) ."')");
// clear cache:
cache_clear();
} }
} }
} }
......
...@@ -87,6 +87,34 @@ function format_plural($count, $singular, $plural) { ...@@ -87,6 +87,34 @@ function format_plural($count, $singular, $plural) {
return ($count == 1) ? "$count ". t($singular) : "$count ". t($plural); return ($count == 1) ? "$count ". t($singular) : "$count ". t($plural);
} }
function cache_clear($interval = 0) {
db_query("DELETE FROM cache WHERE ". time() ." - timestamp > $interval");
}
function cache_get() {
global $user, $REQUEST_URI, $REQUEST_METHOD;
if ($user->id || $REQUEST_METHOD != "GET") {
return 0;
}
if ($cache = db_fetch_object(db_query("SELECT * FROM cache WHERE url = '". check_input($REQUEST_URI) ."'"))) {
cache_clear(variable_get("cache_clear", 30));
return $cache->data;
}
ob_start();
return 0;
}
function cache_set() {
global $REQUEST_URI;
db_query("INSERT INTO cache (url, data, timestamp) VALUES('". check_input($REQUEST_URI) ."', '". check_code(ob_get_contents()) ."', '". time() ."')");
}
function format_interval($timestamp) { function format_interval($timestamp) {
$units = array("year|years" => 31536000, "week|weeks" => 604800, "day|days" => 86400, "hour|hours" => 3600, "min|min" => 60, "sec|sec" => 1); $units = array("year|years" => 31536000, "week|weeks" => 604800, "day|days" => 86400, "hour|hours" => 3600, "min|min" => 60, "sec|sec" => 1);
foreach ($units as $key=>$value) { foreach ($units as $key=>$value) {
...@@ -245,12 +273,23 @@ function page_header() { ...@@ -245,12 +273,23 @@ function page_header() {
if (variable_get("dev_timer", 0)) { if (variable_get("dev_timer", 0)) {
timer_start(); timer_start();
} }
if (variable_get("cache", 0)) {
if ($data = cache_get()) {
print $data;
exit();
}
}
} }
function page_footer() { function page_footer() {
if (variable_get("dev_timer", 0)) { if (variable_get("dev_timer", 0)) {
timer_print(); timer_print();
} }
if (variable_get("cache", 0)) {
cache_set();
}
} }
$conf = conf_init(); $conf = conf_init();
......
...@@ -79,7 +79,7 @@ function box_save($edit) { ...@@ -79,7 +79,7 @@ function box_save($edit) {
db_query("UPDATE boxes SET title = '". check_input($edit[title]) ."', body = '". check_input($edit[body]) ."', info = '". check_input($edit[info]) ."', link = '". check_input($edit[link]) ."', type = '". check_input($edit[type]) ."' WHERE bid = '". check_input($edit[bid]) ."'"); db_query("UPDATE boxes SET title = '". check_input($edit[title]) ."', body = '". check_input($edit[body]) ."', info = '". check_input($edit[info]) ."', link = '". check_input($edit[link]) ."', type = '". check_input($edit[type]) ."' WHERE bid = '". check_input($edit[bid]) ."'");
} }
else if ($edit[bid]) { else if ($edit[bid]) {
db_query("DELETE FROM boxes WHERE bid = '". check_input($edit[bid]) ."'"); db_query("DELETE FROM boxes WHERE bid = '". check_input($edit[bid]) ."'");
} }
else { else {
db_query("INSERT INTO boxes (title, body, info, link, type) VALUES ('". check_input($edit[title]) ."', '". check_input($edit[body]) ."', '". check_input($edit[info]) ."', '". check_input($link) ."', '". check_input($edit[type]) ."')"); db_query("INSERT INTO boxes (title, body, info, link, type) VALUES ('". check_input($edit[title]) ."', '". check_input($edit[body]) ."', '". check_input($edit[info]) ."', '". check_input($link) ."', '". check_input($edit[type]) ."')");
...@@ -132,7 +132,7 @@ function box_admin() { ...@@ -132,7 +132,7 @@ function box_admin() {
// fall through: // fall through:
case "Submit": case "Submit":
print status(box_save($edit)); print status(box_save($edit));
// fall through: // fall through:
default: default:
print box_display(); print box_display();
} }
......
...@@ -13,12 +13,12 @@ function system_help() { ...@@ -13,12 +13,12 @@ function system_help() {
} }
function system_perm() { function system_perm() {
return array("administer site options"); return array("administer system settings");
} }
function system_link($type) { function system_link($type) {
if ($type == "admin" && user_access("administer site options")) { if ($type == "admin" && user_access("administer system settings")) {
$links[] = "<a href=\"admin.php?mod=system\">configuration options</a>"; $links[] = "<a href=\"admin.php?mod=system\">system settings</a>";
} }
return $links ? $links : array(); return $links ? $links : array();
...@@ -36,6 +36,13 @@ function system_view_options() { ...@@ -36,6 +36,13 @@ function system_view_options() {
$output .= form_textfield(t("Anonymous user"), "anonymous", variable_get("anonymous", "Anonymous"), 30, 55, t("The name used to indicate anonymous users.")); $output .= form_textfield(t("Anonymous user"), "anonymous", variable_get("anonymous", "Anonymous"), 30, 55, t("The name used to indicate anonymous users."));
$output .= "<HR>\n"; $output .= "<HR>\n";
// caching:
$output .= "<H3>Cache settings</H3>\n";
$period = array(10 => format_interval(10), 20 => format_interval(20), 30 => format_interval(30), 40 => format_interval(40), 50 => format_interval(50), 50 => format_interval(50), 60 => format_interval(60), 90 => format_interval(90), 120 => format_interval(120), 150 => format_interval(150), 180 => format_interval(180), 210 => format_interval(210), 240 => format_interval(240), 270 => format_interval(270), 300 => format_interval(300), 360 => format_interval(360), 420 => format_interval(420), 480 => format_interval(480), 540 => format_interval(540), 600 => format_interval(600), 1800 => format_interval(1800), 3600 => format_interval(3600), 7200 => format_interval(7200));
$output .= form_select(t("Cache support"), "cache", variable_get("cache", 0), array("Disabled", "Enabled"), t("Enable or disable the caching of pages."));
$output .= form_select(t("Discard cached pages older than"), "cache_clear", variable_get("cache_clear", 30), $period, t("The time cached pages should be kept. Older pages are automatically refreshed."));
$output .= "<HR>\n";
// submission settings: // submission settings:
$output .= "<H3>Submission settings</H3>\n"; $output .= "<H3>Submission settings</H3>\n";
$size = array(1000 => "1.000 characters", 5000 => "5.000 characters", 10000 => "10.000 characters", 15000 => "15.000 characters", 30.000 => "30.000 characters", 50000 => "50.000 characters", 100000 => "100.000 characters"); $size = array(1000 => "1.000 characters", 5000 => "5.000 characters", 10000 => "10.000 characters", 15000 => "15.000 characters", 30.000 => "30.000 characters", 50000 => "50.000 characters", 100000 => "100.000 characters");
...@@ -122,7 +129,7 @@ function system_modules() { ...@@ -122,7 +129,7 @@ function system_modules() {
function system_admin() { function system_admin() {
global $edit, $op, $type; global $edit, $op, $type;
if (user_access("administer site options")) { if (user_access("administer system settings")) {
print "<SMALL><A HREF=\"admin.php?mod=system&type=options\">site settings</A> | <A HREF=\"admin.php?mod=system&type=filter\">content filters</A> | <A HREF=\"admin.php?mod=system&op=modules\">modules</A> | <A HREF=\"admin.php?mod=system&op=help\">help</A></SMALL><HR>\n"; print "<SMALL><A HREF=\"admin.php?mod=system&type=options\">site settings</A> | <A HREF=\"admin.php?mod=system&type=filter\">content filters</A> | <A HREF=\"admin.php?mod=system&op=modules\">modules</A> | <A HREF=\"admin.php?mod=system&op=help\">help</A></SMALL><HR>\n";
......
...@@ -13,12 +13,12 @@ function system_help() { ...@@ -13,12 +13,12 @@ function system_help() {
} }
function system_perm() { function system_perm() {
return array("administer site options"); return array("administer system settings");
} }
function system_link($type) { function system_link($type) {
if ($type == "admin" && user_access("administer site options")) { if ($type == "admin" && user_access("administer system settings")) {
$links[] = "<a href=\"admin.php?mod=system\">configuration options</a>"; $links[] = "<a href=\"admin.php?mod=system\">system settings</a>";
} }
return $links ? $links : array(); return $links ? $links : array();
...@@ -36,6 +36,13 @@ function system_view_options() { ...@@ -36,6 +36,13 @@ function system_view_options() {
$output .= form_textfield(t("Anonymous user"), "anonymous", variable_get("anonymous", "Anonymous"), 30, 55, t("The name used to indicate anonymous users.")); $output .= form_textfield(t("Anonymous user"), "anonymous", variable_get("anonymous", "Anonymous"), 30, 55, t("The name used to indicate anonymous users."));
$output .= "<HR>\n"; $output .= "<HR>\n";
// caching:
$output .= "<H3>Cache settings</H3>\n";
$period = array(10 => format_interval(10), 20 => format_interval(20), 30 => format_interval(30), 40 => format_interval(40), 50 => format_interval(50), 50 => format_interval(50), 60 => format_interval(60), 90 => format_interval(90), 120 => format_interval(120), 150 => format_interval(150), 180 => format_interval(180), 210 => format_interval(210), 240 => format_interval(240), 270 => format_interval(270), 300 => format_interval(300), 360 => format_interval(360), 420 => format_interval(420), 480 => format_interval(480), 540 => format_interval(540), 600 => format_interval(600), 1800 => format_interval(1800), 3600 => format_interval(3600), 7200 => format_interval(7200));
$output .= form_select(t("Cache support"), "cache", variable_get("cache", 0), array("Disabled", "Enabled"), t("Enable or disable the caching of pages."));
$output .= form_select(t("Discard cached pages older than"), "cache_clear", variable_get("cache_clear", 30), $period, t("The time cached pages should be kept. Older pages are automatically refreshed."));
$output .= "<HR>\n";
// submission settings: // submission settings:
$output .= "<H3>Submission settings</H3>\n"; $output .= "<H3>Submission settings</H3>\n";
$size = array(1000 => "1.000 characters", 5000 => "5.000 characters", 10000 => "10.000 characters", 15000 => "15.000 characters", 30.000 => "30.000 characters", 50000 => "50.000 characters", 100000 => "100.000 characters"); $size = array(1000 => "1.000 characters", 5000 => "5.000 characters", 10000 => "10.000 characters", 15000 => "15.000 characters", 30.000 => "30.000 characters", 50000 => "50.000 characters", 100000 => "100.000 characters");
...@@ -122,7 +129,7 @@ function system_modules() { ...@@ -122,7 +129,7 @@ function system_modules() {
function system_admin() { function system_admin() {
global $edit, $op, $type; global $edit, $op, $type;
if (user_access("administer site options")) { if (user_access("administer system settings")) {
print "<SMALL><A HREF=\"admin.php?mod=system&type=options\">site settings</A> | <A HREF=\"admin.php?mod=system&type=filter\">content filters</A> | <A HREF=\"admin.php?mod=system&op=modules\">modules</A> | <A HREF=\"admin.php?mod=system&op=help\">help</A></SMALL><HR>\n"; print "<SMALL><A HREF=\"admin.php?mod=system&type=options\">site settings</A> | <A HREF=\"admin.php?mod=system&type=filter\">content filters</A> | <A HREF=\"admin.php?mod=system&op=modules\">modules</A> | <A HREF=\"admin.php?mod=system&op=help\">help</A></SMALL><HR>\n";
......
...@@ -292,3 +292,10 @@ CREATE TABLE referer ( ...@@ -292,3 +292,10 @@ CREATE TABLE referer (
ALTER TABLE boxes CHANGE subject title varchar(64) DEFAULT '' NOT NULL; ALTER TABLE boxes CHANGE subject title varchar(64) DEFAULT '' NOT NULL;
ALTER TABLE boxes CHANGE content body TEXT; ALTER TABLE boxes CHANGE content body TEXT;
ALTER TABLE boxes CHANGE id bid tinyint(4) DEFAULT '0' NOT NULL auto_increment; ALTER TABLE boxes CHANGE id bid tinyint(4) DEFAULT '0' NOT NULL auto_increment;
CREATE TABLE cache (
url varchar(255) DEFAULT '' NOT NULL,
data text NOT NULL,
timestamp int(11) NOT NULL,
PRIMARY KEY (url)
);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment