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 .= " name | node types | operations |
\n";
while ($collection = db_fetch_object($result)) {
$output .= " ". check_output($collection->name) ." | ". check_output($collection->types) ." | cid\">edit collection |
\n";
}
$output .= "
\n";
$result = db_query("SELECT * FROM tag ORDER BY name");
$output .= "Meta-tag overview
";
$output .= "\n";
$output .= " name | collections | meta attributes | operations |
\n";
while ($tag = db_fetch_object($result)) {
$output .= " ". check_output($tag->name) ." | ". check_output($tag->collections) ." | ". check_output($tag->attributes) ." | tid\">edit tag |
\n";
}
$output .= "
\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();
}
}
?>