kolab.org/www

Torsten Grote grote at kolabsys.com
Wed Jun 13 10:27:54 CEST 2012


 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/LICENSE.txt            |  274 +++++++
 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/README.txt             |   89 ++
 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.admin.inc |  159 ++++
 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.css       |   13 
 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.info      |   12 
 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.install   |  344 ++++++++++
 kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.module    |   75 ++
 7 files changed, 966 insertions(+)

New commits:
commit 7cd7f84b577236b2ce44c48ac64f2ecaa6952d8f
Author: Torsten Grote <grote at kolabsys.com>
Date:   Wed Jun 13 10:27:38 2012 +0200

    added SEO checklist module

diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/LICENSE.txt b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/LICENSE.txt
new file mode 100644
index 0000000..2c095c8
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/LICENSE.txt
@@ -0,0 +1,274 @@
+GNU GENERAL PUBLIC LICENSE
+
+              Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
+Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
+verbatim copies of this license document, but changing it is not allowed.
+
+                  Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is
+intended to guarantee your freedom to share and change free software--to
+make sure the software is free for all its users. This General Public License
+applies to most of the Free Software Foundation's software and to any other
+program whose authors commit to using it. (Some other Free Software
+Foundation software is covered by the GNU Library General Public License
+instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the
+freedom to distribute copies of free software (and charge for this service if
+you wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must make
+sure that they, too, receive or can get the source code. And you must show
+them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients
+to know that what they have is not the original, so that any problems
+introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will individually
+obtain patent licenses, in effect making the program proprietary. To prevent
+this, we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+           GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
+               MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms
+of this General Public License. The "Program", below, refers to any such
+program or work, and a "work based on the Program" means either the
+Program or any derivative work under copyright law: that is to say, a work
+containing the Program or a portion of it, either verbatim or with
+modifications and/or translated into another language. (Hereinafter, translation
+is included without limitation in the term "modification".) Each licensee is
+addressed as "you".
+
+Activities other than copying, distribution and modification are not covered
+by this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made
+by running the Program). Whether that is true depends on what the Program
+does.
+
+1. You may copy and distribute verbatim copies of the Program's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you
+may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+thus forming a work based on the Program, and copy and distribute such
+modifications or work under the terms of Section 1 above, provided that you
+also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices stating that
+you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in whole or in
+part contains or is derived from the Program or any part thereof, to be
+licensed as a whole at no charge to all third parties under the terms of this
+License.
+
+c) If the modified program normally reads commands interactively when run,
+you must cause it, when started running for such interactive use in the most
+ordinary way, to print or display an announcement including an appropriate
+copyright notice and a notice that there is no warranty (or else, saying that
+you provide a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this License.
+(Exception: if the Program itself is interactive but does not normally print such
+an announcement, your work based on the Program is not required to print
+an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be
+reasonably considered independent and separate works in themselves, then
+this License, and its terms, do not apply to those sections when you distribute
+them as separate works. But when you distribute the same sections as part
+of a whole which is a work based on the Program, the distribution of the
+whole must be on the terms of this License, whose permissions for other
+licensees extend to the entire whole, and thus to each and every part
+regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to
+work written entirely by you; rather, the intent is to exercise the right to
+control the distribution of derivative or collective works based on the
+Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of a
+storage or distribution medium does not bring the other work under the scope
+of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1
+and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable source
+code, which must be distributed under the terms of Sections 1 and 2 above
+on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three years, to give
+any third party, for a charge no more than your cost of physically performing
+source distribution, a complete machine-readable copy of the corresponding
+source code, to be distributed under the terms of Sections 1 and 2 above on
+a medium customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer to distribute
+corresponding source code. (This alternative is allowed only for
+noncommercial distribution and only if you received the program in object
+code or executable form with such an offer, in accord with Subsection b
+above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source code
+means all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation and
+installation of the executable. However, as a special exception, the source
+code distributed need not include anything that is normally distributed (in
+either source or binary form) with the major components (compiler, kernel,
+and so on) of the operating system on which the executable runs, unless that
+component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to
+copy from a designated place, then offering equivalent access to copy the
+source code from the same place counts as distribution of the source code,
+even though third parties are not compelled to copy the source along with the
+object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy,
+modify, sublicense or distribute the Program is void, and will automatically
+terminate your rights under this License. However, parties who have received
+copies, or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the
+Program or its derivative works. These actions are prohibited by law if you
+do not accept this License. Therefore, by modifying or distributing the
+Program (or any work based on the Program), you indicate your acceptance
+of this License to do so, and all its terms and conditions for copying,
+distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these terms and
+conditions. You may not impose any further restrictions on the recipients'
+exercise of the rights granted herein. You are not responsible for enforcing
+compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose
+that choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original copyright
+holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In such
+case, this License incorporates the limitation as if written in the body of this
+License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will be
+similar in spirit to the present version, but may differ in detail to address new
+problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies
+a version number of this License which applies to it and "any later version",
+you have the option of following the terms and conditions either of that
+version or of any later version published by the Free Software Foundation. If
+the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software
+Foundation, write to the Free Software Foundation; we sometimes make
+exceptions for this. Our decision will be guided by the two goals of
+preserving the free status of all derivatives of our free software and of
+promoting the sharing and reuse of software generally.
+
+               NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
+PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
+AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR
+ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OR INABILITY TO USE THE
+PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
+OR DATA BEING RENDERED INACCURATE OR LOSSES
+SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE
+PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN
+IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGES.
+
+          END OF TERMS AND CONDITIONS
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/README.txt b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/README.txt
new file mode 100644
index 0000000..4166c00
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/README.txt
@@ -0,0 +1,89 @@
+// $Id: README.txt,v 1.6 2009/10/29 01:51:48 davereid Exp $
+
+CONTENTS OF THIS FILE
+---------------------
+
+ * Description and Benefits
+ * Upgrading from 1.x
+ * Installation and Usage
+ * More Information
+
+
+DESCRIPTION AND BENEFITS
+------------------------
+
+The SEO Checklist module provides a list of good SEO actions that you should
+take to maximize the presence of your website in the major search engines. It
+provides little functionality itself but rather it helps you keep track of what
+needs to be done and what has been completed already.
+
+Search Engines Drive 90% of the traffic on the web. The more "findable" you are,
+the easier it is for you to get customers. This module helps you with on-page
+SEO - a necessary component of a good online marketing campaign.
+
+
+UPGRADING FROM 1.x
+------------------
+
+If you are upgrading from the previous SEO Checklist 1.x versions, you will
+need to follow a couple important steps:
+
+1. Make sure you remove the entire SEO Checklist module's folder before copying
+   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'
+
+3. Make sure you run update.php immediately afterwards.
+
+
+INSTALLATION AND USAGE
+----------------------
+
+See http://drupal.org/getting-started/5/install-contrib for instructions on
+how to install or update Drupal modules.
+
+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
+   module should automatically check if you have already installed any of the
+   modules required for a task.
+4. Start checking off some tasks!
+
+Optional:
+- Install the Vertical Tabs module (http://drupal.org/project/vertical_tabs) to
+  help improve your SEO Checklist interface. It helps collapse the interface
+  into vertical tabs instead of one huge long list of fieldsets. This module
+  also works on the add or edit content forms, which is helpful for your site's
+  content creators and editors!
+
+
+MORE INFORMATION
+----------------
+
+- A very handy companion for this module is the Drupal 6 Search Engine
+  Optimization book by Ben Finklea. For more information and to purchase, go to
+  http://www.drupalseobook.com/.
+
+- To issue any bug reports, feature or support requests, see the module issue
+  queue at http://drupal.org/project/issues/seo_checklist.
+
+- This module is potentially controversial as many people have ideas about good
+  and bad SEO. If you have an idea of a module or task that should be included,
+  please file an issue with the above link to the module's issue queue.
+
+- Volacci spent numerous hours in research and development on this module. We
+  want to maintain it and keep good SEO advice available to the entire
+  community. Instead of asking for donations or bounties for this module, we
+  request that you include a simple link back to us somewhere on your website.
+  When you're done (or before) go down to the "Link to Volacci" task and check
+  it! That will automatically add a link in your website's footer to Volacci.
+  If you want to link to use, but not in your footer, uncheck the box and put
+  the link to http://www.volacci.com/ where you want to. And thanks for the
+  link! If you e-mail us (seochecklist [at] volacci.com) and tell us where your
+  link is, then we'll link back to you! And as you may know, links help move
+  your site up in the search engines.
+
+- Enjoy using the module!
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.admin.inc b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.admin.inc
new file mode 100644
index 0000000..037b4e1
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.admin.inc
@@ -0,0 +1,159 @@
+<?php
+// $Id: seochecklist.admin.inc,v 1.11 2010/05/25 13:13:44 eclipsegc Exp $
+
+/**
+ * @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;
+
+  $form['save_above'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  // Fetch modules and groups from database.
+  $query = "SELECT id, name, description FROM {seo_group} ORDER BY id";
+
+  $result = db_query($query);
+  $group_id = 0;
+
+  // Every group is a fieldset.
+  while ($data = db_fetch_object($result)) {
+    $group_id = intval($data->id);
+
+    $form['group_' . $group_id] = array(
+      '#type' => 'fieldset',
+      '#title' => t($data->name),
+      '#collapsible' => TRUE,
+      '#description' => t($data->description),
+      '#group' => 'seochecklist',
+    );
+
+    $res = db_query("SELECT download, enable, configure, module, completed, id, name, uid FROM {seo_checklist} WHERE group_id = %d ORDER BY order_id", $group_id);
+    while ($row = db_fetch_object($res)) {
+      $row->links = array();
+
+      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', user_load($row->uid))));
+      }
+      else {
+        // 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));
+      }
+
+      $task = $form['group_' . $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) {
+        $task['#disabled'] = !variable_get('clean_url', 0);
+        $task['#default_value'] |= variable_get('clean_url', 0);
+      }
+    }
+  }
+
+  $form['extras'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Extras'),
+    '#collapsible' => TRUE,
+    '#group' => 'seochecklist',
+  );
+  $form['extras']['seo_checklist_link'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Link to Volacci to thank them for this awesome module.'),
+    '#default_value' => variable_get('seo_checklist_link', 0),
+    '#description' => t('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!'),
+  );
+  $form['extras']['seo_checklist_thanks'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Send us feedback on the Drupal 6 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>.', array('@email' => 'seochecklist at volacci.com')),
+    '#default_value' => variable_get('seo_checklist_thanks', 0),
+    '#description' => t('If you do not know why you should link with other websites, read the following article: <a href="@link">Why links help SEO</a>.', array('@link' => 'http://www.volacci.com/why-links-help-seo')),
+  );
+  $form['extras']['seo_checklist_podcast'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Listen to the <a href="@podcast">Volacci Drupal SEO Podcast</a> for more tips and tricks about Drupal SEO.', array('@podcast' => 'http://www.volacci.com/podcast')),
+    '#default_value' => variable_get('seo_checklist_podcast', 0),
+  );
+  $form['extras']['seo_checklist_book_references'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Include page number references from the <a href="@book">Drupal 6 SEO Book</a> by Ben Finklea.', array('@book' => 'http://www.drupalseobook.com/')),
+    '#default_value' => variable_get('seo_checklist_book_references', 1),
+    '#description' => t('<a href="@book-purchase">Purchase from Packt Publishing</a>', array('@book-purchase' => SEOCHECKLIST_BOOK_PURCHASE)),
+  );
+  $form['extras']['buy_seo_book'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Buy Drupal 6 Search Engine Optimization by Ben Finklea from <a href="@amazon">Amazon</a> or <a href="@packt">Packt</a>.', array('@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')),
+    '#default_value' => variable_get('seo_checklist_buy_book', 1),
+  );
+
+  $form['save'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+    '#weight' => 100,
+  );
+
+  if (module_exists('vertical_tabs')) {
+    $form['#pre_render'][] = 'vertical_tabs_form_pre_render';
+    $form['save_above']['#attributes']['class'] = 'js-hide';
+  }
+  else {
+    drupal_set_message(t('Your SEO Checklist interface (in addition to your content and content type edit pages) will be greatly enhanced by installing the <a href="@vertical-tabs">Vertical Tabs module</a>.', array('@vertical-tabs' => 'http://drupal.org/project/vertical_tabs')), 'status', FALSE);
+  }
+
+  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 = (bool) db_result(db_query("SELECT completed FROM {seo_checklist} WHERE id = %d", $key));
+      if ($current != $value) {
+        // If the checkbox changed states, update the record.
+        db_query("UPDATE {seo_checklist} SET completed = %d, uid = %d WHERE id = %d", ($value ? time() : 0), $user->uid, $key);
+        $count++;
+      }
+    }
+  }
+
+  // Special values not in database.
+  variable_set('seo_checklist_link', $form_state['values']['seo_checklist_link']);
+  variable_set('seo_checklist_thanks', $form_state['values']['seo_checklist_thanks']);
+  variable_set('seo_checklist_podcast', $form_state['values']['seo_checklist_podcast']);
+  variable_set('seo_checklist_book_references', $form_state['values']['seo_checklist_book_references']);
+
+  drupal_set_message(format_plural($count, 'Updated @count task successfully.', 'Updated @count tasks successfully.'));
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.css b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.css
new file mode 100644
index 0000000..52f8733
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.css
@@ -0,0 +1,13 @@
+/* $Id: seochecklist.css,v 1.1 2009/10/22 20:05:44 davereid Exp $ */
+
+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/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.info b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.info
new file mode 100644
index 0000000..59230b4
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.info
@@ -0,0 +1,12 @@
+; $Id: seochecklist.info,v 1.4 2009/10/29 00:01:19 davereid Exp $
+name = SEO Checklist
+description = A Search Engine Optimization checklist for Drupal.
+core = 6.x
+recommends[] = vertical_tabs
+
+; Information added by drupal.org packaging script on 2010-05-25
+version = "6.x-3.0"
+core = "6.x"
+project = "seo_checklist"
+datestamp = "1274793907"
+
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.install b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.install
new file mode 100644
index 0000000..a283a0b
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.install
@@ -0,0 +1,344 @@
+<?php
+// $Id: seochecklist.install,v 1.15 2010/05/25 13:13:44 eclipsegc Exp $
+
+/**
+ * @file
+ * Install, update and uninstall functions for the seochecklist module.
+ */
+
+/**
+ * Implementation of hook_schema().
+ */
+function seochecklist_schema() {
+  $schema['seo_group'] = array(
+    'description' => 'seo_group',
+    'fields' => 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'),
+  );
+  $schema['seo_checklist'] = array(
+    'description' => 'seo_checklist',
+    'fields' => array(
+      'id' => array(
+        'type' => 'serial',
+        'size' => 'tiny',
+        'not null' => TRUE,
+        'description' => 'id',
+      ),
+      'group_id' => array(
+        'type' => 'int',
+        'size' => 'tiny',
+        'not null' => TRUE,
+        'default' => 0,
+        'description' => 'group_id',
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'not null' => TRUE,
+        'description' => 'name',
+        'default' => '',
+      ),
+      'module' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'not null' => TRUE,
+        'description' => 'module',
+        'default' => '',
+      ),
+      '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,
+      ),
+      '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() {
+  drupal_install_schema('seochecklist');
+
+  $task_fields = "(id, group_id, name, module, download, enable, configure, order_id)";
+
+  // Page title tasks
+  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_checklist} $task_fields VALUES (41, 1, 'Token (required for other modules to function)', 'token', 'http://drupal.org/project/token', 'admin/build/modules', '', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (1, 1, 'Page Title Module', 'page_title', 'http://drupal.org/project/page_title', 'admin/build/modules', 'admin/content/page_title', 2)");
+
+  // URL tasks
+  db_query("INSERT INTO {seo_group} VALUES (2, 'URL paths', 'The second most important thing you can do.')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (2, 2, 'Clean URLs - Activate (Usually automatic. Please double-check!)', '', '', '', 'admin/settings/clean-urls', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (5, 2, 'Pathauto Module', 'pathauto', 'http://drupal.org/project/pathauto', 'admin/build/modules', 'admin/build/path/pathauto', 2)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (6, 2, 'Global Redirect Module', 'globalredirect', 'http://drupal.org/project/globalredirect', 'admin/build/modules', '', 3)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (38, 2, 'Path Redirect Module', 'path_redirect', 'http://drupal.org/project/path_redirect', 'admin/build/modules', '', 4)");
+
+  // Search engine account tasks
+  db_query("INSERT INTO {seo_group} VALUES (3, 'Create Search Engine Accounts', 'Set yourself up with the search engines.')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (7, 3, 'Get a Google Account - You will need this for several of the steps that follow - <a href=\"https://www.google.com/accounts/NewAccount\">https://www.google.com/accounts/NewAccount</a>', '', '', '', '', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (8, 3, 'Get a Yahoo Account - You will need this for steps that follow - <a href=\"http://www.yahoo.com/r/m7\">http://www.yahoo.com/r/m7</a>', '', '', '', '', 2)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (44, 3, 'Get a Windows Live ID - You will need this for steps that follow - <a href=\"https://signup.live.com/\">https://signup.live.com/</a>', '', '', '', '', 2)");
+
+  // Visitor tracking tasks
+  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_checklist} $task_fields VALUES (9, 4, 'Google Analytics Module', 'googleanalytics', 'http://drupal.org/project/google_analytics', 'admin/build/modules', 'admin/settings/googleanalytics', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (10, 4, 'Sign in to your Google Analytics Account - <a href=\"http://www.google.com/analytics\">http://www.google.com/analytics</a>', '', '', '', '', 2)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (11, 4, 'Create an Analytics for your website', '', '', '', '', 3)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (12, 4, 'Paste Google Analytics code into Google Analytics Module', '', '', '', '', 4)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (13, 4, 'Authenticate your site with Google Analytics', '', '', '', '', 5)");
+
+  // Page content tasks
+  db_query("INSERT INTO {seo_group} VALUES (5, 'Page content', 'Take control of your page content.')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (15, 5, 'Meta Tags Module (AKA Nodewords)', 'nodewords', 'http://drupal.org/project/nodewords', 'admin/build/modules', 'admin/content/nodewords', 2)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (16, 5, 'Scheduler Module', 'scheduler', 'http://drupal.org/project/scheduler', 'admin/build/modules', 'admin/settings/scheduler', 3)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (17, 5, 'HTML Purifier Module', 'htmlpurifier', 'http://drupal.org/project/htmlpurifier', 'admin/build/modules', 'admin/settings/filters/1', 4)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (45, 5, '<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=\"http://htmlpurifier.org/\">http://htmlpurifier.org/</a>', '', '', '', '', 5)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (18, 5, 'Search 404 Module', 'search404', 'http://drupal.org/project/search404', 'admin/build/modules', 'admin/settings/search404', 5)");
+
+  // Source code tasks
+  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_checklist} $task_fields VALUES (19, 6, 'Validate your site - <a href=\"http://validator.w3.org/\">http://validator.w3.org/</a>', '', '', '', '', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (20, 6, 'Check your links - <a href=\"http://validator.w3.org/checklink\">http://validator.w3.org/checklink</a>', '', '', '', '', 2)");
+
+  // XML sitemap tasks
+  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_checklist} $task_fields VALUES (47, 7, 'Site Verification Module', 'site_verify', 'http://drupal.org/project/site_verify', 'admin/build/modules', '', 0)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (21, 7, 'XML Sitemap Module', 'xmlsitemap', 'http://drupal.org/project/xmlsitemap', 'admin/build/modules', 'admin/settings/xmlsitemap', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (46, 7, '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} $task_fields VALUES (22, 7, 'Login to Google Webmaster Tools - <a href=\"http://www.google.com/webmasters/tools\">http://www.google.com/webmasters/tools</a>', '', '', '', '', 5)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (23, 7, 'Authenticate your site with Google (page 26)', '', '', '', '', 7)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (24, 7, 'Submit your XML Sitemap to Google - <a href=\"http://www.google.com/webmasters/sitemaps/\">http://www.google.com/webmasters/sitemaps/</a>', '', '', '', '', 9)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (25, 7, 'Login to Yahoo Site Explorer Account - <a href=\"https://siteexplorer.search.yahoo.com/\">https://siteexplorer.search.yahoo.com/</a>', '', '', '', '', 11)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (26, 7, 'Authenticate your site with Yahoo', '', '', '', '', 13)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (27, 7, 'Submit your XML Sitemap to Yahoo - <a href=\"https://siteexplorer.search.yahoo.com/submit\">https://siteexplorer.search.yahoo.com/submit</a>', '', '', '', '', 15)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (42, 7, 'Login to Bing - <a href=\"http://www.bing.com/webmaster/\">http://www.bing.com/webmaster/</a>', '', '', '', '', 17)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (43, 7, 'Authenticate your site with Bing', '', '', '', '', 19)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (28, 7, 'Submit your XML Sitemap to Bing - <a href=\"http://www.bing.com/webmaster/WebmasterAddSitesPage.aspx\">http://webmaster.live.com/webmaster/WebmasterAddSitesPage.aspx</a>', '', '', '', '', 21)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (29, 7, '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>', '', '', '', '', 23)");
+
+  // Social links tasks
+  db_query("INSERT INTO {seo_group} VALUES (8, 'Social Media', 'Using Social news sites, blogs, etc? Consider these:')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (30, 8, 'Digg This Module', 'diggthis', 'http://drupal.org/project/diggthis', 'admin/build/modules', 'admin/settings/diggthis', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (31, 8, '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} $task_fields VALUES (32, 8, 'Trackback Module', 'trackback', 'http://drupal.org/project/trackback', 'admin/build/modules', 'admin/settings/trackback', 3)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (48, 8, 'Activity Stream Module', 'activitystream', 'http://drupal.org/project/activitystream', 'admin/build/modules', '', 4)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (49, 8, 'Add to Any Module', 'addtoany', 'http://drupal.org/project/addtoany', 'admin/build/modules', '', 5)");
+
+  // Spam tasks
+  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} $task_fields VALUES (40, 9, 'HIGHLY RECOMMENDED: Sign up for Mollom\'s free service and get Mollom code - <a href=\"http://mollom.com/user/register\"> http://mollom.com/user/register</a>', '', '', '', '', 0)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (39, 9, 'HIGHLY RECOMMENDED: Mollom Module', 'mollom', 'http://drupal.org/project/mollom', 'admin/build/modules', 'admin/settings/mollom', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (33, 9, 'Captcha Module', 'captcha', 'http://drupal.org/project/captcha', 'admin/build/modules', 'admin/user/captcha', 2)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (34, 9, 'Akismet Module', 'akismet', 'http://drupal.org/project/akismet', 'admin/build/modules', 'admin/settings/akismet', 3)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (36, 9, 'Spam Module', 'spam', 'http://drupal.org/project/spam', 'admin/build/modules', 'admin/settings/spam', 4)");
+
+  // Geographic tasks
+  db_query("INSERT INTO {seo_group} VALUES (10, 'Geographic', '')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (50, 10, 'hCard Module', 'hcard', 'http://drupal.org/project/hcard', 'admin/build/modules', '', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (51, 10, 'Use the Meta Tags module to add geo meta tags to your site.', '', '', '', '', 2)");
+
+  // Optional (but helpful) tasks
+  db_query("INSERT INTO {seo_group} VALUES (11, 'Optional (but helpful)', '')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (52, 11, 'Vertical Tabs Module', 'vertical_tabs', 'http://drupal.org/project/vertical_tabs', 'admin/build/modules', '', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (53, 11, 'Administration Menu', 'admin_menu', 'http://drupal.org/project/admin_menu', 'admin/build/modules', '', 2)");
+
+  // Performance tasks
+  db_query("INSERT INTO {seo_group} VALUES (12, 'Performance', '')");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (54, 12, 'Turn on Drupal\'s built in caching.', '', '', '', 'admin/settings/performance/default', 1)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (55, 12, 'Boost Module', 'boost', 'http://drupal.org/project/boost', 'admin/build/modules', 'admin/settings/performance/boost', 2)");
+  db_query("INSERT INTO {seo_checklist} $task_fields VALUES (56, 12, 'Authcache Module', 'authcache', 'http://drupal.org/project/authcache', 'admin/build/modules', '', 3)");
+}
+
+/**
+ * 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();
+
+  $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));
+
+  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');
+  db_drop_table($ret, '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[] = update_sql("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[] = update_sql("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[] = update_sql("UPDATE {seo_checklist} SET name = 'Authenticate your site with Bing', order_id = 19 WHERE id = 43");
+  $ret[] = update_sql("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[] = update_sql("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($ret, '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");
+  while ($record = db_fetch_object($query)) {
+    $record->changed = strtotime($record->date_changed);
+    if (!$record->changed) {
+      $record->changed = time();
+    }
+    $ret[] = update_sql("UPDATE {seo_checklist} SET completed = {$record->changed} WHERE id = {$record->id}");
+  }
+
+  db_drop_field($ret, 'seo_checklist', 'date_changed');
+  db_drop_field($ret, 'seo_checklist', 'option_checked');
+  db_drop_field($ret, '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($ret, 'seo_checklist', 'subgroup_id');
+  db_add_field($ret, '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[] = update_sql("UPDATE {seo_checklist} SET module = LOWER(module)");
+  return $ret;
+}
+
+/**
+ * Fixed the link to Google Local Business Center.
+ */
+function seochecklist_update_6206() {
+  $ret = array();
+  $ret[] = update_sql("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[] = update_sql("UPDATE {seo_group} SET name = 'Social Media' WHERE id = 8");
+  $ret[] = update_sql("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/build/modules', '', 0)");
+  $ret[] = update_sql("INSERT INTO {seo_group} VALUES (10, 'Geographic', '')");
+  $ret[] = update_sql("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/build/modules', '', 1)");
+  $ret[] = update_sql("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[] = update_sql("INSERT INTO {seo_group} VALUES (11, 'Optional (but helpful)', '')");
+  $ret[] = update_sql("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/build/modules', '', 1)");
+  $ret[] = update_sql("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/build/modules', '', 2)");
+  $ret[] = update_sql("INSERT INTO {seo_group} VALUES (12, 'Performance', '')");
+  $ret[] = update_sql("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[] = update_sql("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/build/modules', 'admin/settings/performance/boost', 2)");
+  $ret[] = update_sql("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/build/modules', '', 3)");
+  return $ret;
+}
diff --git a/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.module b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.module
new file mode 100644
index 0000000..7650357
--- /dev/null
+++ b/kolab.org/www/drupal-6.26/sites/all/modules/seo_checklist/seochecklist.module
@@ -0,0 +1,75 @@
+<?php
+// $Id: seochecklist.module,v 1.14 2009/12/04 05:34:08 davereid Exp $
+
+/**
+ * @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/settings/seochecklist') {
+    return '<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_perm().
+ */
+function seochecklist_perm() {
+  return array('access seochecklist content');
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function seochecklist_menu() {
+  $items['admin/settings/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_footer().
+ */
+function seochecklist_footer($main = 0) {
+  if (variable_get('seo_checklist_link', 0)) {
+    return '<div align="center"><a href="http://www.volacci.com/" target="_blank">Drupal SEO</a></div>';
+  }
+}
+
+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;
+}





More information about the commits mailing list