Releasing v6.x-1.15-beta1.
[project/nodewords.git] / README.txt
1 Nodewords: The Drupal 6 Meta Tags module
2 ----------------------------------------
3
4 This module allows you to set some meta tags for the different content
5 available on your site, including nodes, users, views, taxonomy filters and
6 error pages.
7
8 Giving more attention to the important keywords and/or description on your site
9 may help you to get better positioning within public search engines.
10
11 This version of the module only works with Drupal 6.x.
12
13
14 Features
15 ------------------------------------------------------------------------------
16 The primary features include:
17
18 * The current supported basic meta tags are ABSTRACT, CANONICAL, COPYRIGHT,
19   GEO.POSITION, DESCRIPTION, ICBM, KEYWORDS, REVISIT-AFTER, ROBOTS, in addition
20   to the TITLE tag.
21
22 * The Dublin Core meta tag schema may be added by enabling the "Nodewords
23   extra meta tags" module.
24
25 * The Open Graph Protocol meta tags, as used by Facebook, may be added by
26   enabling the "Open Graph meta tags" module (see below).
27
28 * A pluggable system allow the inclusion of new meta tags in addition to the
29   ones provided by this module.
30
31 * Meta tags can be assigned site-wide defaults and then overridden on a
32   per-node, per-tag and per-path basis.
33
34 * It is possible to control which of the available tags will be available for
35   editing versus only using the previously configured values.
36
37 * All text of the DESCRIPTION and KEYWORDS meta tags are added to the search
38   system so they are searchable too; other meta tags could be added to the
39   search system too (depending on the code implemented from the module).
40
41
42 Integration with other modules
43 ------------------------------------------------------------------------------
44 Nodewords integrates with other modules for automatic selection of meta tags.
45
46 * On node pages all terms of specified vocabularies associated can be added to
47   the KEYWORDS meta tag.
48
49 * On node pages the DESCRIPTION meta tag can be automatically generated from
50   the node's teaser or body text.
51
52 * On taxonomy pages, the term description is used as the meta tag DESCRIPTION.
53   The term itself is added to the list of KEYWORDS. You can override the
54   description to use, if you wish.
55
56 * Previous versions of this module provided support for Views and Panels. This
57   feature has been removed from Nodewords 6.x-1.x (since August 15, 2009) as
58   the module now provides an API allowing other modules to integrate with it.
59
60 * This module may also integrate with Tagadelic, CCK, and others.
61
62 * The Meta tags Node Type module [1] allows defaults to be assigned to each
63   content type, which can then be overridden on individual nodes.
64
65 * The Domain Meta module [2] provides integration with the Domain Access
66   module [3].
67
68
69 Installing Nodewords (first time installation)
70 ------------------------------------------------------------------------------
71  1. Backup your database.
72
73  2. Copy the module as normal.
74    More information about installing contributed modules could be found at
75    "Install contributed modules" [4].
76
77  3. Enable the "Nodewords" module from the module administration page
78    (Administer >> Site configuration >> Modules).
79
80  4. Enable other modules which provide meta tags. The following are included:
81     - Nodewords basic meta tags: for "abstract", "canonical", "copyright",
82       "description", "keywords", "logo", "original-source", "revisit-after",
83       "robots", and "standout" meta tags, and the "title" HTML tag.
84     - Nodewords extra meta tags: for Dublin Core, "geo.placename",
85       "geo.position", "geo.region", "icbm" and "shorturl" meta tags.
86     - Nodewords Open Graph meta tags: for the Open Graph Protocol meta tags,
87       used for integration with Facebook's API.
88
89  5. Configure the module (see "Configuration" below).
90
91
92 Updating Nodewords (module version upgrade)
93 ------------------------------------------------------------------------------
94  1. Verify that the version you are going to upgrade contains all the features
95     your are using in your Drupal setup. Some features could have been removed
96     or replaced by others.
97
98  2. Backup your database.
99
100  3. Update current module code with latest recommended version. Previous
101     versions could have bugs already reported and fixed in the last version.
102
103  4. Complete the update process: set the site into maintenance mode, visit the
104     update.php script and finish the update operation. For more information
105     please see: http://groups.drupal.org/node/19513
106
107  5. Verify your module configuration and check that the features you are using
108     work as expected. Also verify that all required modules are enabled, and
109     permissions are set as desired.
110
111 Note: Whenever you have the chance, try an update in a local or development
112       copy of your site.
113
114
115 Configuration
116 ------------------------------------------------------------------------------
117  1. On the access control administration page ("Administer >> User management
118     >> Access control") you need to assign:
119
120     - The "administer meta tags" permission to the roles that are allowed to
121       administer the meta tags (such as setting the default values and/or
122       enabling the possibility to edit them),
123
124     - The "edit XYZ tag" permission to the roles that are allowed to set and
125       edit meta tags for the content (there is a permission for each of the
126       meta tags currently defined).
127
128     All users will be able to see the assigned meta tags.
129
130  2. On the settings page ("Administer >> Content management >> Meta tags") you
131     can specify the default settings for the module. To access this page users
132     need the "administer meta tags" permission.
133
134  3. Enable specific meta tags for editing before they are available for use by
135     users who do not have the "administer meta tags" permission.
136
137  4. The front page is an important page for each website, therefore you can
138     specifically set the meta tags to use on the front page meta tags settings
139     page ("Administer >> Content management >> Meta tags >> Default and
140     specific meta tags >> Front page"). Users need the "administer meta tags"
141     permission to do this. When there are resources providing meta tags
142     promoted in the front page, you may force the usage of "Front page" meta
143     tags superseding all of them.
144
145     Alternatively, you can opt not to set the meta tags for the front page on
146     this page, but to use the meta tags of the node, term or other page the
147     used to control the front page. To do this, uncheck the "Use front page
148     meta tags" option on the main settings page.
149
150     Note that, in contrast to previous versions of this module, the site
151     mission and/or site slogan are no longer used as DESCRIPTION or ABSTRACT
152     on the front page!
153
154  5. Each content type should be configured to control whether certain meta tags
155     should be automatically generated, e.g. the "description" tag can be
156     automatically taken from the node teaser.
157
158
159 Open Graph Protocol Extra Steps
160 ------------------------------------------------------------------------------
161 Because of a limitation in Drupal 6, if the Open Graph meta tags module is
162 enabled the site's theme will have to be customized. In order to work
163 correctly, and pass XHTML validation, the page.tpl.php for any theme(s) in use
164 must to be customized to add the following attribute to the HTML tag:
165
166   prefix="og: http://ogp.me/ns#"
167
168 As an example, to make it work with the Garland theme the HTML tag must be
169 changed to the following:
170
171   <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>" prefix="og: http://ogp.me/ns#">
172
173 Unless this change is made the page output will fail XHTML validation and the
174 Open Graph meta tags may not be properly identified by Facebook.
175
176
177 Using With non-PHPTemplate Themes (Chameleon, Marvin)
178 ------------------------------------------------------------------------------
179 Because Nodewords depends upon PHPTemplate hooks in order to output the meta
180 tags it will not work with themes that do not use that template engine, e.g.
181 the core Chameleon or Marvin themes. In order for these to work a Nodewords
182 function must be called so it can insert the necessary tags into Drupal's
183 internal list of head tags. To insert the tags, edit the main theme file, e.g.
184 chameleon.theme, and insert the following at the top of the hook_page()
185 implementation, e.g. chameleon_page:
186
187 function chameleon_page($content, $show_blocks = TRUE, $show_messages = TRUE) {
188   /**
189    * Start Nodewords Changes.
190    */
191   // Allow Nodewords to add its tags to the internal HTML head tags array.
192   if (module_exists('nodewords')) {
193     $vars = array();
194     nodewords_preprocess_page($vars);
195   }
196   /**
197    * End Nodewords Changes.
198    */
199
200 Once that is added the tags will be inserted into the HTML output as expected.
201
202
203 Known Issues
204 ------------------------------------------------------------------------------
205 * Meta tags cannot be output with non-PHPTemplate themes like Chameleon or
206   Marvin without customization (see above).
207 * Use of the Open Graph meta tags sub-module requires customizing the
208   page.tpl.php file for the site's theme(s) (see above for details).
209 * Versions 6.x-1.9, 6.x-1.10 and 6.x-1.11 had a severe bug that could cause
210   data loss when updating from 6.x-1.8 or older. The problem was in how
211   nodewords_update_6162() changed the format of the 'id' field, causing records
212   with an 'id' (nid, tid, uid) over 65,536 to be lost. The bug has been fixed
213   in this release but any data lost as a result of this bug is irretrievable.
214   The maintainers are terribly sorry about this and humbly apologize if your
215   site(s) suffered data loss as a result of this and vow to do our utmost to
216   ensure errors of this magnitude never happen again.
217 * Many of the code & API changes from the 6.x-1.12-x development cycle have
218   been reverted; modules that integrate with the Nodewords APIs will have to
219   be updated accordingly.
220 * Nodewords currently does not support tokens, that functionality was lost
221   when the 6.x-1.12-x codebase was reverted. Adding Token support is planned
222   for a future release: http://drupal.org/node/1380362
223
224
225 Related modules
226 ------------------------------------------------------------------------------
227 Some modules are available that extend Nodewords with additional functionality:
228
229 * Domain Meta Tags, by Katrin Silvius
230   http://drupal.org/project/domain_meta
231   Integrates with the Domain Access module, so each site of a multi-domain
232   install can separately control their meta tags.
233
234 * Meta tags Node Type, by Ariel Barreiro
235   http://drupal.org/project/nodewords_nodetype
236   Allows meta tag defaults to be controlled by content type, not just globally
237   and per node.
238
239 * SEO Friend, by Kristen Pol
240   http://drupal.org/project/seo_friend
241   Provides some assistance with ensuring that meta tags are all properly
242   assigned, which can be very useful for SEO beginners.
243
244 * Nodewords Meta Title, by Zoltán Adamek
245   http://drupal.org/project/nodewords_meta_title
246   Adds the <meta name="title" /> tag, which maybe be useful for some rare
247   scenarios.
248
249
250 Credits / Contact
251 ------------------------------------------------------------------------------
252 The current maintainer is Damien McKenna [5].
253
254 The original author of this module is Andras Barthazi. Mike Carter [6],
255 Gabor Hojtsy [7] and Robrecht Jacques [8] provided some feature enhancements,
256 while Alberto Paderno [9] maintained the module for much of its Drupal 6
257 lifecycle. Dave Reid [10] contributed greatly to the launch of v6.x-1.13, and
258 Nate Haug [11] played an instrumental role in deciding to scrap the ill-
259 conceived v6.x-1.12 release.
260
261 Development is currently sponsored by Media Current [12], previous sponsors
262 include Bluespark Labs [13] and others.
263
264 The best way to contact the authors is to submit an issue, be it a support
265 request, a feature request or a bug report, in the project issue queue:
266   http://drupal.org/project/issues/nodewords
267
268
269 References
270 ------------------------------------------------------------------------------
271 [1] http://drupal.org/project/nodewords_nodetype
272 [2] http://drupal.org/project/domain_meta
273 [3] http://drupal.org/project/domain
274 [4] http://drupal.org/documentation/install/modules-themes/modules-5-6
275 [5] http://drupal.org/user/108450
276 [6] http://drupal.org/user/13164
277 [7] http://drupal.org/user/4166
278 [8] http://drupal.org/user/22598
279 [9] http://drupal.org/user/55077
280 [10] http://drupal.org/user/53892
281 [11] http://drupal.org/user/35821
282 [12] http://www.mediacurrent.com/
283 [13] http://www.bluesparklabs.com/