blogroll your bookmark."); break; } return $output; } function blogroll_perm() { return array("maintain blogroll"); } function blogroll_access($op, $node) { global $user; if ($op == "view") { return $node->status; } if ($op == "create") { return user_access('maintain blogroll'); } if ($op == "update") { return user_access('maintain blogroll'); } if ($op == "delete") { return user_access('maintain blogroll'); } } function blogroll_link($type, $node = 0, $main) { global $user; $links = array(); if ($type == "system") { if (user_access("maintain blogroll")) { menu('blogroll', t('blogroll'), 'blogroll_page', 0, MENU_HIDE); menu("node/add/blogroll", t('blogroll'), 'node_page', 0); } } return $links; } function blogroll_form(&$node, &$error) { if (!$node['url']) $node['url'] = $_GET['url']; $output .= form_textfield(t('URL'), 'url', $node['url'], 60, 128, $error['url']); $output .= form_textfield(t('RSS or Atom Feed'), 'xml', $node['xml'], 60, 128, $error['xml'] ? $error['xml'] : '(todo : auto subscribe to feed)'); $output .= form_textarea(t('Description'), 'body', $node['body'], 60, 3, $error['body']); //$output .= form_select(t('Priority'), 'priority', $node['priority'] ? $node['priority'] : 50, drupal_map_assoc(array(5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95)),''); return $output; } function blogroll_add() { global $user; $edit = $_POST['edit']; $form .= form_textfield(t('Title'), 'title', $edit['title'] ? $edit['title'] : $_GET['title'], 60, 128, $error['url']); $form .= blogroll_form($edit,$error); $form .= form_hidden('uid',$user->uid); $form .= form_hidden('created',time()); $form .= form_hidden('type','blogroll'); $form .= form_submit(t('Add Blogroll')); $form .= form_button(t('Close'), "op", "button", array("onClick" => "window.close()")); $output = form($form); print theme('popup', $output, ''); } function blogroll_save() { $edit = $_POST['edit']; if (!$edit['title'] && !$edit['url']) return blogroll_add(); node_save(array2object($edit)); $header = array(t('name'),''); $rows[] = array(t('Title'),$edit['title']); $rows[] = array(t('URL'),$edit['url']); $rows[] = array(t('Feed'),$edit['xml']); $rows[] = array(t('Description'),$edit['body']); $output = theme('table', $header, $rows); $output .= form_button(t('Close'), "op", "button", array("onClick" => "window.close()")); print theme('popup', $output); } function blogroll_view() { $result = db_query("SELECT n.*, b.* FROM {node} n, {blogroll} b WHERE b.nid = n.nid AND n.type='blogroll'"); $header = array(t('title'),t('url')); while ($node = db_fetch_object($result)) { $rows[] = array(l($node->title, "admin/node/edit/$node->nid"),"url\">$node->url"); } $output .= theme('table', $header, $rows); print theme('page', $output); return; } function blogroll_page() { $op = $_POST['op'] ? $_POST['op'] : arg(1); switch ($op) { case 'add': blogroll_add(); return; case t('Add Blogroll'): blogroll_save(); return; default: blogroll_view(); return; } } function blogroll_insert($node) { db_query("INSERT INTO {blogroll} (nid, url, xml, priority) VALUES (%d, '%s', '%s', %d)", $node->nid, $node->url, $node->xml, $node->priority); } function blogroll_update($node) { db_query("UPDATE {blogroll} SET url = '%s', xml = '%s', priority = %d WHERE nid = %d", $node->url, $node->xml, $node->priority, $node->nid); } function blogroll_delete(&$node) { db_query("DELETE FROM {blogroll} WHERE nid = %d", $node->nid); } function blogroll_load($node) { return db_fetch_object(db_query("SELECT url, xml, priority FROM {blogroll} WHERE nid = %d", $node->nid)); } function blogroll_node_name($node) { return t('blogroll'); } function blogroll_block($op = "list", $delta = 0) { if ($op == "list") { $blocks[0]["info"] = t("Blogroll"); return $blocks; } $output = "