To be written. meta tags"; } return $links ? $links : array(); } function meta_form($type, $edit = array()) { $c = db_query("SELECT * FROM collection WHERE types LIKE '%". check_input($type) ."%'"); while ($collection = db_fetch_object($c)) { unset($array); $t = db_query("SELECT * FROM tag WHERE collections LIKE '%$collection->name%'"); while ($tag = db_fetch_object($t)) { if (strstr($edit[attributes], $tag->attributes)) { $edit[$collection->name] = $tag->attributes; } $array[$tag->attributes] = $tag->name; } $form .= form_select($collection->name, $collection->name, $edit[$collection->name], $array); } return $form; } function meta_save($type, $edit = array()) { $result = db_query("SELECT * FROM collection WHERE types LIKE '%". check_input($type) ."%'"); while ($collection = db_fetch_object($result)) { $array[] = $edit[$collection->name]; } return implode(", ", $array); } function meta_get_collection($cid) { return db_fetch_array(db_query("SELECT * FROM collection WHERE cid = '". check_input($cid) ."'")); } function meta_get_tag($tid) { return db_fetch_array(db_query("SELECT * FROM tag WHERE tid = '". check_input($tid) ."'")); } function meta_form_collection($edit = array()) { global $REQUEST_URI; $form .= form_textfield("Collection name", "name", $edit[name], 50, 64, "Required. The name for this group or collection of meta-tags. Example: 'Software'."); $form .= form_textfield("Types", "types", $edit[types], 50, 64, "Required. A comma-seperated list of node types you want to associate this collection with. Example: 'story, book'."); $form .= form_submit("Submit"); if ($edit[cid]) { $form .= form_submit(t("Delete")); $form .= form_hidden("cid", $edit[cid]); } return form($REQUEST_URI, $form); } function meta_form_tag($edit = array()) { global $REQUEST_URI; $form .= form_textfield("Meta-tag name", "name", $edit[name], 50, 64, "Required. The name for this meta-tag. Example: 'Apache'."); $form .= form_textfield("Attributes", "attributes", $edit[attributes], 50, 64, "Required. A comma-seperated list of keywords you want to associate this meta-tag with. Example: 'Computers, Software, Webservers'."); $form .= form_textfield("Collections", "collections", $edit[collections], 50, 64, "Required. A comma-seperated list of collections you want to associate this meta-tag with. Example: 'Section'."); $form .= form_submit("Submit"); if ($edit[tid]) { $form .= form_submit(t("Delete")); $form .= form_hidden("tid", $edit[tid]); } return form($REQUEST_URI, $form); } function meta_save_collection($edit) { if ($edit[cid] && $edit[name]) { db_query("UPDATE collection SET name = '". check_input($edit[name]) ."', types = '". check_input($edit[types]) ."' WHERE cid = '$edit[cid]'"); } else if ($edit[cid]) { db_query("DELETE FROM collection WHERE cid = '". check_input($edit[cid]) ."'"); } else { db_query("INSERT INTO collection (name, types) VALUES ('". check_input($edit[name]) ."', '". check_input($edit[types]) ."')"); } } function meta_save_tag($edit) { if ($edit[tid] && $edit[name]) { db_query("UPDATE tag SET name = '". check_input($edit[name]) ."', attributes = '". check_input($edit[attributes]) ."', collections = '". check_input($edit[collections]) ."' WHERE tid = '$edit[tid]'"); } else if ($edit[tid]) { db_query("DELETE FROM tag WHERE tid = '". check_input($edit[tid]) ."'"); } else { db_query("INSERT INTO tag (name, attributes, collections) VALUES ('". check_input($edit[name]) ."', '". check_input($edit[attributes]) ."', '". check_input($edit[collections]) ."')"); } } function meta_preview() { foreach (module_list() as $name) { if (module_hook($name, "status") && $name != "node") { $output .= "

". ucfirst($name) ." type

"; $output .= meta_form($name) ."
"; } } return form("", $output); } function meta_overview() { $result = db_query("SELECT * FROM collection ORDER BY name"); $output .= "

Collection overview

"; $output .= "\n"; $output .= " \n"; while ($collection = db_fetch_object($result)) { $output .= " \n"; } $output .= "
namenode typesoperations
". check_output($collection->name) ."". check_output($collection->types) ."cid\">edit collection
\n"; $result = db_query("SELECT * FROM tag ORDER BY name"); $output .= "

Meta-tag overview

"; $output .= "\n"; $output .= " \n"; while ($tag = db_fetch_object($result)) { $output .= " \n"; } $output .= "
namecollectionsmeta attributesoperations
". check_output($tag->name) ."". check_output($tag->collections) ."". check_output($tag->attributes) ."tid\">edit tag
\n"; return $output; } function meta_admin() { global $edit, $type, $op, $id; if (user_access("administer meta tags")) { print "add new collection | add new meta-tag | preview node forms | overview | help
\n"; switch ($op) { case "add": if ($type == "collection") print meta_form_collection(); else print meta_form_tag(); break; case "edit": if ($type == "collection") print meta_form_collection(meta_get_collection($id)); else print meta_form_tag(meta_get_tag($id)); break; case "help": print meta_help(); break; case "preview": print meta_preview(); break; case "Delete": $edit[name] = 0; // fall through: case "Submit": if ($type == "collection") print status(meta_save_collection($edit)); else print status(meta_save_tag($edit)); // fall through: default: print meta_overview(); } } else { print message_access(); } } ?>