From b565d8e842a599ac1caf845591e50285bfaa989c Mon Sep 17 00:00:00 2001
From: TravisCarden <TravisCarden@236758.no-reply.drupal.org>
Date: Mon, 16 Apr 2012 22:16:25 -0500
Subject: [PATCH] Issue #467944: Changed module machine name to match project name.

---
 README.txt              |    4 +-
 seo_checklist.admin.inc |  333 +++++++++++++++++++++++++++++++++++++++++++++++
 seo_checklist.css       |   13 ++
 seo_checklist.info      |    5 +
 seo_checklist.install   |  210 +++++++++++++++++++++++++++++
 seo_checklist.module    |   89 +++++++++++++
 seochecklist.admin.inc  |  333 -----------------------------------------------
 seochecklist.css        |   13 --
 seochecklist.info       |    5 -
 seochecklist.install    |  210 -----------------------------
 seochecklist.module     |   89 -------------
 11 files changed, 652 insertions(+), 652 deletions(-)
 create mode 100644 seo_checklist.admin.inc
 create mode 100644 seo_checklist.css
 create mode 100644 seo_checklist.info
 create mode 100644 seo_checklist.install
 create mode 100644 seo_checklist.module
 delete mode 100644 seochecklist.admin.inc
 delete mode 100644 seochecklist.css
 delete mode 100644 seochecklist.info
 delete mode 100644 seochecklist.install
 delete mode 100644 seochecklist.module

diff --git a/README.txt b/README.txt
index 2a7ba98..2a5691c 100644
--- a/README.txt
+++ b/README.txt
@@ -32,7 +32,7 @@ need to follow a couple important steps:
    in the new files.
 2. Execute the following SQL in your site's database, making sure to prefix
    the 'system' table name if your site uses a table prefix:
-   UPDATE system SET name = 'seochecklist', filename = REPLACE(filename, 'SEOChecklist', 'seochecklist'), status = 1 WHERE type = 'module' AND name = 'SEOChecklist'
+   UPDATE system SET name = 'seo_checklist', filename = REPLACE(filename, 'SEOChecklist', 'seo_checklist'), status = 1 WHERE type = 'module' AND name = 'SEOChecklist'
 
 3. Make sure you run update.php immediately afterwards.
 
@@ -47,7 +47,7 @@ Summary:
 1. Download and extract the module package into your sites/all/modules directory.
 2. Go to admin/build/modules and enable the "SEO Checklist" module which should
    be in the 'Other' category.
-3. To start using the SEO Checklist, go to admin/settings/seochecklist. The
+3. To start using the SEO Checklist, go to admin/settings/seo-checklist. The
    module should automatically check if you have already installed any of the
    modules required for a task.
 4. Start checking off some tasks!
diff --git a/seo_checklist.admin.inc b/seo_checklist.admin.inc
new file mode 100644
index 0000000..c8591b6
--- /dev/null
+++ b/seo_checklist.admin.inc
@@ -0,0 +1,333 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Administrative page callbacks for the seo_checklist module.
+ */
+
+define('SEO_CHECKLIST_BOOK_PURCHASE', 'http://www.packtpub.com/drupal-6-search-engine-optimization-seo/mid/170909568gh3?utm_source=volacci.com%2F&utm_medium=affiliate&utm_content=authorsite&utm_campaign=mdb_000690');
+/**
+ * Define the settings form.
+ */
+
+
+function seo_checklist_admin_settings() {
+  global $user;
+  global $seo_checklist_items;
+  global $seo_checklist_groups;
+  
+  $seo_checklist_items = $seo_checklist_groups = array();
+  _seo_checklist_fill();
+  
+  $form['save_above'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+	'#weight' => '-100',
+  );
+  // Fetch modules and groups from database.
+  $group_id = 0;
+
+  // Vertical tab element.
+  $form['seo_checklist'] = array(
+    '#type' => 'vertical_tabs',
+  );
+
+  // Every group is a fieldset.
+  foreach ($seo_checklist_groups as $group_id=>$data) {
+    $form['group_' . $group_id] = array(
+      '#type' => 'fieldset',
+      '#title' => $data->name,
+      '#collapsible' => TRUE,
+      '#description' => $data->description,
+      '#group' => 'seo_checklist',
+
+    );
+  }
+
+  $res = db_select('seo_checklist', 'c')
+          ->fields('c', array('completed', 'id', 'uid'))
+          ->execute();
+  foreach ($res as $row) {
+    $seo_checklist_items[$row->id]->completed = $row->completed;
+    $seo_checklist_items[$row->id]->uid = $row->uid;
+  }
+  
+  foreach ($seo_checklist_items as $row) {
+    $row->links = array();
+    if (@$row->description) {
+      $row->links[] = $row->description;
+    }
+
+    if (@$row->completed) {
+      // Show when and who completed this task.
+      $row->links[] = t('Completed on %date by !username', array('%date' => format_date($row->completed, 'small'), '!username' => theme('username', array('account' => user_load($row->uid)))));
+    }
+    else {
+      $row->completed = 0;
+      // Show non-completed sub-tasks.
+      if ($row->download) {
+        $row->links[] = l(t('Download'), $row->download, array('attributes' => array('target' => '_blank')));
+      }
+      if ($row->enable) {
+        $row->links[] = l(t('Enable'), $row->enable);
+      }
+    }
+
+    if ($row->configure && (!$row->module || module_exists($row->module))) {
+      // Show the link to configure if this isn't a module or module is enabled.
+      $row->links[] = l(t('Configure'), $row->configure);
+    }
+
+    /*if (variable_get('seo_checklist_book_references', 1) && $page = seo_checklist_get_book_references($row->id)) {
+      $row->links[] = t('See <a href="@book-purchase">Drupal 6 SEO</a> p. @page', array('@page' => $page, '@book-purchase' => SEO_CHECKLIST_BOOK_PURCHASE));
+    }*/
+
+    $form['group_' . $row->group_id]['seo_checklist_task_' . $row->id] = array(
+      '#type' => 'checkbox',
+      '#title' => t($row->name),
+      '#default_value' => $row->completed || ($row->module && module_exists($row->module)),
+      '#description' => join(' | ', $row->links),
+    );
+    if (strpos($row->name, 'Clean URLs') === 0) {
+      $form['group_' . $row->group_id]['seo_checklist_task_' . $row->id]['#disabled'] = !variable_get('clean_url', 0);
+      $form['group_' . $row->group_id]['seo_checklist_task_' . $row->id]['#default_value'] |= variable_get('clean_url', 0);
+    }
+  }
+
+  $form['save'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#weight' => 100,
+  );
+
+
+  $form['save_above']['#attributes']['class'][] = 'js-hide';
+
+  return $form;
+}
+
+/**
+ * Submit callback for seo_checklist_admin_settings().
+ */
+function seo_checklist_admin_settings_submit($form, &$form_state) {
+  global $user;
+
+  $count = 0;
+  foreach ($form_state['values'] as $key => $value) {
+    if (preg_match('/seo_checklist_task_/', $key)) {
+      $key = explode('_', $key);
+      $key = $key[2];
+      $current = db_query("SELECT completed FROM {seo_checklist} WHERE id = :id", array(':id' => $key))->fetchField();
+      if ($current === FALSE) {
+        db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :completed, :uid)", array(':completed' => ($value ? time() : 0), ':uid' => $user->uid, ':id' => $key));
+        if ($value == TRUE) {
+          $count++;
+        }
+      } 
+      elseif ((bool)$current != $value) {
+        // If the checkbox changed states, update the record.
+        db_query("UPDATE {seo_checklist} SET completed = :completed, uid = :uid WHERE id = :id", array(':completed' => ($value ? time() : 0), ':uid' => $user->uid, ':id' => $key));
+        $count++;
+      }
+    }
+  }
+
+  variable_set('seo_checklist_link', $form_state['values']['seo_checklist_task_66']);
+  
+  drupal_set_message(format_plural($count, 'Updated @count task successfully.', 'Updated @count tasks successfully.'));
+}
+
+
+function _seo_checklist_item_insert($id, $name, $module = '', $options = array()) {
+  global $seo_checklist_items;
+  global $seo_checklist_groups;
+  
+  if (is_array($name)) {
+    $t = array_shift($name);
+    $name_text = t($t, $name);
+  } 
+  else {
+    $name_text = t($name);
+  }
+
+  if ($module) {
+    if (!isset($options['download'])) {
+      $options['download'] = 'http://drupal.org/project/' . $module;
+    }
+    if (!isset($options['enable'])) {
+      $options['enable'] = 'admin/modules';
+    }
+  }
+  
+  $description_text = '';
+  if (isset($options['description'])) {
+    if (is_array($options['description'])) {
+      $t = array_shift($options['description']);
+      $description_text = t($t, $options['description']);
+    } 
+    else {
+      $description_text = t($options['description']);
+    }
+  }
+  
+  $group_id = count($seo_checklist_groups) - 1;
+  $seo_checklist_items[$id] = (object)array(
+      'id' => $id,
+      'group_id' => $group_id,
+      'name' => $name_text,
+      'module' => $module,
+      'download' => @$options['download'],
+      'enable' => @$options['enable'],
+      'configure' => @$options['configure'],
+      'description' => $description_text,
+  );
+}
+
+function _seo_checklist_group_insert($name, $description = '') {
+  global $seo_checklist_groups;
+  
+  if (is_array($name)) {
+    $t = array_shift($name);
+    $name_text = t($t, $name);
+  } 
+  else {
+    $name_text = t($name);
+  }
+
+  if (is_array($description)) {
+    $t = array_shift($description);
+    $description_text = t($t, $description);
+  } 
+  else {
+    $description_text = t($description);
+  }
+  
+  $seo_checklist_groups[] = (object)array(
+      'name' => $name_text,
+      'description' => $description_text,
+  );
+}
+
+function _seo_checklist_fill() {
+    // Page title tasks
+  _seo_checklist_group_insert('Page Titles', 'The single most important thing you can do for on-site SEO.');
+  _seo_checklist_item_insert(41, 'Token (required for other modules to function. Warning: Use beta modules at your own risk.)', 'token');
+  _seo_checklist_item_insert(1, 'Page Title Module. Warning: Use beta modules at your own risk.', 'page_title', array('configure' => 'admin/config/search/page-title'));
+
+  // URL tasks
+  _seo_checklist_group_insert('URL paths', 'The second most important thing you can do.');
+  _seo_checklist_item_insert(2, 'Clean URLs - Activate (Usually automatic. Please double-check!)', '', array('configure' => 'admin/config/search/clean-urls'));
+  _seo_checklist_item_insert(5, 'Pathauto Module', 'pathauto', array('configure' => 'admin/config/search/path/patterns'));
+  _seo_checklist_item_insert(6, 'Global Redirect Module', 'globalredirect');
+  _seo_checklist_item_insert(38, 'Redirect Module', 'redirect', array('configure' => 'admin/config/search/redirect/settings'));
+
+  // Search engine account tasks
+  _seo_checklist_group_insert('Create Search Engine Accounts', 'Set yourself up with the search engines.');
+  _seo_checklist_item_insert(7, array('Get a Google Account - You will need this for several of the steps that follow - <a href="@url">@url</a>', '@url' => 'https://www.google.com/accounts/NewAccount'));
+  //_seo_checklist_item_insert(8, array('Get a Yahoo Account - You will need this for steps that follow - <a href="@url">@url</a>', '@url' => 'http://www.yahoo.com/r/m7'));
+  _seo_checklist_item_insert(44, array('Get a Windows Live ID - You will need this for steps that follow - <a href="@url">@url</a>', '@url' => 'https://signup.live.com/'));
+
+  // Visitor tracking tasks
+  _seo_checklist_group_insert('Track your visitors', 'Know where your visitors are coming from and what they do while visiting your site.');
+  _seo_checklist_item_insert(9, 'Google Analytics Module', 'googleanalytics', array('download' => 'http://drupal.org/project/google_analytics', 'configure' => 'admin/config/system/googleanalytics'));
+  _seo_checklist_item_insert(10, array('Sign in to your Google Analytics Account - <a href="@url">@url</a>', '@url' => 'http://www.google.com/analytics'));
+  _seo_checklist_item_insert(11, 'Create an Analytics for your website');
+  _seo_checklist_item_insert(12, 'Paste Google Analytics code into Google Analytics Module');
+  _seo_checklist_item_insert(13, 'Authenticate your site with Google Analytics');
+  _seo_checklist_item_insert(63, 'Google Analytics Tokenizer', 'ga_tokenizer');
+  _seo_checklist_item_insert(64, 'Google Analytics Contact Form, Webform, Rules Email. Warning: Use beta modules at your own risk.', 'contact_google_analytics', array('configure' => 'admin/config/contact-google-analytics'));
+  _seo_checklist_item_insert(65, 'Context Keywords', 'context_keywords');
+
+  // Page content tasks
+  _seo_checklist_group_insert('Page content', 'Take control of your page content.');
+  //_seo_checklist_item_insert(15, 'Meta Tags Module (AKA Nodewords)', 'nodewords', array('configure' => 'admin/content/nodewords'));
+  
+  _seo_checklist_item_insert(71, 'Meta tags', 'metatag');
+  _seo_checklist_item_insert(15, 'Meta tags quick', 'metatags_quick', array('configure' => 'admin/structure/metatags_quick'));
+  _seo_checklist_item_insert(16, 'Scheduler Module', 'scheduler', array('configure' => 'admin/config/content/scheduler/default'), 3);
+  _seo_checklist_item_insert(17, 'HTML Purifier Module. Warning: Use DEV modules at your own risk.', 'htmlpurifier', array('configure' => 'admin/settings/filters/1'));
+  _seo_checklist_item_insert(45, array('<a href="/sites/all/modules/htmlpurifier/INSTALL.txt">READ THE INSTALL INSTRUCTIONS!</a> then Download HTML Purifier. You will need
+    3.1.0rc1 or later. - <a href="@url">@url</a>', '@url' => 'http://htmlpurifier.org/'));
+  _seo_checklist_item_insert(18, 'Search 404 Module', 'search404', array('configure' => 'admin/config/search/search404'));
+  
+  _seo_checklist_item_insert(57, 'SEO Compliance Checker', 'seo_checker', array('configure' => 'admin/config/content/seo_checker'));
+  _seo_checklist_item_insert(62, 'Read More Link. Warning: Use DEV modules at your own risk.', 'read_more', array('configure' => 'admin/config/content/read_more'));
+            
+  
+  // Source code tasks
+  _seo_checklist_group_insert('Clean code', 'Well written markup is very important to the search engine spiders.');
+  _seo_checklist_item_insert(19, array('Validate your site - <a href="@url">@url</a>', '@url' => 'http://validator.w3.org/'));
+  _seo_checklist_item_insert(20, array('Check your links - <a href="@url">@url</a>', '@url' => 'http://validator.w3.org/checklink'));
+
+  // XML sitemap tasks
+  _seo_checklist_group_insert('Submit your Site to the search engines.', 'Now that you\'ve got your site ready for the search engines, tell them about it!');
+  _seo_checklist_item_insert(47, 'Site Verification Module', 'site_verify', array('configure' => 'admin/config/search/verifications'));
+  _seo_checklist_item_insert(21, 'XML Sitemap Module', 'xmlsitemap', array('configure' => 'admin/config/search/xmlsitemap'));
+  _seo_checklist_item_insert(46, 'Site Map Module - a plain text sitemap. Warning: Use beta modules at your own risk.', 'site_map', array('configure' => 'admin/config/search/sitemap'));
+  _seo_checklist_item_insert(22, array('Login to Google Webmaster Tools - <a href="@url">@url</a>', '@url' => 'http://www.google.com/webmasters/tools'));
+  _seo_checklist_item_insert(23, 'Authenticate your site with Google (page 26)');
+  _seo_checklist_item_insert(24, array('Submit your XML Sitemap to Google - <a href="@url">@url</a>', '@url' => 'http://www.google.com/webmasters/sitemaps/'));
+  //_seo_checklist_item_insert(25, array('Login to Yahoo Site Explorer Account - <a href="@url">@url</a>', '@url' => 'https://siteexplorer.search.yahoo.com/'));
+  //_seo_checklist_item_insert(26, 'Authenticate your site with Yahoo');
+  //_seo_checklist_item_insert(27, array('Submit your XML Sitemap to Yahoo - <a href="@url">@url</a>', '@url' => 'https://siteexplorer.search.yahoo.com/submit'));
+  _seo_checklist_item_insert(42, array('Login to Bing - <a href="@url">@url</a>', '@url' => 'http://www.bing.com/webmaster/'));
+  _seo_checklist_item_insert(43, 'Authenticate your site with Bing');
+  _seo_checklist_item_insert(28, array('Submit your XML Sitemap to Bing - <a href="@url">@url</a>', '@url' => 'http://www.bing.com/webmaster/submitsitepage.aspx'));
+  _seo_checklist_item_insert(29, array('If appropriate, submit your company to Google Local Business Center - <a href="@url">@url</a>', '@url' => 'https://www.google.com/local/add/login'));
+
+  // Social links tasks
+  _seo_checklist_group_insert('Social Media', 'Using Social news sites, blogs, etc? Consider these:');
+  //_seo_checklist_item_insert(30, 8, 'Digg This Module', 'diggthis', 'http://drupal.org/project/diggthis', 'admin/modules', 'admin/settings/diggthis', 1);
+  _seo_checklist_item_insert(30, 'AddThis. Warning: Use beta modules at your own risk.', 'addthis', array('configure' => 'admin/settings/addthis'));
+  _seo_checklist_item_insert(31, 'Service Links Module', 'service_links', array('configure' => 'admin/config/services/service-links'));
+  //_seo_checklist_item_insert(32, 8, 'Trackback Module', 'trackback', 'http://drupal.org/project/trackback', 'admin/modules', 'admin/settings/trackback', 3);
+  //_seo_checklist_item_insert(48, 8, 'Activity Stream Module', 'activitystream', 'http://drupal.org/project/activitystream', 'admin/modules', '', 4);
+  _seo_checklist_item_insert(49, 'Add to Any Module', 'addtoany', array('configure' => 'admin/config/system/addtoany'));
+  _seo_checklist_item_insert(58, 'Facebook social plugins integration. Warning: Use DEV modules at your own risk.', 'fb_social', array('configure' => 'admin/config/fb_social'));
+  _seo_checklist_item_insert(59, 'Follow', 'follow', array('configure' => 'admin/config/services/follow'));
+  
+  
+
+  // Spam tasks
+  _seo_checklist_group_insert('Protect your site from Spam', 'If your site will get heavy use from visitors creating accounts, commenting and/or creating content then consider these. NOTE: Most sites just need Mollom. The other modules are here in case Mollom does not work for you for some reason.');
+  _seo_checklist_item_insert(40, array('HIGHLY RECOMMENDED: Sign up for Mollom\'s free service and get Mollom code - <a href="@url">@url</a>', '@url' => 'http://mollom.com/user/register'));
+  _seo_checklist_item_insert(39, 'HIGHLY RECOMMENDED: Mollom Module', 'mollom', array('configure' => 'admin/config/content/mollom/settings'));
+  _seo_checklist_item_insert(33, 'Captcha Module. Warning: Use alpha modules at your own risk.', 'captcha', array('configure' => 'admin/config/people/captcha'));
+  _seo_checklist_item_insert(34, 'Antispam Module', 'antispam', array('configure' => 'admin/config/antispam'));
+  //_seo_checklist_item_insert(36, 9, 'Spam Module', 'spam', 'http://drupal.org/project/spam', 'admin/modules', 'admin/settings/spam', 4);
+
+  // Geographic tasks
+  _seo_checklist_group_insert('Geographic', '');
+  //_seo_checklist_item_insert(50, 10, 'hCard Module', 'hcard', 'http://drupal.org/project/hcard', 'admin/modules', '', 1);
+  _seo_checklist_item_insert(51, 'Use the Meta Tags module to add geo meta tags to your site.');
+
+  // Optional (but helpful) tasks
+  _seo_checklist_group_insert('Optional (but helpful)', '');
+  //_seo_checklist_item_insert(52, 11, 'Vertical Tabs Module', 'vertical_tabs', 'http://drupal.org/project/vertical_tabs', 'admin/modules', '', 1);
+  _seo_checklist_item_insert(53, 'Administration Menu. Warning: RC.', 'admin_menu', array('configure' => 'admin/config/administration/admin_menu'));
+  _seo_checklist_item_insert(60, 'Elements', 'elements');
+  _seo_checklist_item_insert(61, 'Security Review', 'security_review', array('configure' => 'admin/reports/security-review'));
+  _seo_checklist_item_insert(72, 'Module Filter', 'module_filter', array('configure' => 'admin/config/user-interface/modulefilter'));
+                
+  // Performance tasks
+  _seo_checklist_group_insert('Performance', '');
+  _seo_checklist_item_insert(54, 'Turn on Drupal\'s built in caching.', '', array('configure' => 'admin/config/development/performance'));
+  _seo_checklist_item_insert(55, 'Boost Module. Warning: Use DEV modules at your own risk.', 'boost', array('configure' => 'admin/settings/performance/boost'));
+  //_seo_checklist_item_insert(56, 12, 'Authcache Module', 'authcache', 'http://drupal.org/project/authcache', 'admin/modules', '', 3);
+
+  _seo_checklist_group_insert('Extras', '');
+  _seo_checklist_item_insert(73, array('Download free internet marketing whitepapers from Volacci - <a href="@url">@url</a>', '@url' => 'http://www.volacci.com/free-whitepapers'));
+  _seo_checklist_item_insert(66, 'Link to Volacci to thank them for this awesome module.', '', array('description' => 'A small link will appear at the very bottom of your website. You can disable it at any time by un-checking this box. We really appreciate it!'));
+  _seo_checklist_item_insert(67,
+          array('Send us feedback on the Drupal 7 SEO Checklist module or just say <em>Thanks!</em> and we will link to you from our website. Send your feedback and link information to <a href="mailto:@email">@email</a>.', '@email' => 'seochecklist@volacci.com'), '',
+          array('description' => array('If you do not know why you should link with other websites, read the following article: <a href="@link">Why links help SEO</a>.', '@link' => 'http://www.volacci.com/why-links-help-seo')));
+  _seo_checklist_item_insert(68, array('Listen to the <a href="@podcast">Volacci Drupal SEO Podcast</a> for more tips and tricks about Drupal SEO.', '@podcast' => 'http://www.volacci.com/podcast'));
+  _seo_checklist_item_insert(69,
+          array('Include page number references from the <a href="@book">Drupal 6 SEO Book</a> by Ben Finklea.', '@book' => 'http://www.drupalseobook.com/'), '',
+          array('description' => array('<a href="@book-purchase">Purchase from Packt Publishing</a>', '@book-purchase' => SEO_CHECKLIST_BOOK_PURCHASE)));
+  _seo_checklist_item_insert(70, array('Buy Drupal 6 Search Engine Optimization by Ben Finklea from <a href="@amazon">Amazon</a> or <a href="@packt">Packt</a>.', '@amazon' => 'http://www.amazon.com/gp/product/1847198228?ie=UTF8&tag=dvdcentral02&linkCode=as2&camp=1789&creative=390957&creativeASIN=1847198228', '@packt' => 'https://www.packtpub.com/drupal-6-search-engine-optimization-seo/book?mid/170909568gh3'));
+  _seo_checklist_item_insert(76, array('Watch a Video Tutorial on Drupal SEO from Lullabot - <a href="@link">@link</a>', '@link' => 'http://drupalize.me/videos/introduction-drupal-seo'));
+ 
+
+}
\ No newline at end of file
diff --git a/seo_checklist.css b/seo_checklist.css
new file mode 100644
index 0000000..20dd09a
--- /dev/null
+++ b/seo_checklist.css
@@ -0,0 +1,13 @@
+/* $Id$ */
+
+div.seo_checklist_item {
+  clear:both;
+}
+
+div.seo_checklist_item div,
+div.seo_checklist_item label,
+div.seo_checklist_item p {
+  display:inline;
+  margin-bottom:0;
+  margin-top:0;
+}
\ No newline at end of file
diff --git a/seo_checklist.info b/seo_checklist.info
new file mode 100644
index 0000000..8a46bfc
--- /dev/null
+++ b/seo_checklist.info
@@ -0,0 +1,5 @@
+; $Id$
+name = SEO Checklist
+description = A Search Engine Optimization checklist for Drupal.
+core = 7.x
+configure = admin/config/search/seo-checklist
\ No newline at end of file
diff --git a/seo_checklist.install b/seo_checklist.install
new file mode 100644
index 0000000..14033ae
--- /dev/null
+++ b/seo_checklist.install
@@ -0,0 +1,210 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Install, update and uninstall functions for the seo_checklist module.
+ */
+
+/**
+ * Implementation of hook_schema().
+ */
+function seo_checklist_schema() {
+  $schema['seo_checklist'] = array(
+    'description' => 'seo_checklist',
+    'fields' => array(
+      'id' => array(
+        'type' => 'serial',
+        'size' => 'tiny',
+        'not null' => TRUE,
+        'description' => 'id',
+      ),
+      'completed' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => 'UNIX timestamp of when this task was completed, or 0 if the task has not yet been completed.',
+      ),
+      'uid' => array(
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => 'The {user}.uid of the account that completed this task.',
+      ),
+    ),
+    'primary key' => array('id'),
+  );
+  return $schema;
+}
+
+
+/**
+ * Implementation of hook_install().
+ */
+function seo_checklist_install() {
+  global $user;
+  menu_rebuild();
+  db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 69, ':time' => time(), ':uid' => $user->uid));
+}
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function seo_checklist_uninstall() {
+  //drupal_uninstall_schema('seo_checklist');
+  variable_del('seo_checklist_link');
+  variable_del('seo_checklist_thanks');
+  variable_del('seo_checklist_podcast');
+  variable_del('seo_checklist_book_references');
+}
+
+/**
+ * Update from 6.x-1.x to 6.x-2.x.
+ */
+function seo_checklist_update_6001() {
+  $ret = array();
+
+  $linked_seo = db_query("SELECT linked_seo FROM {seo_checklist} ORDER BY id DESC LIMIT 1")->fetchField();
+  //$result = db_fetch_object($query);
+  variable_set('seo_checklist_link', intval($linked_seo));
+
+  $result = db_query("SELECT extra2, extra3 FROM {seo_checklist} WHERE id = 1")->fetchObject();
+  variable_set('seo_checklist_thanks', intval($result->extra2));
+  variable_set('seo_checklist_podcast', intval($result->extra3));
+
+  db_drop_field('seo_checklist', 'extra2');
+  db_drop_field('seo_checklist', 'extra3');
+  db_drop_field('seo_checklist', 'linked_seo');
+  db_drop_field('seo_group', 'subgroup');
+  db_drop_table('seo_subgroup');
+
+  //return $ret;
+}
+
+/**
+ * Fix the link in the clean URL task.
+ */
+function seo_checklist_update_6202() {
+  $ret = array();
+  $ret[] = update_sql("UPDATE {seo_checklist} SET name = 'Clean URLs - Activate (Usually automatic. Please double-check!)', configure = 'admin/settings/clean-urls' WHERE id = 2");
+  //return $ret;
+}
+
+/**
+ * Update from Live to Bing and fix links.
+ */
+function seo_checklist_update_6203() {
+  $ret = array();
+  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Get a Windows Live ID - You will need this for steps that follow - <a href=\"https://signup.live.com/\">https://signup.live.com/</a>' WHERE id = 44");
+  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Login to Bing - <a href=\"http://www.bing.com/webmaster/\">http://www.bing.com/webmaster/</a>', order_id = 17 WHERE id = 42");
+  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Authenticate your site with Bing', order_id = 19 WHERE id = 43");
+  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Submit your XML Sitemap to Bing - <a href=\"http://www.bing.com/webmaster/WebmasterAddSitesPage.aspx\">http://webmaster.live.com/webmaster/WebmasterAddSitesPage.aspx</a>', order_id = 21 WHERE id = 28");
+  $ret[] = db_query("UPDATE {seo_checklist} SET module = 'xmlsitemap' WHERE id = 21");
+  //return $ret;
+}
+
+/**
+ * Convert the date_changed and option_checked fields into one UNIX completed
+ * field.
+ */
+function seo_checklist_update_6204() {
+  $ret = array();
+
+  db_add_field('seo_checklist', 'completed', array(
+    'type' => 'int',
+    'unsigned' => TRUE,
+    'not null' => TRUE,
+    'default' => 0,
+    'description' => 'UNIX timestamp of when this task was completed.',
+  ));
+
+  $query = db_query("SELECT id, date_changed FROM {seo_checklist} WHERE option_checked <> 0");
+  foreach ($query as $record) {
+    $record->changed = strtotime($record->date_changed);
+    if (!$record->changed) {
+      $record->changed = time();
+    }
+    $ret[] = db_query("UPDATE {seo_checklist} SET completed = {$record->changed} WHERE id = {$record->id}");
+  }
+
+  db_drop_field('seo_checklist', 'date_changed');
+  db_drop_field('seo_checklist', 'option_checked');
+  db_drop_field('seo_checklist', 'checked_module');
+
+  //return $ret;
+}
+
+/**
+ * Remove the {seo_checklist}.subgroup_id field and add {seo_checklist}.uid.
+ */
+function seo_checklist_update_6205() {
+  $ret = array();
+  db_drop_field('seo_checklist', 'subgroup_id');
+  db_add_field('seo_checklist', 'uid', array(
+    'type' => 'int',
+    'unsigned' => TRUE,
+    'not null' => TRUE,
+    'default' => 0,
+    'description' => 'The {user}.uid of the account that completed this task.',
+  ));
+  $ret[] = db_query("UPDATE {seo_checklist} SET module = LOWER(module)");
+  //return $ret;
+}
+
+/**
+ * Fixed the link to Google Local Business Center.
+ */
+function seo_checklist_update_6206() {
+  $ret = array();
+  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'If appropriate, submit your company to Google Local Business Center - <a href=\"https://www.google.com/local/add/login\">https://www.google.com/local/add/login</a>' WHERE id = 29");
+  //return $ret;
+}
+
+function seo_checklist_update_6207() {
+  $ret = array();
+  $ret[] = db_query("UPDATE {seo_group} SET name = 'Social Media' WHERE id = 8");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (47, 7, 'Site Verification Module', 'site_verify', 'http://drupal.org/project/site_verify', 'admin/modules', '', 0)");
+  $ret[] = db_query("INSERT INTO {seo_group} VALUES (10, 'Geographic', '')");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (50, 10, 'hCard Module', 'hcard', 'http://drupal.org/project/hcard', 'admin/modules', '', 1)");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (51, 10, 'Use the Meta Tags module to add geo meta tags to your site.', '', '', '', '', 2)");
+  $ret[] = db_query("INSERT INTO {seo_group} VALUES (11, 'Optional (but helpful)', '')");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (52, 11, 'Vertical Tabs Module', 'vertical_tabs', 'http://drupal.org/project/vertical_tabs', 'admin/modules', '', 1)");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (53, 11, 'Administration Menu', 'admin_menu', 'http://drupal.org/project/admin_menu', 'admin/modules', '', 2)");
+  $ret[] = db_query("INSERT INTO {seo_group} VALUES (12, 'Performance', '')");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (54, 12, 'Turn on Drupal\'s built in caching.', '', '', '', 'admin/settings/performance/default', 1)");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (55, 12, 'Boost Module', 'boost', 'http://drupal.org/project/boost', 'admin/modules', 'admin/settings/performance/boost', 2)");
+  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (56, 12, 'Authcache Module', 'authcache', 'http://drupal.org/project/authcache', 'admin/modules', '', 3)");
+  //return $ret;
+}
+
+
+function seo_checklist_update_6301() {
+  global $user;
+  db_drop_table('seo_group');
+  db_drop_field('seo_checklist', 'group_id'); 
+  db_drop_field('seo_checklist', 'name'); 
+  db_drop_field('seo_checklist', 'module'); 
+  db_drop_field('seo_checklist', 'download'); 
+  db_drop_field('seo_checklist', 'enable'); 
+  db_drop_field('seo_checklist', 'configure'); 
+  db_drop_field('seo_checklist', 'order_id'); 
+  if (variable_get('seo_checklist_link', FALSE)) {
+    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 66, ':time' => time(), ':uid' => $user->uid));
+  }
+  if (variable_get('seo_checklist_thanks', FALSE)) {
+    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 67, ':time' => time(), ':uid' => $user->uid));
+  }
+  if (variable_get('seo_checklist_podcast', FALSE)) {
+    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 68, ':time' => time(), ':uid' => $user->uid));
+  }
+  if (variable_get('seo_checklist_book_references', FALSE)) {
+    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 69, ':time' => time(), ':uid' => $user->uid));
+  }
+  
+  //variable_del('seo_checklist_link');
+  variable_del('seo_checklist_thanks');
+  variable_del('seo_checklist_podcast');
+  variable_del('seo_checklist_book_references');
+}
\ No newline at end of file
diff --git a/seo_checklist.module b/seo_checklist.module
new file mode 100644
index 0000000..6ebde2d
--- /dev/null
+++ b/seo_checklist.module
@@ -0,0 +1,89 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * SEO Checklist module allows users to track important SEO techniques on the website.
+ */
+
+/**
+ * Implementation of hook_help().
+ */
+function seo_checklist_help($path, $arg) {
+  if ($path == 'admin/config/search/seo-checklist') {
+    //image not found, commenting the banner
+    return l('<img width=700 height=100 src="http://www.volacci.com/linkcodes/seo-checklist-banner-7.png">', 'http://www.volacci.com/lp/drupal-seo-checklist-7', array('html' => TRUE)) .
+      '<p>' . t('Check off each SEO-related task as you complete it. Do not forget to click the <em>Save</em> button!') . '</p>';
+  }
+}
+
+/**
+ * Implementation of hook_permission().
+ */
+function seo_checklist_permission() {
+  return array(
+    'access seo checklist content' => array(
+      'title' => t('Access SEO Checklist Content'),
+      'description' => t('Access to SEO Checklist.'),
+    ),
+  );
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function seo_checklist_menu() {
+  $items['admin/config/search/seo-checklist'] = array(
+    'title' => 'SEO Checklist',
+    'description' => 'Keep track of your Drupal Search Engine Optimization tasks.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('seo_checklist_admin_settings'),
+    'access arguments' => array('access seo checklist content'),
+    'file' => 'seo_checklist.admin.inc',
+  );
+  return $items;
+}
+
+/**
+ * Implementation of hook_page_alter().
+ */
+
+function seo_checklist_page_alter(&$page) {
+  if (variable_get('seo_checklist_link', 0)) {
+    $page['page_bottom']['devel']= array(
+      '#type' => 'markup',
+      '#markup' => '<div align="center"><a href="http://www.volacci.com/" target="_blank">Drupal SEO</a></div>',
+    );
+  }
+}
+
+//hide references to D6 book
+/*
+function seo_checklist_get_book_references($tid) {
+  $references = array(
+    1 => 59,
+    39 => 59,
+    2 => 68,
+    6 => 83,
+    5 => 72,
+    7 => 20,
+    9 => 23,
+    10 => 22,
+    11 => 22,
+    12 => 23,
+    13 => 26,
+    15 => 96,
+    16 => 182,
+    17 => 201,
+    18 => 18,
+    19 => 148,
+    21 => 109,
+    46 => 125,
+    24 => 118,
+    40 => 205,
+    39 => 205,
+  );
+
+  return isset($references[$tid]) ? $references[$tid] : NULL;
+}
+*/
diff --git a/seochecklist.admin.inc b/seochecklist.admin.inc
deleted file mode 100644
index c3c015c..0000000
--- a/seochecklist.admin.inc
+++ /dev/null
@@ -1,333 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * Administrative page callbacks for the seochecklist module.
- */
-
-define('SEOCHECKLIST_BOOK_PURCHASE', 'http://www.packtpub.com/drupal-6-search-engine-optimization-seo/mid/170909568gh3?utm_source=volacci.com%2F&utm_medium=affiliate&utm_content=authorsite&utm_campaign=mdb_000690');
-/**
- * Define the settings form.
- */
-
-
-function seochecklist_admin_settings() {
-  global $user;
-  global $seochecklist_items;
-  global $seochecklist_groups;
-  
-  $seochecklist_items = $seochecklist_groups = array();
-  _seochecklist_fill();
-  
-  $form['save_above'] = array(
-    '#type' => 'submit',
-    '#value' => t('Save'),
-	'#weight' => '-100',
-  );
-  // Fetch modules and groups from database.
-  $group_id = 0;
-
-  // Vertical tab element.
-  $form['seochecklist'] = array(
-    '#type' => 'vertical_tabs',
-  );
-
-  // Every group is a fieldset.
-  foreach ($seochecklist_groups as $group_id=>$data) {
-    $form['group_' . $group_id] = array(
-      '#type' => 'fieldset',
-      '#title' => $data->name,
-      '#collapsible' => TRUE,
-      '#description' => $data->description,
-      '#group' => 'seochecklist',
-
-    );
-  }
-
-  $res = db_select('seo_checklist', 'c')
-          ->fields('c', array('completed', 'id', 'uid'))
-          ->execute();
-  foreach ($res as $row) {
-    $seochecklist_items[$row->id]->completed = $row->completed;
-    $seochecklist_items[$row->id]->uid = $row->uid;
-  }
-  
-  foreach ($seochecklist_items as $row) {
-    $row->links = array();
-    if (@$row->description) {
-      $row->links[] = $row->description;
-    }
-
-    if (@$row->completed) {
-      // Show when and who completed this task.
-      $row->links[] = t('Completed on %date by !username', array('%date' => format_date($row->completed, 'small'), '!username' => theme('username', array('account' => user_load($row->uid)))));
-    }
-    else {
-      $row->completed = 0;
-      // Show non-completed sub-tasks.
-      if ($row->download) {
-        $row->links[] = l(t('Download'), $row->download, array('attributes' => array('target' => '_blank')));
-      }
-      if ($row->enable) {
-        $row->links[] = l(t('Enable'), $row->enable);
-      }
-    }
-
-    if ($row->configure && (!$row->module || module_exists($row->module))) {
-      // Show the link to configure if this isn't a module or module is enabled.
-      $row->links[] = l(t('Configure'), $row->configure);
-    }
-
-    /*if (variable_get('seo_checklist_book_references', 1) && $page = seochecklist_get_book_references($row->id)) {
-      $row->links[] = t('See <a href="@book-purchase">Drupal 6 SEO</a> p. @page', array('@page' => $page, '@book-purchase' => SEOCHECKLIST_BOOK_PURCHASE));
-    }*/
-
-    $form['group_' . $row->group_id]['seochecklist_task_' . $row->id] = array(
-      '#type' => 'checkbox',
-      '#title' => t($row->name),
-      '#default_value' => $row->completed || ($row->module && module_exists($row->module)),
-      '#description' => join(' | ', $row->links),
-    );
-    if (strpos($row->name, 'Clean URLs') === 0) {
-      $form['group_' . $row->group_id]['seochecklist_task_' . $row->id]['#disabled'] = !variable_get('clean_url', 0);
-      $form['group_' . $row->group_id]['seochecklist_task_' . $row->id]['#default_value'] |= variable_get('clean_url', 0);
-    }
-  }
-
-  $form['save'] = array(
-    '#type' => 'submit',
-    '#value' => t('Save'),
-    '#weight' => 100,
-  );
-
-
-  $form['save_above']['#attributes']['class'][] = 'js-hide';
-
-  return $form;
-}
-
-/**
- * Submit callback for seochecklist_admin_settings().
- */
-function seochecklist_admin_settings_submit($form, &$form_state) {
-  global $user;
-
-  $count = 0;
-  foreach ($form_state['values'] as $key => $value) {
-    if (preg_match('/seochecklist_task_/', $key)) {
-      $key = explode('_', $key);
-      $key = $key[2];
-      $current = db_query("SELECT completed FROM {seo_checklist} WHERE id = :id", array(':id' => $key))->fetchField();
-      if ($current === FALSE) {
-        db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :completed, :uid)", array(':completed' => ($value ? time() : 0), ':uid' => $user->uid, ':id' => $key));
-        if ($value == TRUE) {
-          $count++;
-        }
-      } 
-      elseif ((bool)$current != $value) {
-        // If the checkbox changed states, update the record.
-        db_query("UPDATE {seo_checklist} SET completed = :completed, uid = :uid WHERE id = :id", array(':completed' => ($value ? time() : 0), ':uid' => $user->uid, ':id' => $key));
-        $count++;
-      }
-    }
-  }
-
-  variable_set('seo_checklist_link', $form_state['values']['seochecklist_task_66']);
-  
-  drupal_set_message(format_plural($count, 'Updated @count task successfully.', 'Updated @count tasks successfully.'));
-}
-
-
-function _seochecklist_item_insert($id, $name, $module = '', $options = array()) {
-  global $seochecklist_items;
-  global $seochecklist_groups;
-  
-  if (is_array($name)) {
-    $t = array_shift($name);
-    $name_text = t($t, $name);
-  } 
-  else {
-    $name_text = t($name);
-  }
-
-  if ($module) {
-    if (!isset($options['download'])) {
-      $options['download'] = 'http://drupal.org/project/' . $module;
-    }
-    if (!isset($options['enable'])) {
-      $options['enable'] = 'admin/modules';
-    }
-  }
-  
-  $description_text = '';
-  if (isset($options['description'])) {
-    if (is_array($options['description'])) {
-      $t = array_shift($options['description']);
-      $description_text = t($t, $options['description']);
-    } 
-    else {
-      $description_text = t($options['description']);
-    }
-  }
-  
-  $group_id = count($seochecklist_groups) - 1;
-  $seochecklist_items[$id] = (object)array(
-      'id' => $id,
-      'group_id' => $group_id,
-      'name' => $name_text,
-      'module' => $module,
-      'download' => @$options['download'],
-      'enable' => @$options['enable'],
-      'configure' => @$options['configure'],
-      'description' => $description_text,
-  );
-}
-
-function _seochecklist_group_insert($name, $description = '') {
-  global $seochecklist_groups;
-  
-  if (is_array($name)) {
-    $t = array_shift($name);
-    $name_text = t($t, $name);
-  } 
-  else {
-    $name_text = t($name);
-  }
-
-  if (is_array($description)) {
-    $t = array_shift($description);
-    $description_text = t($t, $description);
-  } 
-  else {
-    $description_text = t($description);
-  }
-  
-  $seochecklist_groups[] = (object)array(
-      'name' => $name_text,
-      'description' => $description_text,
-  );
-}
-
-function _seochecklist_fill() {
-    // Page title tasks
-  _seochecklist_group_insert('Page Titles', 'The single most important thing you can do for on-site SEO.');
-  _seochecklist_item_insert(41, 'Token (required for other modules to function. Warning: Use beta modules at your own risk.)', 'token');
-  _seochecklist_item_insert(1, 'Page Title Module. Warning: Use beta modules at your own risk.', 'page_title', array('configure' => 'admin/config/search/page-title'));
-
-  // URL tasks
-  _seochecklist_group_insert('URL paths', 'The second most important thing you can do.');
-  _seochecklist_item_insert(2, 'Clean URLs - Activate (Usually automatic. Please double-check!)', '', array('configure' => 'admin/config/search/clean-urls'));
-  _seochecklist_item_insert(5, 'Pathauto Module', 'pathauto', array('configure' => 'admin/config/search/path/patterns'));
-  _seochecklist_item_insert(6, 'Global Redirect Module', 'globalredirect');
-  _seochecklist_item_insert(38, 'Redirect Module', 'redirect', array('configure' => 'admin/config/search/redirect/settings'));
-
-  // Search engine account tasks
-  _seochecklist_group_insert('Create Search Engine Accounts', 'Set yourself up with the search engines.');
-  _seochecklist_item_insert(7, array('Get a Google Account - You will need this for several of the steps that follow - <a href="@url">@url</a>', '@url' => 'https://www.google.com/accounts/NewAccount'));
-  //_seochecklist_item_insert(8, array('Get a Yahoo Account - You will need this for steps that follow - <a href="@url">@url</a>', '@url' => 'http://www.yahoo.com/r/m7'));
-  _seochecklist_item_insert(44, array('Get a Windows Live ID - You will need this for steps that follow - <a href="@url">@url</a>', '@url' => 'https://signup.live.com/'));
-
-  // Visitor tracking tasks
-  _seochecklist_group_insert('Track your visitors', 'Know where your visitors are coming from and what they do while visiting your site.');
-  _seochecklist_item_insert(9, 'Google Analytics Module', 'googleanalytics', array('download' => 'http://drupal.org/project/google_analytics', 'configure' => 'admin/config/system/googleanalytics'));
-  _seochecklist_item_insert(10, array('Sign in to your Google Analytics Account - <a href="@url">@url</a>', '@url' => 'http://www.google.com/analytics'));
-  _seochecklist_item_insert(11, 'Create an Analytics for your website');
-  _seochecklist_item_insert(12, 'Paste Google Analytics code into Google Analytics Module');
-  _seochecklist_item_insert(13, 'Authenticate your site with Google Analytics');
-  _seochecklist_item_insert(63, 'Google Analytics Tokenizer', 'ga_tokenizer');
-  _seochecklist_item_insert(64, 'Google Analytics Contact Form, Webform, Rules Email. Warning: Use beta modules at your own risk.', 'contact_google_analytics', array('configure' => 'admin/config/contact-google-analytics'));
-  _seochecklist_item_insert(65, 'Context Keywords', 'context_keywords');
-
-  // Page content tasks
-  _seochecklist_group_insert('Page content', 'Take control of your page content.');
-  //_seochecklist_item_insert(15, 'Meta Tags Module (AKA Nodewords)', 'nodewords', array('configure' => 'admin/content/nodewords'));
-  
-  _seochecklist_item_insert(71, 'Meta tags', 'metatag');
-  _seochecklist_item_insert(15, 'Meta tags quick', 'metatags_quick', array('configure' => 'admin/structure/metatags_quick'));
-  _seochecklist_item_insert(16, 'Scheduler Module', 'scheduler', array('configure' => 'admin/config/content/scheduler/default'), 3);
-  _seochecklist_item_insert(17, 'HTML Purifier Module. Warning: Use DEV modules at your own risk.', 'htmlpurifier', array('configure' => 'admin/settings/filters/1'));
-  _seochecklist_item_insert(45, array('<a href="/sites/all/modules/htmlpurifier/INSTALL.txt">READ THE INSTALL INSTRUCTIONS!</a> then Download HTML Purifier. You will need
-    3.1.0rc1 or later. - <a href="@url">@url</a>', '@url' => 'http://htmlpurifier.org/'));
-  _seochecklist_item_insert(18, 'Search 404 Module', 'search404', array('configure' => 'admin/config/search/search404'));
-  
-  _seochecklist_item_insert(57, 'SEO Compliance Checker', 'seo_checker', array('configure' => 'admin/config/content/seo_checker'));
-  _seochecklist_item_insert(62, 'Read More Link. Warning: Use DEV modules at your own risk.', 'read_more', array('configure' => 'admin/config/content/read_more'));
-            
-  
-  // Source code tasks
-  _seochecklist_group_insert('Clean code', 'Well written markup is very important to the search engine spiders.');
-  _seochecklist_item_insert(19, array('Validate your site - <a href="@url">@url</a>', '@url' => 'http://validator.w3.org/'));
-  _seochecklist_item_insert(20, array('Check your links - <a href="@url">@url</a>', '@url' => 'http://validator.w3.org/checklink'));
-
-  // XML sitemap tasks
-  _seochecklist_group_insert('Submit your Site to the search engines.', 'Now that you\'ve got your site ready for the search engines, tell them about it!');
-  _seochecklist_item_insert(47, 'Site Verification Module', 'site_verify', array('configure' => 'admin/config/search/verifications'));
-  _seochecklist_item_insert(21, 'XML Sitemap Module', 'xmlsitemap', array('configure' => 'admin/config/search/xmlsitemap'));
-  _seochecklist_item_insert(46, 'Site Map Module - a plain text sitemap. Warning: Use beta modules at your own risk.', 'site_map', array('configure' => 'admin/config/search/sitemap'));
-  _seochecklist_item_insert(22, array('Login to Google Webmaster Tools - <a href="@url">@url</a>', '@url' => 'http://www.google.com/webmasters/tools'));
-  _seochecklist_item_insert(23, 'Authenticate your site with Google (page 26)');
-  _seochecklist_item_insert(24, array('Submit your XML Sitemap to Google - <a href="@url">@url</a>', '@url' => 'http://www.google.com/webmasters/sitemaps/'));
-  //_seochecklist_item_insert(25, array('Login to Yahoo Site Explorer Account - <a href="@url">@url</a>', '@url' => 'https://siteexplorer.search.yahoo.com/'));
-  //_seochecklist_item_insert(26, 'Authenticate your site with Yahoo');
-  //_seochecklist_item_insert(27, array('Submit your XML Sitemap to Yahoo - <a href="@url">@url</a>', '@url' => 'https://siteexplorer.search.yahoo.com/submit'));
-  _seochecklist_item_insert(42, array('Login to Bing - <a href="@url">@url</a>', '@url' => 'http://www.bing.com/webmaster/'));
-  _seochecklist_item_insert(43, 'Authenticate your site with Bing');
-  _seochecklist_item_insert(28, array('Submit your XML Sitemap to Bing - <a href="@url">@url</a>', '@url' => 'http://www.bing.com/webmaster/submitsitepage.aspx'));
-  _seochecklist_item_insert(29, array('If appropriate, submit your company to Google Local Business Center - <a href="@url">@url</a>', '@url' => 'https://www.google.com/local/add/login'));
-
-  // Social links tasks
-  _seochecklist_group_insert('Social Media', 'Using Social news sites, blogs, etc? Consider these:');
-  //_seochecklist_item_insert(30, 8, 'Digg This Module', 'diggthis', 'http://drupal.org/project/diggthis', 'admin/modules', 'admin/settings/diggthis', 1);
-  _seochecklist_item_insert(30, 'AddThis. Warning: Use beta modules at your own risk.', 'addthis', array('configure' => 'admin/settings/addthis'));
-  _seochecklist_item_insert(31, 'Service Links Module', 'service_links', array('configure' => 'admin/config/services/service-links'));
-  //_seochecklist_item_insert(32, 8, 'Trackback Module', 'trackback', 'http://drupal.org/project/trackback', 'admin/modules', 'admin/settings/trackback', 3);
-  //_seochecklist_item_insert(48, 8, 'Activity Stream Module', 'activitystream', 'http://drupal.org/project/activitystream', 'admin/modules', '', 4);
-  _seochecklist_item_insert(49, 'Add to Any Module', 'addtoany', array('configure' => 'admin/config/system/addtoany'));
-  _seochecklist_item_insert(58, 'Facebook social plugins integration. Warning: Use DEV modules at your own risk.', 'fb_social', array('configure' => 'admin/config/fb_social'));
-  _seochecklist_item_insert(59, 'Follow', 'follow', array('configure' => 'admin/config/services/follow'));
-  
-  
-
-  // Spam tasks
-  _seochecklist_group_insert('Protect your site from Spam', 'If your site will get heavy use from visitors creating accounts, commenting and/or creating content then consider these. NOTE: Most sites just need Mollom. The other modules are here in case Mollom does not work for you for some reason.');
-  _seochecklist_item_insert(40, array('HIGHLY RECOMMENDED: Sign up for Mollom\'s free service and get Mollom code - <a href="@url">@url</a>', '@url' => 'http://mollom.com/user/register'));
-  _seochecklist_item_insert(39, 'HIGHLY RECOMMENDED: Mollom Module', 'mollom', array('configure' => 'admin/config/content/mollom/settings'));
-  _seochecklist_item_insert(33, 'Captcha Module. Warning: Use alpha modules at your own risk.', 'captcha', array('configure' => 'admin/config/people/captcha'));
-  _seochecklist_item_insert(34, 'Antispam Module', 'antispam', array('configure' => 'admin/config/antispam'));
-  //_seochecklist_item_insert(36, 9, 'Spam Module', 'spam', 'http://drupal.org/project/spam', 'admin/modules', 'admin/settings/spam', 4);
-
-  // Geographic tasks
-  _seochecklist_group_insert('Geographic', '');
-  //_seochecklist_item_insert(50, 10, 'hCard Module', 'hcard', 'http://drupal.org/project/hcard', 'admin/modules', '', 1);
-  _seochecklist_item_insert(51, 'Use the Meta Tags module to add geo meta tags to your site.');
-
-  // Optional (but helpful) tasks
-  _seochecklist_group_insert('Optional (but helpful)', '');
-  //_seochecklist_item_insert(52, 11, 'Vertical Tabs Module', 'vertical_tabs', 'http://drupal.org/project/vertical_tabs', 'admin/modules', '', 1);
-  _seochecklist_item_insert(53, 'Administration Menu. Warning: RC.', 'admin_menu', array('configure' => 'admin/config/administration/admin_menu'));
-  _seochecklist_item_insert(60, 'Elements', 'elements');
-  _seochecklist_item_insert(61, 'Security Review', 'security_review', array('configure' => 'admin/reports/security-review'));
-  _seochecklist_item_insert(72, 'Module Filter', 'module_filter', array('configure' => 'admin/config/user-interface/modulefilter'));
-                
-  // Performance tasks
-  _seochecklist_group_insert('Performance', '');
-  _seochecklist_item_insert(54, 'Turn on Drupal\'s built in caching.', '', array('configure' => 'admin/config/development/performance'));
-  _seochecklist_item_insert(55, 'Boost Module. Warning: Use DEV modules at your own risk.', 'boost', array('configure' => 'admin/settings/performance/boost'));
-  //_seochecklist_item_insert(56, 12, 'Authcache Module', 'authcache', 'http://drupal.org/project/authcache', 'admin/modules', '', 3);
-
-  _seochecklist_group_insert('Extras', '');
-  _seochecklist_item_insert(73, array('Download free internet marketing whitepapers from Volacci - <a href="@url">@url</a>', '@url' => 'http://www.volacci.com/free-whitepapers'));
-  _seochecklist_item_insert(66, 'Link to Volacci to thank them for this awesome module.', '', array('description' => 'A small link will appear at the very bottom of your website. You can disable it at any time by un-checking this box. We really appreciate it!'));
-  _seochecklist_item_insert(67, 
-          array('Send us feedback on the Drupal 7 SEO Checklist module or just say <em>Thanks!</em> and we will link to you from our website. Send your feedback and link information to <a href="mailto:@email">@email</a>.', '@email' => 'seochecklist@volacci.com'), '',
-          array('description' => array('If you do not know why you should link with other websites, read the following article: <a href="@link">Why links help SEO</a>.', '@link' => 'http://www.volacci.com/why-links-help-seo')));
-  _seochecklist_item_insert(68, array('Listen to the <a href="@podcast">Volacci Drupal SEO Podcast</a> for more tips and tricks about Drupal SEO.', '@podcast' => 'http://www.volacci.com/podcast'));
-  _seochecklist_item_insert(69, 
-          array('Include page number references from the <a href="@book">Drupal 6 SEO Book</a> by Ben Finklea.', '@book' => 'http://www.drupalseobook.com/'), '',
-          array('description' => array('<a href="@book-purchase">Purchase from Packt Publishing</a>', '@book-purchase' => SEOCHECKLIST_BOOK_PURCHASE)));
-  _seochecklist_item_insert(70, array('Buy Drupal 6 Search Engine Optimization by Ben Finklea from <a href="@amazon">Amazon</a> or <a href="@packt">Packt</a>.', '@amazon' => 'http://www.amazon.com/gp/product/1847198228?ie=UTF8&tag=dvdcentral02&linkCode=as2&camp=1789&creative=390957&creativeASIN=1847198228', '@packt' => 'https://www.packtpub.com/drupal-6-search-engine-optimization-seo/book?mid/170909568gh3'));
-  _seochecklist_item_insert(76, array('Watch a Video Tutorial on Drupal SEO from Lullabot - <a href="@link">@link</a>', '@link' => 'http://drupalize.me/videos/introduction-drupal-seo'));
- 
-
-}
\ No newline at end of file
diff --git a/seochecklist.css b/seochecklist.css
deleted file mode 100644
index 3bea3e5..0000000
--- a/seochecklist.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/* $Id$ */
-
-div.seochecklist_item {
-  clear:both;
-}
-
-div.seochecklist_item div,
-div.seochecklist_item label,
-div.seochecklist_item p {
-  display:inline;
-  margin-bottom:0;
-  margin-top:0;
-}
\ No newline at end of file
diff --git a/seochecklist.info b/seochecklist.info
deleted file mode 100644
index 1ca090d..0000000
--- a/seochecklist.info
+++ /dev/null
@@ -1,5 +0,0 @@
-; $Id$
-name = SEO Checklist
-description = A Search Engine Optimization checklist for Drupal.
-core = 7.x
-configure = admin/config/search/seochecklist
\ No newline at end of file
diff --git a/seochecklist.install b/seochecklist.install
deleted file mode 100644
index 2ad42aa..0000000
--- a/seochecklist.install
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * Install, update and uninstall functions for the seochecklist module.
- */
-
-/**
- * Implementation of hook_schema().
- */
-function seochecklist_schema() {
-  $schema['seo_checklist'] = array(
-    'description' => 'seo_checklist',
-    'fields' => array(
-      'id' => array(
-        'type' => 'serial',
-        'size' => 'tiny',
-        'not null' => TRUE,
-        'description' => 'id',
-      ),
-      'completed' => array(
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-        'default' => 0,
-        'description' => 'UNIX timestamp of when this task was completed, or 0 if the task has not yet been completed.',
-      ),
-      'uid' => array(
-        'type' => 'int',
-        'unsigned' => TRUE,
-        'not null' => TRUE,
-        'default' => 0,
-        'description' => 'The {user}.uid of the account that completed this task.',
-      ),
-    ),
-    'primary key' => array('id'),
-  );
-  return $schema;
-}
-
-
-/**
- * Implementation of hook_install().
- */
-function seochecklist_install() {
-  global $user;
-  menu_rebuild();
-  db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 69, ':time' => time(), ':uid' => $user->uid));
-}
-
-/**
- * Implementation of hook_uninstall().
- */
-function seochecklist_uninstall() {
-  //drupal_uninstall_schema('seochecklist');
-  variable_del('seo_checklist_link');
-  variable_del('seo_checklist_thanks');
-  variable_del('seo_checklist_podcast');
-  variable_del('seo_checklist_book_references');
-}
-
-/**
- * Update from 6.x-1.x to 6.x-2.x.
- */
-function seochecklist_update_6001() {
-  $ret = array();
-
-  $linked_seo = db_query("SELECT linked_seo FROM {seo_checklist} ORDER BY id DESC LIMIT 1")->fetchField();
-  //$result = db_fetch_object($query);
-  variable_set('seo_checklist_link', intval($linked_seo));
-
-  $result = db_query("SELECT extra2, extra3 FROM {seo_checklist} WHERE id = 1")->fetchObject();
-  variable_set('seo_checklist_thanks', intval($result->extra2));
-  variable_set('seo_checklist_podcast', intval($result->extra3));
-
-  db_drop_field('seo_checklist', 'extra2');
-  db_drop_field('seo_checklist', 'extra3');
-  db_drop_field('seo_checklist', 'linked_seo');
-  db_drop_field('seo_group', 'subgroup');
-  db_drop_table('seo_subgroup');
-
-  //return $ret;
-}
-
-/**
- * Fix the link in the clean URL task.
- */
-function seochecklist_update_6202() {
-  $ret = array();
-  $ret[] = update_sql("UPDATE {seo_checklist} SET name = 'Clean URLs - Activate (Usually automatic. Please double-check!)', configure = 'admin/settings/clean-urls' WHERE id = 2");
-  //return $ret;
-}
-
-/**
- * Update from Live to Bing and fix links.
- */
-function seochecklist_update_6203() {
-  $ret = array();
-  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Get a Windows Live ID - You will need this for steps that follow - <a href=\"https://signup.live.com/\">https://signup.live.com/</a>' WHERE id = 44");
-  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Login to Bing - <a href=\"http://www.bing.com/webmaster/\">http://www.bing.com/webmaster/</a>', order_id = 17 WHERE id = 42");
-  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Authenticate your site with Bing', order_id = 19 WHERE id = 43");
-  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'Submit your XML Sitemap to Bing - <a href=\"http://www.bing.com/webmaster/WebmasterAddSitesPage.aspx\">http://webmaster.live.com/webmaster/WebmasterAddSitesPage.aspx</a>', order_id = 21 WHERE id = 28");
-  $ret[] = db_query("UPDATE {seo_checklist} SET module = 'xmlsitemap' WHERE id = 21");
-  //return $ret;
-}
-
-/**
- * Convert the date_changed and option_checked fields into one UNIX completed
- * field.
- */
-function seochecklist_update_6204() {
-  $ret = array();
-
-  db_add_field('seo_checklist', 'completed', array(
-    'type' => 'int',
-    'unsigned' => TRUE,
-    'not null' => TRUE,
-    'default' => 0,
-    'description' => 'UNIX timestamp of when this task was completed.',
-  ));
-
-  $query = db_query("SELECT id, date_changed FROM {seo_checklist} WHERE option_checked <> 0");
-  foreach ($query as $record) {
-    $record->changed = strtotime($record->date_changed);
-    if (!$record->changed) {
-      $record->changed = time();
-    }
-    $ret[] = db_query("UPDATE {seo_checklist} SET completed = {$record->changed} WHERE id = {$record->id}");
-  }
-
-  db_drop_field('seo_checklist', 'date_changed');
-  db_drop_field('seo_checklist', 'option_checked');
-  db_drop_field('seo_checklist', 'checked_module');
-
-  //return $ret;
-}
-
-/**
- * Remove the {seo_checklist}.subgroup_id field and add {seo_checklist}.uid.
- */
-function seochecklist_update_6205() {
-  $ret = array();
-  db_drop_field('seo_checklist', 'subgroup_id');
-  db_add_field('seo_checklist', 'uid', array(
-    'type' => 'int',
-    'unsigned' => TRUE,
-    'not null' => TRUE,
-    'default' => 0,
-    'description' => 'The {user}.uid of the account that completed this task.',
-  ));
-  $ret[] = db_query("UPDATE {seo_checklist} SET module = LOWER(module)");
-  //return $ret;
-}
-
-/**
- * Fixed the link to Google Local Business Center.
- */
-function seochecklist_update_6206() {
-  $ret = array();
-  $ret[] = db_query("UPDATE {seo_checklist} SET name = 'If appropriate, submit your company to Google Local Business Center - <a href=\"https://www.google.com/local/add/login\">https://www.google.com/local/add/login</a>' WHERE id = 29");
-  //return $ret;
-}
-
-function seochecklist_update_6207() {
-  $ret = array();
-  $ret[] = db_query("UPDATE {seo_group} SET name = 'Social Media' WHERE id = 8");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (47, 7, 'Site Verification Module', 'site_verify', 'http://drupal.org/project/site_verify', 'admin/modules', '', 0)");
-  $ret[] = db_query("INSERT INTO {seo_group} VALUES (10, 'Geographic', '')");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (50, 10, 'hCard Module', 'hcard', 'http://drupal.org/project/hcard', 'admin/modules', '', 1)");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (51, 10, 'Use the Meta Tags module to add geo meta tags to your site.', '', '', '', '', 2)");
-  $ret[] = db_query("INSERT INTO {seo_group} VALUES (11, 'Optional (but helpful)', '')");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (52, 11, 'Vertical Tabs Module', 'vertical_tabs', 'http://drupal.org/project/vertical_tabs', 'admin/modules', '', 1)");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (53, 11, 'Administration Menu', 'admin_menu', 'http://drupal.org/project/admin_menu', 'admin/modules', '', 2)");
-  $ret[] = db_query("INSERT INTO {seo_group} VALUES (12, 'Performance', '')");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (54, 12, 'Turn on Drupal\'s built in caching.', '', '', '', 'admin/settings/performance/default', 1)");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (55, 12, 'Boost Module', 'boost', 'http://drupal.org/project/boost', 'admin/modules', 'admin/settings/performance/boost', 2)");
-  $ret[] = db_query("INSERT INTO {seo_checklist} (id, group_id, name, module, download, enable, configure, order_id) VALUES (56, 12, 'Authcache Module', 'authcache', 'http://drupal.org/project/authcache', 'admin/modules', '', 3)");
-  //return $ret;
-}
-
-
-function seochecklist_update_6301() {
-  global $user;
-  db_drop_table('seo_group');
-  db_drop_field('seo_checklist', 'group_id'); 
-  db_drop_field('seo_checklist', 'name'); 
-  db_drop_field('seo_checklist', 'module'); 
-  db_drop_field('seo_checklist', 'download'); 
-  db_drop_field('seo_checklist', 'enable'); 
-  db_drop_field('seo_checklist', 'configure'); 
-  db_drop_field('seo_checklist', 'order_id'); 
-  if (variable_get('seo_checklist_link', FALSE)) {
-    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 66, ':time' => time(), ':uid' => $user->uid));
-  }
-  if (variable_get('seo_checklist_thanks', FALSE)) {
-    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 67, ':time' => time(), ':uid' => $user->uid));
-  }
-  if (variable_get('seo_checklist_podcast', FALSE)) {
-    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 68, ':time' => time(), ':uid' => $user->uid));
-  }
-  if (variable_get('seo_checklist_book_references', FALSE)) {
-    db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :time, :uid)", array(':id' => 69, ':time' => time(), ':uid' => $user->uid));
-  }
-  
-  //variable_del('seo_checklist_link');
-  variable_del('seo_checklist_thanks');
-  variable_del('seo_checklist_podcast');
-  variable_del('seo_checklist_book_references');
-}
\ No newline at end of file
diff --git a/seochecklist.module b/seochecklist.module
deleted file mode 100644
index d9dbc07..0000000
--- a/seochecklist.module
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-// $Id$
-
-/**
- * @file
- * SEO Checklist module allows users to track important SEO techniques on the website.
- */
-
-/**
- * Implementation of hook_help().
- */
-function seochecklist_help($path, $arg) {
-  if ($path == 'admin/config/search/seochecklist') {
-    //image not found, commenting the banner
-    return l('<img width=700 height=100 src="http://www.volacci.com/linkcodes/seo-checklist-banner-7.png">', 'http://www.volacci.com/lp/drupal-seo-checklist-7', array('html' => TRUE)) .
-      '<p>' . t('Check off each SEO-related task as you complete it. Do not forget to click the <em>Save</em> button!') . '</p>';
-  }
-}
-
-/**
- * Implementation of hook_permission().
- */
-function seochecklist_permission() {
-  return array(
-    'access seochecklist content' => array(
-      'title' => t('Access SEOchecklist Content'),
-      'description' => t('Access to SEO Checklist.'),
-    ),
-  );
-}
-
-/**
- * Implementation of hook_menu().
- */
-function seochecklist_menu() {
-  $items['admin/config/search/seochecklist'] = array(
-    'title' => 'SEO Checklist',
-    'description' => 'Keep track of your Drupal Search Engine Optimization tasks.',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('seochecklist_admin_settings'),
-    'access arguments' => array('access seochecklist content'),
-    'file' => 'seochecklist.admin.inc',
-  );
-  return $items;
-}
-
-/**
- * Implementation of hook_page_alter().
- */
-
-function seochecklist_page_alter(&$page) {
-  if (variable_get('seo_checklist_link', 0)) {
-    $page['page_bottom']['devel']= array(
-      '#type' => 'markup',
-      '#markup' => '<div align="center"><a href="http://www.volacci.com/" target="_blank">Drupal SEO</a></div>',
-    );
-  }
-}
-
-//hide references to D6 book
-/*
-function seochecklist_get_book_references($tid) {
-  $references = array(
-    1 => 59,
-    39 => 59,
-    2 => 68,
-    6 => 83,
-    5 => 72,
-    7 => 20,
-    9 => 23,
-    10 => 22,
-    11 => 22,
-    12 => 23,
-    13 => 26,
-    15 => 96,
-    16 => 182,
-    17 => 201,
-    18 => 18,
-    19 => 148,
-    21 => 109,
-    46 => 125,
-    24 => 118,
-    40 => 205,
-    39 => 205,
-  );
-
-  return isset($references[$tid]) ? $references[$tid] : NULL;
-}
-*/
-- 
1.7.4.1

