Hello, I have just started using this module and really like the simple and efficient interface and functionality.
It seems to work fine on simple node types (page, blog etc).
However, I also use the popular Panels module (http://drupal.org/project/panels) on my site. A number of content types are displayed as panel node overrides. I cannot seem to get the meta tags that I associate with these nodes to display. I've tested this now on several different content types, modified various module settings etc and this problem seems to be consistent.
Is this functionality intentionally left out of the module or is this something that should be working? Assuming the latter, I've initially categorized this as a bug report.
Comments
Comment #1
fractile81 commentedIntegrated Metatags works on the nodeapi "view" hook. I don't know much about Panels, so I'm uncertain if it's bypassing that. I too would assume that it should be working.
Can you provide any extra information? Maybe a sample use case so I can install Panels on my dev server and try to reproduce what you're (not) seeing? Thanks!
Comment #2
danieldd commentedThanks very much for getting back.
If you want to reproduce this install Panels module (which is a great module, by the way). Then create a node layout for one of your content types with panels. See instructions for how to do this here:
http://drupal.org/node/661656
(In my case the node layouts include various CCK fields from the node itself plus various Views that contain data from the node and from referenced or related nodes, although not sure if this is significant).
On my set up the nodes that are not displayed through Panels show the metatags. Those with Panels node layouts do not. There are other modules being used on my set up so its possible the issue is not Panels related but so far everything is pointing towards Panels being the issue.
Thanks for the module, and hope you can identify the problem.
Comment #3
danieldd commentedHello, I've done a bit more experimentation, using both the last beta release and the dev release of integrated meta tags.
I still cannot get meta tags to appear on Panels node templates.
Re the hook Panels uses to retrieve the node information, I am not sure, but this description is provided in Panels' documentation:
"In a Panel, you can create contexts, which represent the objects being displayed. For example, when displaying the node view, NID argument on the page is converted into a context through the 'arguments' system. You can then create a relationship from that node to, say, the node author, or if you have a node reference from CCK, a related node [as of CCK 2.3]."
I believe you can find full documentation on the module at: http://doxy.samboyer.org/panels2/
I really hope you can help. From the issue queues in both Panels and on Nodewords module, there seems to be strong demand for this- There is currently no solution in Drupal for this functionality that I am aware of. If anyone knows otherwise very interested to hear!
I am not able enough to patch this myself, but if there is anything I can do to help re: testing etc please let me know. Thanks.
Comment #4
danieldd commentedSorry for the multiple posts, but I notice that the Page Title module ( http://drupal.org/project/page_title ) does integrate perfectly with Panels on this issue.
As I presume both modules are doing similar things, perhaps this module may point to a solution?
Comment #5
fractile81 commentedGood to know, I'll see what I can do with it when I find the opportunity.
Comment #6
duellj commentedI've been having problems with this module and panels as well, and found a simple solution; hopefully it will work for you as well:
In the "node being viewed" panel content settings, uncheck "No extras". If this is left unchecked, panels will bypass nodeapi "view" hooks.
Also, if you want to use the [title] token, check the "Leave node title" option, otherwise panels will unset $node->title.
If this indeed is the solution for you too danieldd, then maybe there should be a little writeup on the project page or README.txt that has this fix.
Comment #7
danieldd commentedThanks - this is great news.
However I cannot seem to find the "node being viewed" panel content settings you talk about.
I can find the option to "Leave node title". However, there is no checkbox for "no extras" on this page (/admin/build/pages/nojs/operation/node_view/handlers/node_view_panel_context/content), and I can't seem to find it anywhere else.
Is this option on another page in the panels UI? How do I access it?
Or is this checkbox a new feature of Panels? I am running Panels 6.x-3.0
Thanks very much for your help!
Comment #8
duellj commentedI'm using Panels 6.x-3.2, but just checked it out with Panels 6.x-3.0, and it looks like the "no extras" is still there. It's in the "Node Content" pane.
Comment #9
danieldd commentedGreat, I've found the settings you refer to: for those that can't find them, in the "content" page for your panel, you need to add node/"node content" to one of your regions (I had not done this, I was loading node content through "existing node", views, and other settings). Adding this pane (with the settings mentioned by duellj) adds the nodeapi view hooks.
NB adding "node content" means you are adding the node teaser or body to the page. As I am doing something slightly more complex with the page layout, in my case I then used Contemplate to override the body content this would otherwise have put in the page.
Once this was done, as duellj mentions, you have full access to integrated metatags functionality for panels node pages.
There are a few threads related to this issue that I will point to this solution. But I agree, would be useful to put in the readme.txt or in the documentation (http://fractile81.com/int_meta).
Thanks, really helpful advice!
Comment #10
JonoB commentedThis is really freaking me out.
I have a Panel set as the main front page for my website. Each region is derived from existing nodes. No metatags come up on this page.
OK, so I followed the instructions above, and for the top region in my panel page I did the following:
-Click Add Content
-Select Node > Node content
-Uncheck all options in the 'Configure Node content' popup
-Click finish
-For this newly added panel: The node title now shows up right at the top of the node, above other regions. This is good. The node content does not show up at all - this is good.
-Click save
-View source on page: no meta tags or descriptions (even though they appear for every other non-panel page in the website.
Am I missing something really obvious here?
Comment #11
danieldd commentedJonoB,
This technique works for panel node templates - ie where you override a node view with panels - see http://drupal.org/node/661656. The page has the same url path as the node otherwise would.
It sounds like you are creating a panel node (ie a bespoke page in panels, not just overriding an existing node). I haven't tried using integrated metatags with these. It may be easiest if there is a custom way to insert the tags if this is just one page. If you do solve it, please post here.
Thanks
Comment #12
JonoB commentedThanks for the reply danieldd.
I've moved over to http://drupal.org/project/nodewords module, which lets you set tags for specific pages (like home page, 404, and any other custom paths that you want). Seems to fit the bill for me.
Thanks anyway.
Comment #13
mstidanieldd,
How did you override the body content with Contemplate?
What I have done is to activate the 'Affect body output' option in Contemplate and leave the body template textarea beneath empty. However, this still shows the page title, the user picture who submitted the article and the taxonomy terms. Am I doing something wrong, or did you just use the css display:hidden property to hide the content?
Comment #14
danieldd commentedThis is some time ago and I cannot remember exactly how this works, but I did not remove my body content entirely. I just edited it with contemplate to include only the info I wanted.
Looking at the UI in contemplate where you edit the body template, I see it says "Leave this field blank to leave body unaffected. ". Perhaps leaving the template blank therefore leads it to display default body content.
I'm afraid I cannot remember exactly what I did, but don't remember the issues you mention being a significant obstacle.
Comment #15
anduffy commentedHey all,
This thread is a little old, but since I'm currently working on these issues I thought I'd share what I did in case it's helpful to someone else...
I'm using a panel (non-node panel) as the front page of my site. I couldn't get Integrated Metatags working for the front page. So I've ending up hard coding tags into the page.tpl.php template just for the front page. All other pages get dynamic tags from Integrated Metatags.
So just above my head output, I put:
All other pages get dynamic tags from Integrated Metatags.
Of course if you wanted the tags on the front page to change regularly, hard coding would become a chore. So it would be great if this could be addressed in the module.
Cheers,
Andy