diff --git a/CHANGELOG b/CHANGELOG
index ffa7e9b9edf9fe166f3d2fb4b8d31752ff111bb0..3ce548602048c075f1ee93b9b22c0d75612c3797 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -14,9 +14,12 @@ Drupal x.x.x, xxxx-xx-xx
- usability:
* added breadcrumb navigation to all pages.
* made it possible to add context-sensitive help to all pages.
- * grouped form elements using '
' and '' tags.
* replaced drop-down menus by radio buttons where appropriate.
* removed the 'magic_quotes_gpc = 0' requirement.
+- accessibility:
+ * made themes degrade gracefully in absence of CSS.
+ * grouped form elements using ' ' and '' tags.
+ * added '' tags to form elements.
- documentation:
* added PHPDoc/Doxygen comments.
diff --git a/includes/common.inc b/includes/common.inc
index aaa95276c3cd3c9b7cc656143874421ab1edd198..5e4fa290cb5477d42571160b8722f97289234921 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -2,7 +2,9 @@
// $Id$
/**
+ * @name drupal_title
* Functions to get and set the title of the current page.
+ * @{
*/
function drupal_set_title($title = NULL) {
static $stored_title;
@@ -22,12 +24,14 @@ function drupal_get_title() {
return $title;
}
-
+// @}
/**
+ * @name drupal_breadcrumb
* Functions to get and set the breadcrumb trail of the current page. The
* breadcrumb trail is represented as an array of links, starting with
* "home" and proceeding up to but not including the current page.
+ * @{
*/
function drupal_set_breadcrumb($breadcrumb = NULL) {
static $stored_breadcrumb;
@@ -48,7 +52,7 @@ function drupal_get_breadcrumb() {
return $breadcrumb;
}
-
+// @}
/**
* Build the alias/path array
@@ -249,9 +253,9 @@ function valid_url($url) {
/**
* Format a single result entry of a search query:
*
- * @param $item a single search result as returned by _search of type
- * array("count" => ..., "link" => ..., "title" => ...,
- * "user" => ..., "date" => ..., "keywords" => ...)
+ * @param $item a single search result as returned by module _search of
+ * type array("count" => ..., "link" => ..., "title" => ..., "user" => ...,
+ * "date" => ..., "keywords" => ...)
* @param $type module type of this item
*/
function search_item($item, $type) {
@@ -344,7 +348,7 @@ function search_data($keys = NULL) {
* @param $type If set, search only nodes of this type.
* Otherwise, search all types.
* @param $action Form action. Defaults to 'site.com/search'.
- * @param $query Query string. Defaults to global $keys.
+ * @param $keys Query string. Defaults to global $keys.
* @param $options != 0: Render additional form fields/text
* ("Restrict search to", help text, etc).
*/
diff --git a/includes/database.mysql.inc b/includes/database.mysql.inc
index 7b5dabb8439231531c010fab10d5bf1c31f696b9..2f27a7a5e240f783e8225e2358ce076b3a8dbcb3 100644
--- a/includes/database.mysql.inc
+++ b/includes/database.mysql.inc
@@ -21,6 +21,12 @@ function db_connect($url) {
*/
}
+/**
+ * Runs a query in the database.
+ *
+ * @param $query SQL query, followed by a variable number of arguments which are substituted into query by sprintf.
+ * @return a MySQL result or FALSE if the query was not executed correctly.
+ */
function db_query($query) {
$args = func_get_args();
@@ -142,9 +148,8 @@ function db_affected_rows() {
/**
* Runs a LIMIT query in the database.
*
- * @param mixed $query SQL query, followed by a variable number of arguments which are substituted into query by sprintf, followed by 'from' and 'count' parameters. 'from' is the row to start fetching, 'count' the numbers of rows to fetch.
- * @return resource a MySQL result or FALSE if the query was not executed correctly.
- * @access public
+ * @param $query SQL query, followed by a variable number of arguments which are substituted into query by sprintf, followed by 'from' and 'count' parameters. 'from' is the row to start fetching, 'count' the numbers of rows to fetch.
+ * @return a MySQL result or FALSE if the query was not executed correctly.
*/
function db_query_range($query) {
$args = func_get_args();
diff --git a/includes/database.pear.inc b/includes/database.pear.inc
index c0cd965ea4be10903a758fd6b5ea7cf4d3448ef0..ded3bcf96b2c7b74e4863f034c33f073b4444a7c 100644
--- a/includes/database.pear.inc
+++ b/includes/database.pear.inc
@@ -18,9 +18,8 @@ function db_connect($url) {
/**
* Runs a query in the database.
*
- * @param $query SQL query
- * @param $type module type of this item
- * @return sql result resource
+ * @param $query SQL query, followed by a variable number of arguments which are substituted into query by sprintf.
+ * @return a DB_Result object or a DB_Error
*/
function db_query($query) {
@@ -146,9 +145,8 @@ function db_affected_rows() {
/**
* Runs a LIMIT query in the database.
*
- * @param mixed $query SQL query followed by a variable number of arguments which are substituted into query by sprintf, followed by 'from' and 'count' parameters. 'from' is the row to start fetching, 'count' the numbers of rows to fetch.
- * @return mixed a DB_Result object or a DB_Error
- * @access public
+ * @param $query SQL query followed by a variable number of arguments which are substituted into query by sprintf, followed by 'from' and 'count' parameters. 'from' is the row to start fetching, 'count' the numbers of rows to fetch.
+ * @return a DB_Result object or a DB_Error
*/
function db_query_range($query) {
global $db_handle, $queries;
diff --git a/includes/pager.inc b/includes/pager.inc
index 602f6e78a66449837c41b27334fe6403a800f3fb..9f371e9bf029a0868ba477c0feaf4fb71731ceb2 100644
--- a/includes/pager.inc
+++ b/includes/pager.inc
@@ -1,24 +1,84 @@
(eg. title, onMouseOver, etc.)
*
* @return string html of pager
*/
function pager_display($tags = "", $limit = 10, $element = 0, $type = "default", $attributes = array()) {
return theme("pager_display_". $type, $tags, $limit, $element, $attributes);
}
+/** @} End of defgroup pager_api **/
+
+/**
+ * @addtogroup themeable
+ * @{
+ */
/**
* DEFAULT PAGER:
@@ -76,18 +136,24 @@ function theme_pager_display_admin($tags = "", $limit = 10, $element = 0, $attri
*/
return theme_pager_display_default($tags, $limit, $element, $attributes);
}
+/** @} End of addtogroup themeable **/
-/* *******************************************************************
- * PAGER PIECES:
- * Use these pieces to construct your own custom pagers (i.e. in
- * themes). Note that you should NOT modify this file to customize
- * your pager)
- * *******************************************************************/
+/**
+ * @name pager pieces
+ * Use these pieces to construct your own custom pagers in your theme. Note
+ * that you should NOT modify this file to customize your pager.
+ * @{
+ */
/**
* displays a "first-page" link
*
- * @see pager_previous
+ * @param $text defines the name (or image) of the link
+ * @param $limit how many nodes are displayed per page
+ * @param $element distinguish between multiple pagers on one page
+ * @param $attributes extra html attributes for \ (eg. title, onMouseOver, etc.)
+ *
+ * @return string html of this pager piece
*/
function pager_first($text, $limit, $element = 0, $attributes = array()) {
global $pager_from_array;
@@ -104,10 +170,11 @@ function pager_first($text, $limit, $element = 0, $attributes = array()) {
/**
* displays a "previous-page" link
*
- * @param string $text defines the name (or image) of the link
- * @param int $limit how many nodes are displayed per page
- * @param int $element distinguish between multiple pagers on one page
- * @param int $n how many pages we move back (defaults to 1)
+ * @param $text defines the name (or image) of the link
+ * @param $limit how many nodes are displayed per page
+ * @param $element distinguish between multiple pagers on one page
+ * @param $n how many pages we move back (defaults to 1)
+ * @param $attributes extra html attributes for \ (eg. title, onMouseOver, etc.)
*
* @return string html of this pager piece
*/
@@ -123,7 +190,13 @@ function pager_previous($text, $limit, $element = 0, $n = 1, $attributes = array
/**
* displays a "next-page" link
*
- * @see pager_previous
+ * @param $text defines the name (or image) of the link
+ * @param $limit how many nodes are displayed per page
+ * @param $element distinguish between multiple pagers on one page
+ * @param $n how many pages we move back (defaults to 1)
+ * @param $attributes extra html attributes for \ (eg. title, onMouseOver, etc.)
+ *
+ * @return string html of this pager piece
*/
function pager_next($text, $limit, $element = 0, $n = 1, $attributes = array()) {
global $pager_from_array, $pager_total;
@@ -137,7 +210,12 @@ function pager_next($text, $limit, $element = 0, $n = 1, $attributes = array())
/**
* displays a "last-page" link
*
- * @see pager_previous
+ * @param $text defines the name (or image) of the link
+ * @param $limit how many nodes are displayed per page
+ * @param $element distinguish between multiple pagers on one page
+ * @param $attributes extra html attributes for \ (eg. title, onMouseOver, etc.)
+ *
+ * @return string html of this pager piece
*/
function pager_last($text, $limit, $element = 0, $attributes = array()) {
global $pager_from_array, $pager_total;
@@ -155,8 +233,11 @@ function pager_last($text, $limit, $element = 0, $attributes = array()) {
/**
* displays "%d through %d of $d" type detail about the cur page
*
- * @param string $format allows you to reword the format string
- * @see pager_previous
+ * @param $limit how many nodes are displayed per page
+ * @param $element distinguish between multiple pagers on one page
+ * @param $format allows you to reword the format string
+ *
+ * @return string html of this pager piece
*/
function pager_detail($limit, $element = 0, $format = "%d through %d of %d.") {
global $pager_from_array, $pager_total;
@@ -171,9 +252,13 @@ function pager_detail($limit, $element = 0, $format = "%d through %d of %d.") {
/**
* displays a list of nearby pages with additional nodes
*
- * @param int $quantity defines the length of the page list
- * @param string $text optional text to display before the page list
- * @see pager_previous
+ * @param $limit how many nodes are displayed per page
+ * @param $element distinguish between multiple pagers on one page
+ * @param $quantity defines the length of the page list
+ * @param $text optional text to display before the page list
+ * @param $attributes extra html attributes for \ (eg. title, onMouseOver, etc.)
+ *
+ * @return string html of this pager piece
*/
function pager_list($limit, $element = 0, $quantity = 5, $text = "", $attributes = array()) {
global $pager_from_array, $pager_total;
@@ -243,63 +328,7 @@ function pager_list($limit, $element = 0, $quantity = 5, $text = "", $attributes
return $output;
}
-
-
-/* ********************************************************************
- * QUERIES - call this instead of db_query() if you want your query to
- * support a pager.
- * ********************************************************************/
-
-/**
- * Use this function when doing select queries you wish to be able to page.
- * The pager uses LIMIT-based queries to fetch only the records required
- * to render a certain page. However, it has to learn the total number
- * of records returned by the query to (among others) compute the number
- * of pages (= number of all records / number of records per page). This
- * is done by inserting "COUNT(*)" in the original query, ie. by rewriting
- * the original query, say "SELECT nid, type FROM node WHERE status = '1'
- * ORDER BY static DESC, created DESC" to read "SELECT COUNT(*) FROM node
- * WHERE status = '1' ORDER BY static DESC, created DESC". Rewriting the
- * query is accomplished using a regular expression.
- *
- * Unfortunately, the rewrite rule does not always work as intended for
- * queries that (already) have a "COUNT(*)" or a "GROUP BY" clause, and
- * possibly for other complex queries. In those cases, you can optionally
- * pass a query that will be used to count the records.
- *
- * For example, if you want to page this query: "SELECT COUNT(*), TYPE FROM
- * node GROUP BY TYPE", pager_query() would invoke the wrong query, being:
- * "SELECT COUNT(*) FROM node GROUP BY TYPE". So instead, you should pass
- * "SELECT COUNT(DISTINCT(TYPE)) FROM node" as the optional $count_query
- * parameter.
- *
- * @param string $query the SQL query that needs paging
- * @param int $limit the number of rows per page
- * @param int $element optional attribute to distringuish between multiple pagers on one page
- * @param string $count_query an optional SQL query used to count records when rewriting the query would fail
- *
- * @return resource SQL query result
- */
-
-function pager_query($query, $limit = 10, $element = 0, $count_query = "") {
- global $pager_from_array, $pager_total;
- $from = $_GET["from"];
-
- // count the total number of records in this query:
- if ($count_query == "") {
- $pager_total[$element] = db_result(db_query(preg_replace(array("/SELECT.*FROM/i", "/ORDER BY .*/"), array("SELECT COUNT(*) FROM", ""), $query)));
-
- }
- else {
- $pager_total[$element] = db_result(db_query($count_query));
- }
-
- // convert comma separated $from to an array, used by other functions:
- $pager_from_array = explode(",", $from);
-
- return db_query_range($query, (int)$pager_from_array[$element], (int)$limit);
-
-}
+/* @} End of member group pager pieces */
function pager_link($from_new, $attributes = array()) {
$q = $_GET["q"];
diff --git a/includes/theme.inc b/includes/theme.inc
index 2c2c8dba3dff05a5d078e187defeb7cae93d2e2d..8d6f844683e68c7b180447b6ff269a501520233e 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -128,29 +128,6 @@ function theme_node($node, $main) {
return $output;
}
-function _theme_table_cell($cell, $header = 0) {
- if (is_array($cell)) {
- $data = $cell["data"];
- foreach ($cell as $key => $value) {
- if ($key != "data") {
- $attributes .= " $key=\"$value\"";
- }
- }
- }
- else {
- $data = $cell;
- }
-
- if ($header) {
- $output = " $data ";
- }
- else {
- $output = "$data ";
- }
-
- return $output;
-}
-
/**
Returns themed table.
@@ -331,7 +308,7 @@ function theme_head($main = 0) {
/**
Execute hook _footer() which is run at the end of the page right
- before the