array(
'id' => array(
'type' => 'serial',
'size' => 'tiny',
'not null' => TRUE,
'description' => 'id',
'disp-width' => '4'
),
'name' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'name',
'default' => ''
),
'description' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'description',
'default' => ''
),
),
'primary key' => array('id'),
'description' => 'seo_group',
);
$schema['seo_checklist'] = array(
'fields' => array(
'id' => array(
'type' => 'serial',
'size' => 'tiny',
'not null' => TRUE,
'description' =>
'id', 'disp-width' => '2'
),
'group_id' => array(
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
'description' => 'group_id',
'disp-width' => '4'
),
'subgroup_id' => array(
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
'description' => 'subgroup_id',
'disp-width' => '4'
),
'name' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'name',
'default' => ''
),
'module' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'module',
'default' => ''
),
'option_checked' => array(
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'description' => 'option checked',
'default' => 0,
'disp-width' => '1'
),
'date_changed' => array(
'type' => 'datetime',
'not null' => TRUE,
'description' => 'date changed',
'default' => '1970-01-01 00:00:00'
),
'checked_module' => array(
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'description' => 'checked module',
'default' => 0,
'disp-width' => '1'
),
'download' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'download',
'default' => ''
),
'enable' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'enable',
'default' => ''
),
'configure' => array(
'type' => 'varchar',
'length' => '255',
'not null' => TRUE,
'description' => 'configure',
'default' => ''
),
'order_id' => array(
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'description' => 'order id',
'default' => 0,
'disp-width' => '2'
),
),
'primary key' => array('id'),
'description' => 'seo_checklist',
);
return $schema;
}
/**
* Implementation of hook_install().
*/
function seochecklist_install() {
drupal_install_schema('seochecklist');
db_query("INSERT INTO {seo_group} VALUES (1, 'Page Titles', 'The single most important thing you can do for on-site SEO.')");
db_query("INSERT INTO {seo_group} VALUES (2, 'URL paths', 'The second most important thing you can do.')");
db_query("INSERT INTO {seo_group} VALUES (3, 'Create Search Engine Accounts', 'Set yourself up with the search engines.')");
db_query("INSERT INTO {seo_group} VALUES (4, 'Track your visitors', 'Know where your visitors are coming from and what they do while visiting your site.')");
db_query("INSERT INTO {seo_group} VALUES (5, 'Page content', 'Take control of your page content.')");
db_query("INSERT INTO {seo_group} VALUES (6, 'Clean code', 'Well written markup is very important to the search engine spiders.')");
db_query("INSERT INTO {seo_group} VALUES (7, 'Submit your Site to the search engines.', 'Now that you''ve got your site ready for the search engines, tell them about it!')");
db_query("INSERT INTO {seo_group} VALUES (8, 'Social Tracking', 'Using Social news sites, blogs, etc? Consider these:')");
db_query("INSERT INTO {seo_group} VALUES (9, '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.')");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure, order_id) VALUES (1, 1, 0, 'Page Title Module', 'page_title', 'http://drupal.org/project/page_title', 'admin/build/modules', 'admin/content/page_title', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (2, 2, 0, 'Clean URLs - Activate (Usually automatic. Please double-check!)', '', '', '', '', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (5, 2, 0, 'Pathauto Module', 'pathauto', 'http://drupal.org/project/pathauto', 'admin/build/modules', 'admin/build/path/pathauto', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (6, 2, 0, 'Global Redirect Module', 'globalredirect', 'http://drupal.org/project/globalredirect', 'admin/build/modules', '', 3)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (7, 3, 0, 'Get a Google Account - You''ll need this for several of the steps that follow - https://www.google.com/accounts/NewAccount', '', '', '', '', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (8, 3, 0, 'Get a Yahoo Account - You''ll need this for steps that follow - http://www.yahoo.com/r/m7', '', '', '', '', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (44, 3, 0, 'Get a Live Account - You''ll need this for steps that follow - https://accountservices.passport.net/reg.srf', '', '', '', '', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (9, 4, 0, 'Google Analytics Module', 'googleanalytics', 'http://drupal.org/project/google_analytics', 'admin/build/modules', 'admin/settings/googleanalytics', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (10, 4, 0, 'Sign in to your Google Analytics Account - http://www.google.com/analytics', '', '', '', '', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (11, 4, 0, 'Create an Analytics for your website', '', '', '', '', 3)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (12, 4, 0, 'Paste Google Analytics code into Google Analytics Module', '', '', '', '', 4)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (13, 4, 0, 'Authenticate your site with Google Analytics', '', '', '', '', 5)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (15, 5, 0, 'Meta Tags Module (AKA Nodewords)', 'nodewords', 'http://drupal.org/project/nodewords', 'admin/build/modules', 'admin/content/nodewords', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (16, 5, 0, 'Scheduler Module', 'scheduler', 'http://drupal.org/project/scheduler', 'admin/build/modules', 'admin/settings/scheduler', 3)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (17, 5, 0, 'HTML Purifier Module', 'htmlpurifier', 'http://drupal.org/project/htmlpurifier', 'admin/build/modules', 'admin/settings/filters/1', 4)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (45, 5, 0, 'READ THE INSTALL INSTRUCTIONS! then Download HTML Purifier. You will need
3.1.0rc1 or later. - http://htmlpurifier.org/', '', '', '', '', 5)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (18, 5, 0, 'Search 404 Module', 'search404', 'http://drupal.org/project/search404', 'admin/build/modules', 'admin/settings/search404', 5)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (19, 6, 0, 'Validate your site - http://validator.w3.org/', '', '', '', '', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (20, 6, 0, 'Check your links - http://validator.w3.org/checklink', '', '', '', '', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (21, 7, 0, 'XML Sitemap Module', 'gsitemap', 'http://drupal.org/project/xmlsitemap', 'admin/build/modules', 'admin/settings/xmlsitemap', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (46, 7, 0, 'Site Map Module - a plain text sitemap', 'site_map', 'http://drupal.org/project/site_map', 'admin/build/modules', 'admin/settings/sitemap', 3)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (22, 7, 0, 'Login to Google Webmaster Tools - http://www.google.com/webmasters/tools', '', '', '', '', 5)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (23, 7, 0, 'Authenticate your site with Google', '', '', '', '', 7)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (24, 7, 0, 'Submit your XML Sitemap to Google - http://www.google.com/webmasters/sitemaps/', '', '', '', '', 9)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (25, 7, 0, 'Login to Yahoo Site Explorer Account - https://siteexplorer.search.yahoo.com/', '', '', '', '', 11)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (26, 7, 0, 'Authenticate your site with Yahoo', '', '', '', '', 13)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (27, 7, 0, 'Submit your XML Sitemap to Yahoo - https://siteexplorer.search.yahoo.com/submit', '', '', '', '', 15)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (43, 7, 0, 'Authenticate your site with Live - https://siteexplorer.search.yahoo.com/submit', '', '', '', '', 17)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (42, 7, 0, 'Login to Live', '', '', '', '', 19)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (28, 7, 0, 'Submit your XML Sitemap to Live - http://webmaster.live.com/webmaster/WebmasterAddSitesPage.aspx', '', '', '', '', 21)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (29, 7, 0, 'If appropriate, submit your company to Google Local - https://www.google.com/local/add/login', '', '', '', '', 23)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (30, 8, 0, 'Digg This Module', 'diggthis', 'http://drupal.org/project/diggthis', 'admin/build/modules', 'admin/settings/diggthis', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (31, 8, 0, 'Service Links Module', 'service_links', 'http://drupal.org/project/service_links', 'admin/build/modules', 'admin/settings/service_links', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (32, 8, 0, 'Trackback Module', 'trackback', 'http://drupal.org/project/trackback', 'admin/build/modules', 'admin/settings/trackback', 3)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (33, 9, 2, 'Captcha Module', 'captcha', 'http://drupal.org/project/captcha', 'admin/build/modules', 'admin/user/captcha', 2)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (34, 9, 2, 'Akismet Module', 'akismet', 'http://drupal.org/project/akismet', 'admin/build/modules', 'admin/settings/akismet', 3)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (36, 9, 2, 'Spam Module', 'spam', 'http://drupal.org/project/spam', 'admin/build/modules', 'admin/settings/spam', 4)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (38, 2, 0, 'Path Redirect Module', 'path_redirect', 'http://drupal.org/project/path_redirect', 'admin/build/modules', '', 4)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (39, 9, 1, 'HIGHLY RECOMMENDED: Mollom Module', 'Mollom', 'http://drupal.org/project/mollom', 'admin/build/modules', 'admin/settings/mollom', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (41, 1, 0, 'Token (required for other modules to function)', 'Token', 'http://drupal.org/project/token', 'admin/build/modules', '', 1)");
db_query("INSERT INTO {seo_checklist} (id, group_id, subgroup_id, name, module, download, enable, configure,
order_id) VALUES (40, 9, 1, 'HIGHLY RECOMMENDED: Sign up for Mollom\'s free service and get Mollom code - http://mollom.com/user/register', '', '', '', '', 0 )");
}
/**
* Implementation of hook_uninstall().
*/
function seochecklist_uninstall() {
drupal_uninstall_schema('seochecklist');
}
/**
* Implementation of hook_update_N().
*
* Move linked_seo, extra2, extra3 columns to Drupal variables since they are
* representing 1 value only. Remove subgroup from seo_group since we don't use it anymore.
*/
function seochecklist_update_6001() {
$query = db_query("SELECT linked_seo FROM {seo_checklist} ORDER BY id DESC LIMIT 1");
$result = db_fetch_object($query);
variable_set('seo_checklist_link', intval($result->linked_seo));
$query = db_query("SELECT extra2, extra3 FROM {seo_checklist} WHERE id = 1");
$result = db_fetch_object($query);
variable_set('seo_checklist_thanks', intval($result->extra2));
variable_set('seo_checklist_podcast', intval($result->extra3));
$ret = array();
db_drop_field($ret, 'seo_checklist', 'extra2');
db_drop_field($ret, 'seo_checklist', 'extra3');
db_drop_field($ret, 'seo_checklist', 'linked_seo');
db_drop_field($ret, 'seo_group', 'subgroup');
return $ret;
}