- fixed pass by reference errors. PHP only allows declaration of &$vars, not
passing them that way. For more info: http://no.php.net/manual/en/language.references.pass.php4.0.x
parent
255e2d0eb7
commit
7d0c316f82
|
@ -1,432 +1,445 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
function conf_init() {
|
||||
global $HTTP_HOST, $REQUEST_URI;
|
||||
|
||||
/*
|
||||
** Try finding a matching configuration file by stripping the website's
|
||||
** URI from left to right. If no configuration file is found, return a
|
||||
** default value 'conf'.
|
||||
*/
|
||||
|
||||
$file = strtolower(strtr($HTTP_HOST ."". substr($REQUEST_URI, 0, strrpos($REQUEST_URI, "/")), "/:", ".."));
|
||||
|
||||
while (strlen($file) > 4) {
|
||||
if (file_exists("includes/$file.php")) {
|
||||
return $file;
|
||||
}
|
||||
else {
|
||||
$file = substr($file, strpos($file, ".") + 1);
|
||||
}
|
||||
}
|
||||
|
||||
return "conf";
|
||||
}
|
||||
|
||||
function error_handler($errno, $message, $filename, $line, $variables) {
|
||||
$types = array(1 => "error", 2 => "warning", 4 => "parse error", 8 => "notice", 16 => "core error", 32 => "core warning", 64 => "compile error", 128 => "compile warning", 256 => "user error", 512 => "user warning", 1024 => "user notice");
|
||||
$entry = $types[$errno] .": $message in $filename on line $line.";
|
||||
if (($errno == 1 || $errno == 2 || $errno == 4) && error_reporting()) {
|
||||
watchdog("error", $types[$errno] .": $message in $filename on line $line.");
|
||||
print $entry;
|
||||
}
|
||||
}
|
||||
|
||||
function watchdog($type, $message) {
|
||||
global $user;
|
||||
db_query("INSERT INTO watchdog (uid, type, message, location, hostname, timestamp) VALUES ('$user->uid', '". check_input($type) ."', '". check_input($message) ."', '". check_input(getenv("REQUEST_URI")) ."', '". check_input(getenv("REMOTE_ADDR")) ."', '". time() ."')");
|
||||
}
|
||||
|
||||
function throttle($type, $rate) {
|
||||
if (!user_access("access administration pages")) {
|
||||
if ($throttle = db_fetch_object(db_query("SELECT * FROM watchdog WHERE type = '$type' AND hostname = '". getenv("REMOTE_ADDR") ."' AND ". time() ." - timestamp < $rate"))) {
|
||||
watchdog("warning", "throttle: '". getenv("REMOTE_ADDR") ."' exceeded submission rate - $throttle->type");
|
||||
die(message_throttle());
|
||||
}
|
||||
else {
|
||||
watchdog($type, "throttle");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function path_uri() {
|
||||
global $HTTP_HOST, $REQUEST_URI;
|
||||
return "http://". $HTTP_HOST . substr($REQUEST_URI, 0, strrpos($REQUEST_URI, "/")) ."/";
|
||||
}
|
||||
|
||||
function path_img() {
|
||||
// use "http://your-image-server.com/ if you want to host images on a seperate server.
|
||||
return "./images/";
|
||||
}
|
||||
|
||||
function message_access() {
|
||||
return t("You are not authorized to access to this page.");
|
||||
}
|
||||
|
||||
function message_na() {
|
||||
return t("n/a");
|
||||
}
|
||||
|
||||
function message_throttle() {
|
||||
return t("You exceeded the maximum submission rate. Please wait a few minutes and try again.");
|
||||
}
|
||||
|
||||
function drupal_goto($url) {
|
||||
|
||||
/*
|
||||
** It is advised to use "drupal_goto()" instead of PHP's "header()" as
|
||||
** "drupal_goto()" will append the user's session ID to the URI when PHP
|
||||
** is compiled with "--enable-trans-sid".
|
||||
*/
|
||||
|
||||
if (SID == "" || strstr($url, SID)) {
|
||||
header("Location: $url");
|
||||
}
|
||||
else if (strstr($url, "?") && !strstr($url, SID)) {
|
||||
header("Location: $url&". SID);
|
||||
}
|
||||
else {
|
||||
header("Location: $url?". SID);
|
||||
}
|
||||
|
||||
/*
|
||||
** The "Location" header sends a REDIRECT status code to the http
|
||||
** deamon. In some cases this can go wrong, so we make sure none
|
||||
** of the code /below/ gets executed when we redirect.
|
||||
*/
|
||||
|
||||
exit();
|
||||
}
|
||||
|
||||
function check_form($text) {
|
||||
return htmlspecialchars(stripslashes($text));
|
||||
}
|
||||
|
||||
function check_export($text) {
|
||||
return htmlspecialchars(stripslashes($text));
|
||||
}
|
||||
|
||||
function check_code($text) {
|
||||
return $text;
|
||||
}
|
||||
|
||||
function check_preview($text) {
|
||||
return check_output(check_input($text));
|
||||
}
|
||||
|
||||
function check_query($text) {
|
||||
return addslashes(stripslashes($text));
|
||||
}
|
||||
|
||||
function filter($text) {
|
||||
foreach (module_list() as $name) {
|
||||
if (module_hook($name, "filter")) $text = module_invoke($name, "filter", $text);
|
||||
}
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
function check_input($text) {
|
||||
return check_query($text);
|
||||
}
|
||||
|
||||
function check_output($text, $nl2br = 0) {
|
||||
return ($text) ? ($nl2br ? nl2br(stripslashes($text)) : stripslashes($text)) : message_na();
|
||||
}
|
||||
|
||||
function format_info($body, $block) {
|
||||
return "<table><tr><td><table align=\"right\" border=\"1\" width=\"180\"><tr><td>$block</td></tr></table>$body</td></tr></table>\n";
|
||||
}
|
||||
|
||||
function format_rss_channel($title, $link, $description, $items, $language = "en") {
|
||||
$output .= "<channel>\n";
|
||||
$output .= " <title>". htmlentities(strip_tags($title)) ."</title>\n";
|
||||
$output .= " <link>". htmlentities(strip_tags($link)) ."</link>\n";
|
||||
$output .= " <description>". htmlentities($description) ."</description>\n";
|
||||
$output .= " <language>". htmlentities(strip_tags($language)) ."</language>\n";
|
||||
$output .= $items;
|
||||
$output .= "</channel>\n";
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function format_rss_item($title, $link, $description) {
|
||||
$output .= "<item>\n";
|
||||
$output .= " <title>". htmlentities(strip_tags($title)) ."</title>\n";
|
||||
$output .= " <link>". htmlentities(strip_tags($link)) ."</link>\n";
|
||||
$output .= " <description>". htmlentities($description) ."</description>\n";
|
||||
$output .= "</item>\n";
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function format_plural($count, $singular, $plural) {
|
||||
return ($count == 1) ? "$count ". t($singular) : "$count ". t($plural);
|
||||
}
|
||||
|
||||
function format_size($size) {
|
||||
$suffix = "bytes";
|
||||
if ($size > 1024) {
|
||||
$size = round($size / 1024, 2);
|
||||
$suffix = "KB";
|
||||
}
|
||||
if ($size > 1024) {
|
||||
$size = round($size / 1024, 2);
|
||||
$suffix = "MB";
|
||||
}
|
||||
return "$size $suffix";
|
||||
}
|
||||
|
||||
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->uid && $REQUEST_METHOD == "GET") {
|
||||
if ($cache = db_fetch_object(db_query("SELECT * FROM cache WHERE url = '". check_input($REQUEST_URI) ."'"))) {
|
||||
cache_clear(variable_get("cache_clear", 30));
|
||||
}
|
||||
else {
|
||||
ob_start();
|
||||
}
|
||||
}
|
||||
|
||||
return $cache->data ? $cache->data : 0;
|
||||
}
|
||||
|
||||
function cache_set() {
|
||||
global $user, $REQUEST_URI, $REQUEST_METHOD;
|
||||
|
||||
if (!$user->uid && $REQUEST_METHOD == "GET") {
|
||||
if ($data = ob_get_contents()) {
|
||||
db_query("INSERT INTO cache (url, data, timestamp) VALUES('". addslashes($REQUEST_URI) ."', '". addslashes($data) ."', '". time() ."')");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function format_interval($timestamp) {
|
||||
$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) {
|
||||
$key = explode("|", $key);
|
||||
if ($timestamp >= $value) {
|
||||
$output .= ($output ? " " : "") . format_plural(floor($timestamp / $value), $key[0], $key[1]);
|
||||
$timestamp %= $value;
|
||||
}
|
||||
}
|
||||
return ($output) ? $output : "0 sec";
|
||||
}
|
||||
|
||||
function format_date($timestamp, $type = "medium", $format = "") {
|
||||
global $user;
|
||||
|
||||
// $timestamp += ($user->timezone) ? $user->timezone - date("Z") : 0;
|
||||
|
||||
switch ($type) {
|
||||
case "small":
|
||||
$date = date("m/d/y - H:i", $timestamp);
|
||||
break;
|
||||
case "medium":
|
||||
$date = t(date("l", $timestamp)) .", ". date("m/d/Y - H:i", $timestamp);
|
||||
break;
|
||||
case "large":
|
||||
$date = t(date("l", $timestamp)) .", ". t(date("F", $timestamp)) ." ". date("d, Y - H:i", $timestamp);
|
||||
break;
|
||||
case "custom":
|
||||
for ($i = strlen($format); $i >= 0; $c = $format[--$i]) {
|
||||
if (strstr("DFlMSw", $c)) {
|
||||
$date = t(date($c, $timestamp)).$date;
|
||||
}
|
||||
else if (strstr("AaBdgGhHiIjLmnrstTUYyZz", $c)) {
|
||||
$date = date($c, $timestamp).$date;
|
||||
}
|
||||
else {
|
||||
$date = $c.$date;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$date = t(date("l", $timestamp)) .", ". date("m/d/Y - H:i", $timestamp);
|
||||
}
|
||||
return $date;
|
||||
}
|
||||
|
||||
function format_name($object) {
|
||||
|
||||
if ($object->uid && $object->name) {
|
||||
return "<a href=\"module.php?mod=user&op=view&id=$object->uid\">$object->name</a>";
|
||||
}
|
||||
else {
|
||||
return variable_get(anonymous, "Anonymous");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function format_email($address) {
|
||||
return ($address) ? "<a href=\"mailto:$address\">$address</A>" : message_na();
|
||||
}
|
||||
|
||||
function format_url($address, $description = 0) {
|
||||
$description = ($description) ? $description : $address;
|
||||
return ($address) ? "<a href=\"$address\">". check_output($description) ."</a>" : message_na();
|
||||
}
|
||||
|
||||
function format_tag($link, $text) {
|
||||
return "'<a href=\"node.php?title='. urlencode('$link') .'\">'. ('$text' ? '$text' : '$link') .'</a>'";
|
||||
}
|
||||
|
||||
function form($form, $method = "post", $action = 0, $options = 0) {
|
||||
global $REQUEST_URI;
|
||||
|
||||
return "<form action=\"". ($action ? $action : $REQUEST_URI) ."\" method=\"$method\"". ($options ? " $options" : "") .">\n$form</form>\n";
|
||||
}
|
||||
|
||||
function form_item($title, $value, $description = 0) {
|
||||
return ($title ? "<b>$title:</b><br />" : "") . $value . ($description ? "<br /><small><i>$description</i></small>" : "") ."<p />\n";
|
||||
}
|
||||
|
||||
function form_checkbox($title, $name, $value, $description = 0) {
|
||||
return form_item(0, "<input type=\"checkbox\" name=\"edit[$name]\" ". ($value ? " checked=\"checked\"" : "") ." /> $title", $description);
|
||||
}
|
||||
|
||||
function form_textfield($title, $name, $value, $size, $maxlength, $description = 0) {
|
||||
return form_item($title, "<input maxlength=\"$maxlength\" name=\"edit[$name]\" size=\"$size\" value=\"". check_form($value) ."\" />", $description);
|
||||
}
|
||||
|
||||
function form_password($title, $name, $value, $size, $maxlength, $description = 0) {
|
||||
return form_item($title, "<input type=\"password\" maxlength=\"$maxlength\" name=\"edit[$name]\" size=\"$size\" value=\"". check_form($value) ."\" />", $description);
|
||||
}
|
||||
|
||||
function form_textarea($title, $name, $value, $cols, $rows, $description = 0) {
|
||||
return form_item($title, "<textarea wrap=\"virtual\" cols=\"$cols\" rows=\"$rows\" name=\"edit[$name]\">". check_form($value) ."</textarea>", $description);
|
||||
}
|
||||
|
||||
function form_select($title, $name, $value, $options, $description = 0, $extra = 0) {
|
||||
if (count($options) > 0) {
|
||||
foreach ($options as $key=>$choice) $select .= "<option value=\"$key\"". (is_array($value) ? (in_array($key, $value) ? " selected" : "") : ($key == $value ? " selected" : "")) .">". check_form($choice) ."</option>";
|
||||
return form_item($title, "<select name=\"edit[$name]\"". ($extra ? " $extra" : "") .">$select</select>", $description);
|
||||
}
|
||||
}
|
||||
|
||||
function form_file($title, $name, $size, $description = 0) {
|
||||
return form_item($title, "<input type=\"file\" name=\"edit[$name]\" size=\"$size\" />\n", $description);
|
||||
}
|
||||
|
||||
function form_hidden($name, $value) {
|
||||
return "<input type=\"hidden\" name=\"edit[$name]\" value=\"". check_form($value) ."\" />\n";
|
||||
}
|
||||
|
||||
function form_submit($value) {
|
||||
return "<input type=\"submit\" name=\"op\" value=\"". check_form($value) ."\" />\n";
|
||||
}
|
||||
|
||||
function field_get($string, $name) {
|
||||
ereg(",$name=([^,]+)", ",$string", $regs);
|
||||
return $regs[1];
|
||||
}
|
||||
|
||||
function field_set($string, $name, $value) {
|
||||
$rval = ereg_replace(",$name=[^,]+", "", ",$string");
|
||||
if ($value) $rval .= ($rval == "," ? "" : ",") ."$name=$value";
|
||||
return substr($rval, 1);
|
||||
}
|
||||
|
||||
function field_merge($a, $b) {
|
||||
foreach (explode(",", $b) as $data) {
|
||||
$entry = explode("=", $data);
|
||||
$a = field_set($a, $entry[0], $entry[1]);
|
||||
}
|
||||
return $a;
|
||||
}
|
||||
|
||||
function link_page() {
|
||||
|
||||
$links[] = "<a href=\"index.php\">". t("home") ."</a>";
|
||||
|
||||
foreach (module_list() as $name) {
|
||||
if (module_hook($name, "link")) {
|
||||
$links = array_merge($links, module_invoke($name, "link", "page"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $links;
|
||||
}
|
||||
|
||||
function link_node($node, $main = 0) {
|
||||
foreach (module_list() as $name) {
|
||||
if (module_hook($name, "link")) {
|
||||
$links = array_merge($links, module_invoke($name, "link", "node", $node, $main));
|
||||
}
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function timer_start() {
|
||||
global $timer;
|
||||
$timer = explode(" ", microtime());
|
||||
}
|
||||
|
||||
function timer_print() {
|
||||
global $timer;
|
||||
$stop = explode(" ", microtime());
|
||||
$diff = $stop[0] - $timer[0];
|
||||
print "<PRE>execution time: $diff ms</PRE>";
|
||||
}
|
||||
|
||||
function page_header() {
|
||||
if (variable_get("dev_timer", 0)) {
|
||||
timer_start();
|
||||
}
|
||||
|
||||
if (variable_get("cache", 0)) {
|
||||
if ($data = cache_get()) {
|
||||
print $data;
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function page_footer() {
|
||||
if (variable_get("dev_timer", 0)) {
|
||||
timer_print();
|
||||
}
|
||||
|
||||
if (variable_get("cache", 0)) {
|
||||
cache_set();
|
||||
}
|
||||
}
|
||||
|
||||
$config = conf_init();
|
||||
|
||||
unset($conf);
|
||||
include_once "includes/$config.php";
|
||||
include_once "includes/database.inc";
|
||||
include_once "includes/variable.inc";
|
||||
include_once "includes/comment.inc";
|
||||
include_once "includes/xmlrpc.inc";
|
||||
include_once "includes/module.inc";
|
||||
include_once "includes/locale.inc";
|
||||
include_once "includes/search.inc";
|
||||
include_once "includes/theme.inc";
|
||||
include_once "includes/node.inc";
|
||||
|
||||
// initialize configuration variables:
|
||||
$conf = variable_init($conf);
|
||||
|
||||
// initialize installed modules:
|
||||
module_init();
|
||||
|
||||
// initialize localization system:
|
||||
$locale = locale_init();
|
||||
|
||||
// initialize theme:
|
||||
$theme = theme_init();
|
||||
|
||||
// set error handler:
|
||||
set_error_handler("error_handler");
|
||||
|
||||
?>
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
function conf_init() {
|
||||
global $HTTP_HOST, $REQUEST_URI;
|
||||
|
||||
/*
|
||||
** Try finding a matching configuration file by stripping the website's
|
||||
** URI from left to right. If no configuration file is found, return a
|
||||
** default value 'conf'.
|
||||
*/
|
||||
|
||||
$file = strtolower(strtr($HTTP_HOST ."". substr($REQUEST_URI, 0, strrpos($REQUEST_URI, "/")), "/:", ".."));
|
||||
|
||||
while (strlen($file) > 4) {
|
||||
if (file_exists("includes/$file.php")) {
|
||||
return $file;
|
||||
}
|
||||
else {
|
||||
$file = substr($file, strpos($file, ".") + 1);
|
||||
}
|
||||
}
|
||||
|
||||
return "conf";
|
||||
}
|
||||
|
||||
function error_handler($errno, $message, $filename, $line, $variables) {
|
||||
$types = array(1 => "error", 2 => "warning", 4 => "parse error", 8 => "notice", 16 => "core error", 32 => "core warning", 64 => "compile error", 128 => "compile warning", 256 => "user error", 512 => "user warning", 1024 => "user notice");
|
||||
$entry = $types[$errno] .": $message in $filename on line $line.";
|
||||
if (($errno == 1 || $errno == 2 || $errno == 4) && error_reporting()) {
|
||||
watchdog("error", $types[$errno] .": $message in $filename on line $line.");
|
||||
print $entry;
|
||||
}
|
||||
}
|
||||
|
||||
function watchdog($type, $message) {
|
||||
global $user;
|
||||
db_query("INSERT INTO watchdog (uid, type, message, location, hostname, timestamp) VALUES ('$user->uid', '". check_input($type) ."', '". check_input($message) ."', '". check_input(getenv("REQUEST_URI")) ."', '". check_input(getenv("REMOTE_ADDR")) ."', '". time() ."')");
|
||||
}
|
||||
|
||||
function throttle($type, $rate) {
|
||||
if (!user_access("access administration pages")) {
|
||||
if ($throttle = db_fetch_object(db_query("SELECT * FROM watchdog WHERE type = '$type' AND hostname = '". getenv("REMOTE_ADDR") ."' AND ". time() ." - timestamp < $rate"))) {
|
||||
watchdog("warning", "throttle: '". getenv("REMOTE_ADDR") ."' exceeded submission rate - $throttle->type");
|
||||
die(message_throttle());
|
||||
}
|
||||
else {
|
||||
watchdog($type, "throttle");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function path_uri() {
|
||||
global $HTTP_HOST, $REQUEST_URI;
|
||||
return "http://". $HTTP_HOST . substr($REQUEST_URI, 0, strrpos($REQUEST_URI, "/")) ."/";
|
||||
}
|
||||
|
||||
function path_img() {
|
||||
// use "http://your-image-server.com/ if you want to host images on a seperate server.
|
||||
return "./images/";
|
||||
}
|
||||
|
||||
function message_access() {
|
||||
return t("You are not authorized to access to this page.");
|
||||
}
|
||||
|
||||
function message_na() {
|
||||
return t("n/a");
|
||||
}
|
||||
|
||||
function message_throttle() {
|
||||
return t("You exceeded the maximum submission rate. Please wait a few minutes and try again.");
|
||||
}
|
||||
|
||||
function drupal_goto($url) {
|
||||
|
||||
/*
|
||||
** It is advised to use "drupal_goto()" instead of PHP's "header()" as
|
||||
** "drupal_goto()" will append the user's session ID to the URI when PHP
|
||||
** is compiled with "--enable-trans-sid".
|
||||
*/
|
||||
|
||||
if (SID == "" || strstr($url, SID)) {
|
||||
header("Location: $url");
|
||||
}
|
||||
else if (strstr($url, "?") && !strstr($url, SID)) {
|
||||
header("Location: $url&". SID);
|
||||
}
|
||||
else {
|
||||
header("Location: $url?". SID);
|
||||
}
|
||||
|
||||
/*
|
||||
** The "Location" header sends a REDIRECT status code to the http
|
||||
** deamon. In some cases this can go wrong, so we make sure none
|
||||
** of the code /below/ gets executed when we redirect.
|
||||
*/
|
||||
|
||||
exit();
|
||||
}
|
||||
|
||||
function check_form($text) {
|
||||
return htmlspecialchars(stripslashes($text));
|
||||
}
|
||||
|
||||
function check_export($text) {
|
||||
return htmlspecialchars(stripslashes($text));
|
||||
}
|
||||
|
||||
function check_code($text) {
|
||||
return $text;
|
||||
}
|
||||
|
||||
function check_preview($text) {
|
||||
return check_output(check_input($text));
|
||||
}
|
||||
|
||||
function check_query($text) {
|
||||
return addslashes(stripslashes($text));
|
||||
}
|
||||
|
||||
function filter($text) {
|
||||
foreach (module_list() as $name) {
|
||||
if (module_hook($name, "filter")) $text = module_invoke($name, "filter", $text);
|
||||
}
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
function check_input($text) {
|
||||
return check_query($text);
|
||||
}
|
||||
|
||||
function check_output($text, $nl2br = 0) {
|
||||
return ($text) ? ($nl2br ? nl2br(stripslashes($text)) : stripslashes($text)) : message_na();
|
||||
}
|
||||
|
||||
function check_file($filename) {
|
||||
if (is_uploaded_file($filename)) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
function file_encode($filename) {
|
||||
$edit[filedata] = base64_encode(fread($fd, filesize($edit[upload_file])));
|
||||
}
|
||||
|
||||
function format_info($body, $block) {
|
||||
return "<table><tr><td><table align=\"right\" border=\"1\" width=\"180\"><tr><td>$block</td></tr></table>$body</td></tr></table>\n";
|
||||
}
|
||||
|
||||
function format_rss_channel($title, $link, $description, $items, $language = "en") {
|
||||
$output .= "<channel>\n";
|
||||
$output .= " <title>". htmlentities(strip_tags($title)) ."</title>\n";
|
||||
$output .= " <link>". htmlentities(strip_tags($link)) ."</link>\n";
|
||||
$output .= " <description>". htmlentities($description) ."</description>\n";
|
||||
$output .= " <language>". htmlentities(strip_tags($language)) ."</language>\n";
|
||||
$output .= $items;
|
||||
$output .= "</channel>\n";
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function format_rss_item($title, $link, $description) {
|
||||
$output .= "<item>\n";
|
||||
$output .= " <title>". htmlentities(strip_tags($title)) ."</title>\n";
|
||||
$output .= " <link>". htmlentities(strip_tags($link)) ."</link>\n";
|
||||
$output .= " <description>". htmlentities($description) ."</description>\n";
|
||||
$output .= "</item>\n";
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function format_plural($count, $singular, $plural) {
|
||||
return ($count == 1) ? "$count ". t($singular) : "$count ". t($plural);
|
||||
}
|
||||
|
||||
function format_size($size) {
|
||||
$suffix = "bytes";
|
||||
if ($size > 1024) {
|
||||
$size = round($size / 1024, 2);
|
||||
$suffix = "KB";
|
||||
}
|
||||
if ($size > 1024) {
|
||||
$size = round($size / 1024, 2);
|
||||
$suffix = "MB";
|
||||
}
|
||||
return "$size $suffix";
|
||||
}
|
||||
|
||||
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->uid && $REQUEST_METHOD == "GET") {
|
||||
if ($cache = db_fetch_object(db_query("SELECT * FROM cache WHERE url = '". check_input($REQUEST_URI) ."'"))) {
|
||||
cache_clear(variable_get("cache_clear", 30));
|
||||
}
|
||||
else {
|
||||
ob_start();
|
||||
}
|
||||
}
|
||||
|
||||
return $cache->data ? $cache->data : 0;
|
||||
}
|
||||
|
||||
function cache_set() {
|
||||
global $user, $REQUEST_URI, $REQUEST_METHOD;
|
||||
|
||||
if (!$user->uid && $REQUEST_METHOD == "GET") {
|
||||
if ($data = ob_get_contents()) {
|
||||
db_query("INSERT INTO cache (url, data, timestamp) VALUES('". addslashes($REQUEST_URI) ."', '". addslashes($data) ."', '". time() ."')");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function format_interval($timestamp) {
|
||||
$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) {
|
||||
$key = explode("|", $key);
|
||||
if ($timestamp >= $value) {
|
||||
$output .= ($output ? " " : "") . format_plural(floor($timestamp / $value), $key[0], $key[1]);
|
||||
$timestamp %= $value;
|
||||
}
|
||||
}
|
||||
return ($output) ? $output : "0 sec";
|
||||
}
|
||||
|
||||
function format_date($timestamp, $type = "medium", $format = "") {
|
||||
global $user;
|
||||
|
||||
// $timestamp += ($user->timezone) ? $user->timezone - date("Z") : 0;
|
||||
|
||||
switch ($type) {
|
||||
case "small":
|
||||
$date = date("m/d/y - H:i", $timestamp);
|
||||
break;
|
||||
case "medium":
|
||||
$date = t(date("l", $timestamp)) .", ". date("m/d/Y - H:i", $timestamp);
|
||||
break;
|
||||
case "large":
|
||||
$date = t(date("l", $timestamp)) .", ". t(date("F", $timestamp)) ." ". date("d, Y - H:i", $timestamp);
|
||||
break;
|
||||
case "custom":
|
||||
for ($i = strlen($format); $i >= 0; $c = $format[--$i]) {
|
||||
if (strstr("DFlMSw", $c)) {
|
||||
$date = t(date($c, $timestamp)).$date;
|
||||
}
|
||||
else if (strstr("AaBdgGhHiIjLmnrstTUYyZz", $c)) {
|
||||
$date = date($c, $timestamp).$date;
|
||||
}
|
||||
else {
|
||||
$date = $c.$date;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$date = t(date("l", $timestamp)) .", ". date("m/d/Y - H:i", $timestamp);
|
||||
}
|
||||
return $date;
|
||||
}
|
||||
|
||||
function format_name($object) {
|
||||
|
||||
if ($object->uid && $object->name) {
|
||||
return "<a href=\"module.php?mod=user&op=view&id=$object->uid\">$object->name</a>";
|
||||
}
|
||||
else {
|
||||
return variable_get(anonymous, "Anonymous");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function format_email($address) {
|
||||
return ($address) ? "<a href=\"mailto:$address\">$address</A>" : message_na();
|
||||
}
|
||||
|
||||
function format_url($address, $description = 0) {
|
||||
$description = ($description) ? $description : $address;
|
||||
return ($address) ? "<a href=\"$address\">". check_output($description) ."</a>" : message_na();
|
||||
}
|
||||
|
||||
function format_tag($link, $text) {
|
||||
return "'<a href=\"node.php?title='. urlencode('$link') .'\">'. ('$text' ? '$text' : '$link') .'</a>'";
|
||||
}
|
||||
|
||||
function form($form, $method = "post", $action = 0, $options = 0) {
|
||||
global $REQUEST_URI;
|
||||
|
||||
return "<form action=\"". ($action ? $action : $REQUEST_URI) ."\" method=\"$method\"". ($options ? " $options" : "") .">\n$form</form>\n";
|
||||
}
|
||||
|
||||
function form_item($title, $value, $description = 0) {
|
||||
return ($title ? "<b>$title:</b><br />" : "") . $value . ($description ? "<br /><small><i>$description</i></small>" : "") ."<p />\n";
|
||||
}
|
||||
|
||||
function form_checkbox($title, $name, $value, $description = 0) {
|
||||
return form_item(0, "<input type=\"checkbox\" name=\"edit[$name]\" ". ($value ? " checked=\"checked\"" : "") ." /> $title", $description);
|
||||
}
|
||||
|
||||
function form_textfield($title, $name, $value, $size, $maxlength, $description = 0) {
|
||||
return form_item($title, "<input maxlength=\"$maxlength\" name=\"edit[$name]\" size=\"$size\" value=\"". check_form($value) ."\" />", $description);
|
||||
}
|
||||
|
||||
function form_password($title, $name, $value, $size, $maxlength, $description = 0) {
|
||||
return form_item($title, "<input type=\"password\" maxlength=\"$maxlength\" name=\"edit[$name]\" size=\"$size\" value=\"". check_form($value) ."\" />", $description);
|
||||
}
|
||||
|
||||
function form_textarea($title, $name, $value, $cols, $rows, $description = 0) {
|
||||
return form_item($title, "<textarea wrap=\"virtual\" cols=\"$cols\" rows=\"$rows\" name=\"edit[$name]\">". check_form($value) ."</textarea>", $description);
|
||||
}
|
||||
|
||||
function form_select($title, $name, $value, $options, $description = 0, $extra = 0) {
|
||||
if (count($options) > 0) {
|
||||
foreach ($options as $key=>$choice) $select .= "<option value=\"$key\"". (is_array($value) ? (in_array($key, $value) ? " selected" : "") : ($key == $value ? " selected" : "")) .">". check_form($choice) ."</option>";
|
||||
return form_item($title, "<select name=\"edit[$name]\"". ($extra ? " $extra" : "") .">$select</select>", $description);
|
||||
}
|
||||
}
|
||||
|
||||
function form_file($title, $name, $size, $description = 0) {
|
||||
return form_item($title, "<input type=\"file\" name=\"edit[$name]\" size=\"$size\" />\n", $description);
|
||||
}
|
||||
|
||||
function form_hidden($name, $value) {
|
||||
return "<input type=\"hidden\" name=\"edit[$name]\" value=\"". check_form($value) ."\" />\n";
|
||||
}
|
||||
|
||||
function form_submit($value) {
|
||||
return "<input type=\"submit\" name=\"op\" value=\"". check_form($value) ."\" />\n";
|
||||
}
|
||||
|
||||
function field_get($string, $name) {
|
||||
ereg(",$name=([^,]+)", ",$string", $regs);
|
||||
return $regs[1];
|
||||
}
|
||||
|
||||
function field_set($string, $name, $value) {
|
||||
$rval = ereg_replace(",$name=[^,]+", "", ",$string");
|
||||
if ($value) $rval .= ($rval == "," ? "" : ",") ."$name=$value";
|
||||
return substr($rval, 1);
|
||||
}
|
||||
|
||||
function field_merge($a, $b) {
|
||||
foreach (explode(",", $b) as $data) {
|
||||
$entry = explode("=", $data);
|
||||
$a = field_set($a, $entry[0], $entry[1]);
|
||||
}
|
||||
return $a;
|
||||
}
|
||||
|
||||
function link_page() {
|
||||
|
||||
$links[] = "<a href=\"index.php\">". t("home") ."</a>";
|
||||
|
||||
foreach (module_list() as $name) {
|
||||
if (module_hook($name, "link")) {
|
||||
$links = array_merge($links, module_invoke($name, "link", "page"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $links;
|
||||
}
|
||||
|
||||
function link_node($node, $main = 0) {
|
||||
foreach (module_list() as $name) {
|
||||
if (module_hook($name, "link")) {
|
||||
$links = array_merge($links, module_invoke($name, "link", "node", $node, $main));
|
||||
}
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function timer_start() {
|
||||
global $timer;
|
||||
$timer = explode(" ", microtime());
|
||||
}
|
||||
|
||||
function timer_print() {
|
||||
global $timer;
|
||||
$stop = explode(" ", microtime());
|
||||
$diff = $stop[0] - $timer[0];
|
||||
print "<PRE>execution time: $diff ms</PRE>";
|
||||
}
|
||||
|
||||
function page_header() {
|
||||
if (variable_get("dev_timer", 0)) {
|
||||
timer_start();
|
||||
}
|
||||
|
||||
if (variable_get("cache", 0)) {
|
||||
if ($data = cache_get()) {
|
||||
print $data;
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function page_footer() {
|
||||
if (variable_get("dev_timer", 0)) {
|
||||
timer_print();
|
||||
}
|
||||
|
||||
if (variable_get("cache", 0)) {
|
||||
cache_set();
|
||||
}
|
||||
}
|
||||
|
||||
$config = conf_init();
|
||||
|
||||
unset($conf);
|
||||
include_once "includes/$config.php";
|
||||
include_once "includes/database.inc";
|
||||
include_once "includes/variable.inc";
|
||||
include_once "includes/comment.inc";
|
||||
include_once "includes/xmlrpc.inc";
|
||||
include_once "includes/module.inc";
|
||||
include_once "includes/locale.inc";
|
||||
include_once "includes/search.inc";
|
||||
include_once "includes/theme.inc";
|
||||
include_once "includes/node.inc";
|
||||
|
||||
// initialize configuration variables:
|
||||
$conf = variable_init($conf);
|
||||
|
||||
// initialize installed modules:
|
||||
module_init();
|
||||
|
||||
// initialize localization system:
|
||||
$locale = locale_init();
|
||||
|
||||
// initialize theme:
|
||||
$theme = theme_init();
|
||||
|
||||
// set error handler:
|
||||
set_error_handler("error_handler");
|
||||
|
||||
?>
|
||||
|
|
2170
includes/xmlrpc.inc
2170
includes/xmlrpc.inc
File diff suppressed because it is too large
Load Diff
|
@ -225,7 +225,7 @@ function blog_page_last() {
|
|||
$theme->box(t("User blogs"), $output, "main");
|
||||
}
|
||||
|
||||
function blog_form($node, $help, $error) {
|
||||
function blog_form(&$node, &$help, &$error) {
|
||||
global $nid, $iid;
|
||||
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ function blog_page_last() {
|
|||
$theme->box(t("User blogs"), $output, "main");
|
||||
}
|
||||
|
||||
function blog_form($node, $help, $error) {
|
||||
function blog_form(&$node, &$help, &$error) {
|
||||
global $nid, $iid;
|
||||
|
||||
|
||||
|
|
|
@ -133,12 +133,12 @@ function book_update($node) {
|
|||
db_query("UPDATE book SET parent = '$node->parent', weight = '$node->weight' WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function book_delete($node) {
|
||||
function book_delete(&$node) {
|
||||
db_query("DELETE FROM book WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
|
||||
function book_form($node, $help, $error) {
|
||||
function book_form(&$node, &$help, &$error) {
|
||||
global $user;
|
||||
|
||||
$output .= form_select(t("Parent"), "parent", $node->parent, book_toc(), t("The parent subject or category the page belongs in."));
|
||||
|
|
|
@ -133,12 +133,12 @@ function book_update($node) {
|
|||
db_query("UPDATE book SET parent = '$node->parent', weight = '$node->weight' WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function book_delete($node) {
|
||||
function book_delete(&$node) {
|
||||
db_query("DELETE FROM book WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
|
||||
function book_form($node, $help, $error) {
|
||||
function book_form(&$node, &$help, &$error) {
|
||||
global $user;
|
||||
|
||||
$output .= form_select(t("Parent"), "parent", $node->parent, book_toc(), t("The parent subject or category the page belongs in."));
|
||||
|
|
|
@ -1,91 +1,91 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
function forum_node($field) {
|
||||
$info["name"] = t("discussion forum");
|
||||
$info["description"] = t("A forum is a threaded discussion, enabling users to communicate about a particular topic.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function forum_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function forum_save() {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array();
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
}
|
||||
|
||||
function forum_link($type) {
|
||||
if ($type == "page" && user_access("access content")) {
|
||||
$links[] = "<a href=\"module.php?mod=forum\">". t("forum") ."</a>";
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function forum_view($node) {
|
||||
global $theme;
|
||||
$output .= "<P><A HREF=\"module.php?mod=forum\">". t("Forum") ."</A> / <B><A HREF=\"node.php?id=$node->nid\">". check_output($node->title) ."</A></B>:</P><P>". check_output($node->body) ."</P>";
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
}
|
||||
|
||||
function forum_form($node, $help, $error) {
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 10);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
function forum_num_comments($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT COUNT(cid) AS count FROM comments WHERE lid = '$nid'"));
|
||||
return ($value) ? $value->count : 0;
|
||||
}
|
||||
|
||||
function forum_last_comment($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT timestamp FROM comments WHERE lid = '$nid' ORDER BY timestamp DESC LIMIT 1"));
|
||||
return ($value) ? format_date($value->timestamp, "small") : " ";
|
||||
}
|
||||
|
||||
function forum_page() {
|
||||
global $theme;
|
||||
|
||||
if (user_access("access content")) {
|
||||
$result = db_query("SELECT nid FROM node WHERE type = 'forum' ORDER BY title");
|
||||
|
||||
$output .= "<table border=\"0\" cellspacing=\"4\" cellpadding=\"4\">";
|
||||
$output .= " <tr><th>". t("Forum") ."</th><th>". t("Comments") ."</th><th>". t("Last comment") ."</th></tr>";
|
||||
while ($node = db_fetch_object($result)) {
|
||||
$node = node_load(array("nid" => $node->nid));
|
||||
$output .= " <tr><td><a href=\"node.php?id=$node->nid\">". check_output($node->title) ."</a><br /><small>". check_output($node->body, 1) ."</small></td><td align=\"center\">". forum_num_comments($node->nid) ."</td><td align=\"center\">". forum_last_comment($node->nid) ."</td></tr>";
|
||||
}
|
||||
$output .= "</table>";
|
||||
|
||||
$theme->header();
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
$theme->footer();
|
||||
}
|
||||
else {
|
||||
$theme->header();
|
||||
$theme->box(t("Access denied"), message_access());
|
||||
$theme->footer();
|
||||
}
|
||||
}
|
||||
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
function forum_node($field) {
|
||||
$info["name"] = t("discussion forum");
|
||||
$info["description"] = t("A forum is a threaded discussion, enabling users to communicate about a particular topic.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function forum_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function forum_save() {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array();
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
}
|
||||
|
||||
function forum_link($type) {
|
||||
if ($type == "page" && user_access("access content")) {
|
||||
$links[] = "<a href=\"module.php?mod=forum\">". t("forum") ."</a>";
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function forum_view($node) {
|
||||
global $theme;
|
||||
$output .= "<P><A HREF=\"module.php?mod=forum\">". t("Forum") ."</A> / <B><A HREF=\"node.php?id=$node->nid\">". check_output($node->title) ."</A></B>:</P><P>". check_output($node->body) ."</P>";
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
}
|
||||
|
||||
function forum_form(&$node, &$help, &$error) {
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 10);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
function forum_num_comments($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT COUNT(cid) AS count FROM comments WHERE lid = '$nid'"));
|
||||
return ($value) ? $value->count : 0;
|
||||
}
|
||||
|
||||
function forum_last_comment($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT timestamp FROM comments WHERE lid = '$nid' ORDER BY timestamp DESC LIMIT 1"));
|
||||
return ($value) ? format_date($value->timestamp, "small") : " ";
|
||||
}
|
||||
|
||||
function forum_page() {
|
||||
global $theme;
|
||||
|
||||
if (user_access("access content")) {
|
||||
$result = db_query("SELECT nid FROM node WHERE type = 'forum' ORDER BY title");
|
||||
|
||||
$output .= "<table border=\"0\" cellspacing=\"4\" cellpadding=\"4\">";
|
||||
$output .= " <tr><th>". t("Forum") ."</th><th>". t("Comments") ."</th><th>". t("Last comment") ."</th></tr>";
|
||||
while ($node = db_fetch_object($result)) {
|
||||
$node = node_load(array("nid" => $node->nid));
|
||||
$output .= " <tr><td><a href=\"node.php?id=$node->nid\">". check_output($node->title) ."</a><br /><small>". check_output($node->body, 1) ."</small></td><td align=\"center\">". forum_num_comments($node->nid) ."</td><td align=\"center\">". forum_last_comment($node->nid) ."</td></tr>";
|
||||
}
|
||||
$output .= "</table>";
|
||||
|
||||
$theme->header();
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
$theme->footer();
|
||||
}
|
||||
else {
|
||||
$theme->header();
|
||||
$theme->box(t("Access denied"), message_access());
|
||||
$theme->footer();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,91 +1,91 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
function forum_node($field) {
|
||||
$info["name"] = t("discussion forum");
|
||||
$info["description"] = t("A forum is a threaded discussion, enabling users to communicate about a particular topic.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function forum_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function forum_save() {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array();
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
}
|
||||
|
||||
function forum_link($type) {
|
||||
if ($type == "page" && user_access("access content")) {
|
||||
$links[] = "<a href=\"module.php?mod=forum\">". t("forum") ."</a>";
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function forum_view($node) {
|
||||
global $theme;
|
||||
$output .= "<P><A HREF=\"module.php?mod=forum\">". t("Forum") ."</A> / <B><A HREF=\"node.php?id=$node->nid\">". check_output($node->title) ."</A></B>:</P><P>". check_output($node->body) ."</P>";
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
}
|
||||
|
||||
function forum_form($node, $help, $error) {
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 10);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
function forum_num_comments($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT COUNT(cid) AS count FROM comments WHERE lid = '$nid'"));
|
||||
return ($value) ? $value->count : 0;
|
||||
}
|
||||
|
||||
function forum_last_comment($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT timestamp FROM comments WHERE lid = '$nid' ORDER BY timestamp DESC LIMIT 1"));
|
||||
return ($value) ? format_date($value->timestamp, "small") : " ";
|
||||
}
|
||||
|
||||
function forum_page() {
|
||||
global $theme;
|
||||
|
||||
if (user_access("access content")) {
|
||||
$result = db_query("SELECT nid FROM node WHERE type = 'forum' ORDER BY title");
|
||||
|
||||
$output .= "<table border=\"0\" cellspacing=\"4\" cellpadding=\"4\">";
|
||||
$output .= " <tr><th>". t("Forum") ."</th><th>". t("Comments") ."</th><th>". t("Last comment") ."</th></tr>";
|
||||
while ($node = db_fetch_object($result)) {
|
||||
$node = node_load(array("nid" => $node->nid));
|
||||
$output .= " <tr><td><a href=\"node.php?id=$node->nid\">". check_output($node->title) ."</a><br /><small>". check_output($node->body, 1) ."</small></td><td align=\"center\">". forum_num_comments($node->nid) ."</td><td align=\"center\">". forum_last_comment($node->nid) ."</td></tr>";
|
||||
}
|
||||
$output .= "</table>";
|
||||
|
||||
$theme->header();
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
$theme->footer();
|
||||
}
|
||||
else {
|
||||
$theme->header();
|
||||
$theme->box(t("Access denied"), message_access());
|
||||
$theme->footer();
|
||||
}
|
||||
}
|
||||
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
function forum_node($field) {
|
||||
$info["name"] = t("discussion forum");
|
||||
$info["description"] = t("A forum is a threaded discussion, enabling users to communicate about a particular topic.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function forum_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function forum_save() {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array();
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
}
|
||||
|
||||
function forum_link($type) {
|
||||
if ($type == "page" && user_access("access content")) {
|
||||
$links[] = "<a href=\"module.php?mod=forum\">". t("forum") ."</a>";
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function forum_view($node) {
|
||||
global $theme;
|
||||
$output .= "<P><A HREF=\"module.php?mod=forum\">". t("Forum") ."</A> / <B><A HREF=\"node.php?id=$node->nid\">". check_output($node->title) ."</A></B>:</P><P>". check_output($node->body) ."</P>";
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
}
|
||||
|
||||
function forum_form(&$node, &$help, &$error) {
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 10);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
function forum_num_comments($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT COUNT(cid) AS count FROM comments WHERE lid = '$nid'"));
|
||||
return ($value) ? $value->count : 0;
|
||||
}
|
||||
|
||||
function forum_last_comment($nid) {
|
||||
$value = db_fetch_object(db_query("SELECT timestamp FROM comments WHERE lid = '$nid' ORDER BY timestamp DESC LIMIT 1"));
|
||||
return ($value) ? format_date($value->timestamp, "small") : " ";
|
||||
}
|
||||
|
||||
function forum_page() {
|
||||
global $theme;
|
||||
|
||||
if (user_access("access content")) {
|
||||
$result = db_query("SELECT nid FROM node WHERE type = 'forum' ORDER BY title");
|
||||
|
||||
$output .= "<table border=\"0\" cellspacing=\"4\" cellpadding=\"4\">";
|
||||
$output .= " <tr><th>". t("Forum") ."</th><th>". t("Comments") ."</th><th>". t("Last comment") ."</th></tr>";
|
||||
while ($node = db_fetch_object($result)) {
|
||||
$node = node_load(array("nid" => $node->nid));
|
||||
$output .= " <tr><td><a href=\"node.php?id=$node->nid\">". check_output($node->title) ."</a><br /><small>". check_output($node->body, 1) ."</small></td><td align=\"center\">". forum_num_comments($node->nid) ."</td><td align=\"center\">". forum_last_comment($node->nid) ."</td></tr>";
|
||||
}
|
||||
$output .= "</table>";
|
||||
|
||||
$theme->header();
|
||||
$theme->box(t("Discussion forum"), $output);
|
||||
$theme->footer();
|
||||
}
|
||||
else {
|
||||
$theme->header();
|
||||
$theme->box(t("Access denied"), message_access());
|
||||
$theme->footer();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -464,7 +464,7 @@ function node_feed() {
|
|||
}
|
||||
|
||||
|
||||
function node_validate($node, $error = array()) {
|
||||
function node_validate($node, &$error) {
|
||||
|
||||
global $user;
|
||||
|
||||
|
@ -547,7 +547,7 @@ function node_form($edit) {
|
|||
** Validate the node:
|
||||
*/
|
||||
|
||||
$edit = node_validate($edit, &$error);
|
||||
$edit = node_validate($edit, $error);
|
||||
|
||||
/*
|
||||
** Get the node specific bits:
|
||||
|
@ -555,7 +555,7 @@ function node_form($edit) {
|
|||
|
||||
$function = $edit->type ."_form";
|
||||
if (function_exists($function)) {
|
||||
$form .= $function(&$edit, &$help, &$error);
|
||||
$form .= $function($edit, $help, $error);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -756,7 +756,7 @@ function node_submit($node) {
|
|||
** Fixup the node when required:
|
||||
*/
|
||||
|
||||
$node = node_validate($node);
|
||||
$node = node_validate($node, $error);
|
||||
|
||||
/*
|
||||
** Apply the filters:
|
||||
|
@ -862,7 +862,7 @@ function node_delete($edit) {
|
|||
** Call the node specific callback (if any):
|
||||
*/
|
||||
|
||||
module_invoke($node->type, "delete", &$node);
|
||||
module_invoke($node->type, "delete", $node);
|
||||
|
||||
watchdog("special", "$node->type: deleted '$node->title'");
|
||||
$output = t("The node has been deleted.");
|
||||
|
|
|
@ -464,7 +464,7 @@ function node_feed() {
|
|||
}
|
||||
|
||||
|
||||
function node_validate($node, $error = array()) {
|
||||
function node_validate($node, &$error) {
|
||||
|
||||
global $user;
|
||||
|
||||
|
@ -547,7 +547,7 @@ function node_form($edit) {
|
|||
** Validate the node:
|
||||
*/
|
||||
|
||||
$edit = node_validate($edit, &$error);
|
||||
$edit = node_validate($edit, $error);
|
||||
|
||||
/*
|
||||
** Get the node specific bits:
|
||||
|
@ -555,7 +555,7 @@ function node_form($edit) {
|
|||
|
||||
$function = $edit->type ."_form";
|
||||
if (function_exists($function)) {
|
||||
$form .= $function(&$edit, &$help, &$error);
|
||||
$form .= $function($edit, $help, $error);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -756,7 +756,7 @@ function node_submit($node) {
|
|||
** Fixup the node when required:
|
||||
*/
|
||||
|
||||
$node = node_validate($node);
|
||||
$node = node_validate($node, $error);
|
||||
|
||||
/*
|
||||
** Apply the filters:
|
||||
|
@ -862,7 +862,7 @@ function node_delete($edit) {
|
|||
** Call the node specific callback (if any):
|
||||
*/
|
||||
|
||||
module_invoke($node->type, "delete", &$node);
|
||||
module_invoke($node->type, "delete", $node);
|
||||
|
||||
watchdog("special", "$node->type: deleted '$node->title'");
|
||||
$output = t("The node has been deleted.");
|
||||
|
|
|
@ -1,94 +1,94 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
$GLOBALS["format"] = array(0 => "HTML", 1 => "PHP", 2 => "text");
|
||||
|
||||
function page_node($field) {
|
||||
$info["name"] = t("static page");
|
||||
$info["description"] = t("If you just want to add a static page with a link in the menu to your site, this would be the best choice. Unlike a story, a page by-passes the submission queue.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function page_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function page_save($op, $node) {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("format", "link", "promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("format", "link");
|
||||
}
|
||||
}
|
||||
|
||||
function page_insert($node) {
|
||||
db_query("INSERT INTO page (nid, format, link) VALUES ('$node->nid', '$node->format', '$node->link')");
|
||||
}
|
||||
|
||||
function page_update($node) {
|
||||
db_query("UPDATE page SET format = '$node->format', link = '$node->link' WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_delete($node) {
|
||||
db_query("DELETE FROM page WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_load($node) {
|
||||
$page = db_fetch_object(db_query("SELECT format, link FROM page WHERE nid = '$node->nid'"));
|
||||
return $page;
|
||||
}
|
||||
|
||||
function page_link($type) {
|
||||
if ($type == "page") {
|
||||
$result = db_query("SELECT nid, link FROM page WHERE link != '' ORDER BY link");
|
||||
while ($page = db_fetch_object($result)) {
|
||||
$links[] = "<a href=\"node.php?id=$page->nid\">$page->link</a>";
|
||||
}
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function page_view($node, $main = 0) {
|
||||
global $format, $theme;
|
||||
|
||||
switch ($format[$node->format]) {
|
||||
case "PHP":
|
||||
print eval($node->body);
|
||||
break;
|
||||
case "text":
|
||||
$theme->box($node->title, nl2br(htmlentities($node->body)));
|
||||
break;
|
||||
default:
|
||||
$theme->box($node->title, check_output($node->body, 1));
|
||||
}
|
||||
}
|
||||
|
||||
function page_form($node, $help, $error) {
|
||||
global $format, $op;
|
||||
|
||||
if ($op != t("Preview") && $format[$node->format] == "PHP") {
|
||||
$node->body = addslashes($node->body);
|
||||
}
|
||||
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 20);
|
||||
$output .= form_textfield("Link", "link", $node->link, 60, 64);
|
||||
$output .= form_select("Type", "format", $node->format, $format);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
$GLOBALS["format"] = array(0 => "HTML", 1 => "PHP", 2 => "text");
|
||||
|
||||
function page_node($field) {
|
||||
$info["name"] = t("static page");
|
||||
$info["description"] = t("If you just want to add a static page with a link in the menu to your site, this would be the best choice. Unlike a story, a page by-passes the submission queue.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function page_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function page_save($op, $node) {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("format", "link", "promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("format", "link");
|
||||
}
|
||||
}
|
||||
|
||||
function page_insert($node) {
|
||||
db_query("INSERT INTO page (nid, format, link) VALUES ('$node->nid', '$node->format', '$node->link')");
|
||||
}
|
||||
|
||||
function page_update($node) {
|
||||
db_query("UPDATE page SET format = '$node->format', link = '$node->link' WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_delete(&$node) {
|
||||
db_query("DELETE FROM page WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_load($node) {
|
||||
$page = db_fetch_object(db_query("SELECT format, link FROM page WHERE nid = '$node->nid'"));
|
||||
return $page;
|
||||
}
|
||||
|
||||
function page_link($type) {
|
||||
if ($type == "page") {
|
||||
$result = db_query("SELECT nid, link FROM page WHERE link != '' ORDER BY link");
|
||||
while ($page = db_fetch_object($result)) {
|
||||
$links[] = "<a href=\"node.php?id=$page->nid\">$page->link</a>";
|
||||
}
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function page_view($node, $main = 0) {
|
||||
global $format, $theme;
|
||||
|
||||
switch ($format[$node->format]) {
|
||||
case "PHP":
|
||||
print eval($node->body);
|
||||
break;
|
||||
case "text":
|
||||
$theme->box($node->title, nl2br(htmlentities($node->body)));
|
||||
break;
|
||||
default:
|
||||
$theme->box($node->title, check_output($node->body, 1));
|
||||
}
|
||||
}
|
||||
|
||||
function page_form(&$node, &$help, &$error) {
|
||||
global $format, $op;
|
||||
|
||||
if ($op != t("Preview") && $format[$node->format] == "PHP") {
|
||||
$node->body = addslashes($node->body);
|
||||
}
|
||||
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 20);
|
||||
$output .= form_textfield("Link", "link", $node->link, 60, 64);
|
||||
$output .= form_select("Type", "format", $node->format, $format);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,94 +1,94 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
$GLOBALS["format"] = array(0 => "HTML", 1 => "PHP", 2 => "text");
|
||||
|
||||
function page_node($field) {
|
||||
$info["name"] = t("static page");
|
||||
$info["description"] = t("If you just want to add a static page with a link in the menu to your site, this would be the best choice. Unlike a story, a page by-passes the submission queue.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function page_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function page_save($op, $node) {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("format", "link", "promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("format", "link");
|
||||
}
|
||||
}
|
||||
|
||||
function page_insert($node) {
|
||||
db_query("INSERT INTO page (nid, format, link) VALUES ('$node->nid', '$node->format', '$node->link')");
|
||||
}
|
||||
|
||||
function page_update($node) {
|
||||
db_query("UPDATE page SET format = '$node->format', link = '$node->link' WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_delete($node) {
|
||||
db_query("DELETE FROM page WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_load($node) {
|
||||
$page = db_fetch_object(db_query("SELECT format, link FROM page WHERE nid = '$node->nid'"));
|
||||
return $page;
|
||||
}
|
||||
|
||||
function page_link($type) {
|
||||
if ($type == "page") {
|
||||
$result = db_query("SELECT nid, link FROM page WHERE link != '' ORDER BY link");
|
||||
while ($page = db_fetch_object($result)) {
|
||||
$links[] = "<a href=\"node.php?id=$page->nid\">$page->link</a>";
|
||||
}
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function page_view($node, $main = 0) {
|
||||
global $format, $theme;
|
||||
|
||||
switch ($format[$node->format]) {
|
||||
case "PHP":
|
||||
print eval($node->body);
|
||||
break;
|
||||
case "text":
|
||||
$theme->box($node->title, nl2br(htmlentities($node->body)));
|
||||
break;
|
||||
default:
|
||||
$theme->box($node->title, check_output($node->body, 1));
|
||||
}
|
||||
}
|
||||
|
||||
function page_form($node, $help, $error) {
|
||||
global $format, $op;
|
||||
|
||||
if ($op != t("Preview") && $format[$node->format] == "PHP") {
|
||||
$node->body = addslashes($node->body);
|
||||
}
|
||||
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 20);
|
||||
$output .= form_textfield("Link", "link", $node->link, 60, 64);
|
||||
$output .= form_select("Type", "format", $node->format, $format);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
$GLOBALS["format"] = array(0 => "HTML", 1 => "PHP", 2 => "text");
|
||||
|
||||
function page_node($field) {
|
||||
$info["name"] = t("static page");
|
||||
$info["description"] = t("If you just want to add a static page with a link in the menu to your site, this would be the best choice. Unlike a story, a page by-passes the submission queue.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function page_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
}
|
||||
|
||||
function page_save($op, $node) {
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("format", "link", "promote" => 0, "moderate" => 0, "status" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("format", "link");
|
||||
}
|
||||
}
|
||||
|
||||
function page_insert($node) {
|
||||
db_query("INSERT INTO page (nid, format, link) VALUES ('$node->nid', '$node->format', '$node->link')");
|
||||
}
|
||||
|
||||
function page_update($node) {
|
||||
db_query("UPDATE page SET format = '$node->format', link = '$node->link' WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_delete(&$node) {
|
||||
db_query("DELETE FROM page WHERE nid = '$node->nid'");
|
||||
}
|
||||
|
||||
function page_load($node) {
|
||||
$page = db_fetch_object(db_query("SELECT format, link FROM page WHERE nid = '$node->nid'"));
|
||||
return $page;
|
||||
}
|
||||
|
||||
function page_link($type) {
|
||||
if ($type == "page") {
|
||||
$result = db_query("SELECT nid, link FROM page WHERE link != '' ORDER BY link");
|
||||
while ($page = db_fetch_object($result)) {
|
||||
$links[] = "<a href=\"node.php?id=$page->nid\">$page->link</a>";
|
||||
}
|
||||
}
|
||||
|
||||
return $links ? $links : array();
|
||||
}
|
||||
|
||||
function page_view($node, $main = 0) {
|
||||
global $format, $theme;
|
||||
|
||||
switch ($format[$node->format]) {
|
||||
case "PHP":
|
||||
print eval($node->body);
|
||||
break;
|
||||
case "text":
|
||||
$theme->box($node->title, nl2br(htmlentities($node->body)));
|
||||
break;
|
||||
default:
|
||||
$theme->box($node->title, check_output($node->body, 1));
|
||||
}
|
||||
}
|
||||
|
||||
function page_form(&$node, &$help, &$error) {
|
||||
global $format, $op;
|
||||
|
||||
if ($op != t("Preview") && $format[$node->format] == "PHP") {
|
||||
$node->body = addslashes($node->body);
|
||||
}
|
||||
|
||||
$output .= form_textarea("Body", "body", $node->body, 60, 20);
|
||||
$output .= form_textfield("Link", "link", $node->link, 60, 64);
|
||||
$output .= form_select("Type", "format", $node->format, $format);
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,87 +1,87 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
function story_conf_options() {
|
||||
$output .= form_textarea("Explanation or submission guidelines", "story_help", variable_get("story_help", ""), 55, 4, "This text will be displayed at the top of the story submission form. Useful for helping or instructing your users.");
|
||||
$output .= form_select(t("Minimum number of words"), "minimum_story_size", variable_get("minimum_story_size", 0), array(0 => "0 words", 10 => "10 words", 25 => "25 words", 50 => "50 words", 75 => "75 words", 100 => "100 words", 125 => "125 words", 150 => "150 words", 175 => "175 words", 200 => "200 words"), t("The minimum number of words a personal story entry should consist of. This can be useful to rule out submissions that do not meet the site's standards, such as short test post."));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function story_node($field) {
|
||||
$info["name"] = t("story");
|
||||
$info["description"] = t("A story is a post that is submitted to the attention of other users and is queued in the submission queue. Users and moderators vote on the posts they like or dislike, promoting or demoting them. When a post gets above a certain threshold it gets authomatically published to front page.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function story_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function story_save($op, $node) {
|
||||
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1, "promote" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("moderate" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0, "promote" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function story_help() {
|
||||
?>
|
||||
// TODO: update documentation, outdated
|
||||
|
||||
//<p>Queued stories: user-contributed stories are automatically whisked away to a submission queue for moderators (i.e. registered user) to frown at. Moderators vote whether or not a story should be posted to the front page for discussion.</p>
|
||||
//<p>Posted stories: published stories accessible to all visitors.</p>
|
||||
//<p>Dumped stories: rejected stories that are no longer available to visitors.</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function story_form($node, $help, $error) {
|
||||
|
||||
if (isset($node->body)) {
|
||||
|
||||
/*
|
||||
** Validate the size of the story:
|
||||
*/
|
||||
|
||||
if (count(explode(" ", $node->body)) < variable_get("minimum_story_size", 0)) {
|
||||
$error["body"] = "<div style=\"color: red;\">". t("The body of your story is too short.") ."</div>";
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
/*
|
||||
** Carry out some explanation or submission guidelines:
|
||||
*/
|
||||
|
||||
$help = variable_get("story_help", "");
|
||||
|
||||
}
|
||||
|
||||
$output = form_textarea(t("Body"), "body", $node->body, 60, 15, $error["body"] ? $error["body"] : t("Allowed HTML tags") .": ". htmlspecialchars(variable_get("allowed_html", "")));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
function story_conf_options() {
|
||||
$output .= form_textarea("Explanation or submission guidelines", "story_help", variable_get("story_help", ""), 55, 4, "This text will be displayed at the top of the story submission form. Useful for helping or instructing your users.");
|
||||
$output .= form_select(t("Minimum number of words"), "minimum_story_size", variable_get("minimum_story_size", 0), array(0 => "0 words", 10 => "10 words", 25 => "25 words", 50 => "50 words", 75 => "75 words", 100 => "100 words", 125 => "125 words", 150 => "150 words", 175 => "175 words", 200 => "200 words"), t("The minimum number of words a personal story entry should consist of. This can be useful to rule out submissions that do not meet the site's standards, such as short test post."));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function story_node($field) {
|
||||
$info["name"] = t("story");
|
||||
$info["description"] = t("A story is a post that is submitted to the attention of other users and is queued in the submission queue. Users and moderators vote on the posts they like or dislike, promoting or demoting them. When a post gets above a certain threshold it gets authomatically published to front page.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function story_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function story_save($op, $node) {
|
||||
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1, "promote" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("moderate" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0, "promote" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function story_help() {
|
||||
?>
|
||||
// TODO: update documentation, outdated
|
||||
|
||||
//<p>Queued stories: user-contributed stories are automatically whisked away to a submission queue for moderators (i.e. registered user) to frown at. Moderators vote whether or not a story should be posted to the front page for discussion.</p>
|
||||
//<p>Posted stories: published stories accessible to all visitors.</p>
|
||||
//<p>Dumped stories: rejected stories that are no longer available to visitors.</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function story_form(&$node, &$help, &$error) {
|
||||
|
||||
if (isset($node->body)) {
|
||||
|
||||
/*
|
||||
** Validate the size of the story:
|
||||
*/
|
||||
|
||||
if (count(explode(" ", $node->body)) < variable_get("minimum_story_size", 0)) {
|
||||
$error["body"] = "<div style=\"color: red;\">". t("The body of your story is too short.") ."</div>";
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
/*
|
||||
** Carry out some explanation or submission guidelines:
|
||||
*/
|
||||
|
||||
$help = variable_get("story_help", "");
|
||||
|
||||
}
|
||||
|
||||
$output = form_textarea(t("Body"), "body", $node->body, 60, 15, $error["body"] ? $error["body"] : t("Allowed HTML tags") .": ". htmlspecialchars(variable_get("allowed_html", "")));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,87 +1,87 @@
|
|||
<?php
|
||||
// $Id$
|
||||
|
||||
function story_conf_options() {
|
||||
$output .= form_textarea("Explanation or submission guidelines", "story_help", variable_get("story_help", ""), 55, 4, "This text will be displayed at the top of the story submission form. Useful for helping or instructing your users.");
|
||||
$output .= form_select(t("Minimum number of words"), "minimum_story_size", variable_get("minimum_story_size", 0), array(0 => "0 words", 10 => "10 words", 25 => "25 words", 50 => "50 words", 75 => "75 words", 100 => "100 words", 125 => "125 words", 150 => "150 words", 175 => "175 words", 200 => "200 words"), t("The minimum number of words a personal story entry should consist of. This can be useful to rule out submissions that do not meet the site's standards, such as short test post."));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function story_node($field) {
|
||||
$info["name"] = t("story");
|
||||
$info["description"] = t("A story is a post that is submitted to the attention of other users and is queued in the submission queue. Users and moderators vote on the posts they like or dislike, promoting or demoting them. When a post gets above a certain threshold it gets authomatically published to front page.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function story_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function story_save($op, $node) {
|
||||
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1, "promote" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("moderate" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0, "promote" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function story_help() {
|
||||
?>
|
||||
// TODO: update documentation, outdated
|
||||
|
||||
//<p>Queued stories: user-contributed stories are automatically whisked away to a submission queue for moderators (i.e. registered user) to frown at. Moderators vote whether or not a story should be posted to the front page for discussion.</p>
|
||||
//<p>Posted stories: published stories accessible to all visitors.</p>
|
||||
//<p>Dumped stories: rejected stories that are no longer available to visitors.</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function story_form($node, $help, $error) {
|
||||
|
||||
if (isset($node->body)) {
|
||||
|
||||
/*
|
||||
** Validate the size of the story:
|
||||
*/
|
||||
|
||||
if (count(explode(" ", $node->body)) < variable_get("minimum_story_size", 0)) {
|
||||
$error["body"] = "<div style=\"color: red;\">". t("The body of your story is too short.") ."</div>";
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
/*
|
||||
** Carry out some explanation or submission guidelines:
|
||||
*/
|
||||
|
||||
$help = variable_get("story_help", "");
|
||||
|
||||
}
|
||||
|
||||
$output = form_textarea(t("Body"), "body", $node->body, 60, 15, $error["body"] ? $error["body"] : t("Allowed HTML tags") .": ". htmlspecialchars(variable_get("allowed_html", "")));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
<?php
|
||||
// $Id$
|
||||
|
||||
function story_conf_options() {
|
||||
$output .= form_textarea("Explanation or submission guidelines", "story_help", variable_get("story_help", ""), 55, 4, "This text will be displayed at the top of the story submission form. Useful for helping or instructing your users.");
|
||||
$output .= form_select(t("Minimum number of words"), "minimum_story_size", variable_get("minimum_story_size", 0), array(0 => "0 words", 10 => "10 words", 25 => "25 words", 50 => "50 words", 75 => "75 words", 100 => "100 words", 125 => "125 words", 150 => "150 words", 175 => "175 words", 200 => "200 words"), t("The minimum number of words a personal story entry should consist of. This can be useful to rule out submissions that do not meet the site's standards, such as short test post."));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function story_node($field) {
|
||||
$info["name"] = t("story");
|
||||
$info["description"] = t("A story is a post that is submitted to the attention of other users and is queued in the submission queue. Users and moderators vote on the posts they like or dislike, promoting or demoting them. When a post gets above a certain threshold it gets authomatically published to front page.");
|
||||
|
||||
return $info[$field];
|
||||
}
|
||||
|
||||
function story_access($op, $node) {
|
||||
if ($op == "view") {
|
||||
return $node->status;
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function story_save($op, $node) {
|
||||
|
||||
if ($op == "approve") {
|
||||
return array("status" => 1, "promote" => 1);
|
||||
}
|
||||
|
||||
if ($op == "create") {
|
||||
return array("moderate" => 1);
|
||||
}
|
||||
|
||||
if ($op == "decline") {
|
||||
return array("status" => 0, "promote" => 0);
|
||||
}
|
||||
|
||||
if ($op == "update") {
|
||||
return array("status");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function story_help() {
|
||||
?>
|
||||
// TODO: update documentation, outdated
|
||||
|
||||
//<p>Queued stories: user-contributed stories are automatically whisked away to a submission queue for moderators (i.e. registered user) to frown at. Moderators vote whether or not a story should be posted to the front page for discussion.</p>
|
||||
//<p>Posted stories: published stories accessible to all visitors.</p>
|
||||
//<p>Dumped stories: rejected stories that are no longer available to visitors.</p>
|
||||
<?php
|
||||
}
|
||||
|
||||
function story_form(&$node, &$help, &$error) {
|
||||
|
||||
if (isset($node->body)) {
|
||||
|
||||
/*
|
||||
** Validate the size of the story:
|
||||
*/
|
||||
|
||||
if (count(explode(" ", $node->body)) < variable_get("minimum_story_size", 0)) {
|
||||
$error["body"] = "<div style=\"color: red;\">". t("The body of your story is too short.") ."</div>";
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
/*
|
||||
** Carry out some explanation or submission guidelines:
|
||||
*/
|
||||
|
||||
$help = variable_get("story_help", "");
|
||||
|
||||
}
|
||||
|
||||
$output = form_textarea(t("Body"), "body", $node->body, 60, 15, $error["body"] ? $error["body"] : t("Allowed HTML tags") .": ". htmlspecialchars(variable_get("allowed_html", "")));
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue