Login

Username

Password





Register   Reset password

Get Cuyahoga at SourceForge.net. Fast, secure and Free Open Source software downloads

Forum

Welcome Guest Search | Active Topics | Members

Art Experinece MetaData Management module Options
dop
Posted: Friday, May 12, 2006 1:36:22 AM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
As presented in the ShowCase, for the arkred">Art Experience portal project (http://www.xp-rience.net/) a set of specific modules have been developped and are offered to the Cuyahoga Community in the spirit of Open Source. The first one manages metadata and is 100% compliant with the core (version 1.0.0). Feel free...

arkred">The Meata Data Management module includes

A complete list of both META http-equiv and META name with their definition and syntax. This list is maintained inside a separate XML configurations file and is easily customizable by the administrator

A separated “defaults” Meta Tags files containing the default name and content for a web site

The possibility for an external module to register dynamically new Meta tags during page generation

Both binaries and source code are available. But... don't forget to register angel

Installation is easy. To use it, just add a "xpMetaData" section anywhere in a node. Only the editor or administrator will access the settings.

Note: the db script is only available for SQL2000. If somebody can translate to MySql thanks to send me the scripts!

For more technical info follow this path
martijnb
Posted: Saturday, May 13, 2006 7:08:49 PM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
Excellent stuff. Well done!

Two remarks:
- Currently the module only works when attached to a Node. It would be great if it also works when attached to a template. This way you can add a set of default meta tags to lots of pages at once.
- Caching: regular module output caching doesn't affect this module. Any ideas how the meta data could be cached? I think, you could probably leverage the query cache of NHibernate.
dop
Posted: Monday, May 15, 2006 8:27:03 PM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
Hi Martijn,

Two things:

- Yes I've preferred to maintain the metadata at the node level. Why? I didn’t want to touch anything in the core. So, attaching metadata at the node level was the most natural way. But your point is accurate. We can place the module in the template and on the pre-render event, if no “node level” metadata are found, we can feed directly from the defaults config file. This is a really straightforward modification (just complete the "else" part) angel

- For caching, that’s another story. Your point is again accurate concerning nHibernate, but my vision is to provide also a more advanced cache technology. I have practiced with success the Microsoft Enterprise library (version 1.1 and 2.0). They have a general “object caching” block which is really good and performant and doesn't require a specific database. This can be helpful for multipurpose at the core level. I suggest to take a look to their enterprise block: See

http://msdn.microsoft.com/practices/guidetype/AppBlocks/default.aspx?pull=/library/en-us/dnpag2/html/entlib.asp

Anyway, thanks for your comments... star star star
swilliam
Posted: Monday, May 15, 2006 8:36:42 PM

Rank: Advanced Member
Groups: Member

Joined: 4/25/2006
Posts: 125
Points: 33
Location: Cambridge, UK
My version of Cuyahoga supports keyword and description metatags. These are stored in the core database against each node, and also against the site, with node definitions overriding the site definitions. I chose to support just those two as they are most commonly used and most regularly changed. In theory, it would be better to support any number of metatags, but my approach simplifies the admin and hides the complexity.

Many thanks

Simon
dop
Posted: Monday, May 15, 2006 8:40:06 PM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
dop wrote:

- Yes I've preferred to maintain the metadata at the node level. Why? I didn’t want to touch anything in the core. So, attaching metadata at the node level was the most natural way. But your point is accurate. We can place the module in the template and on the pre-render event, if no “node level” metadata are found, we can feed directly from the defaults config file. This is a really straightforward modification (just complete the "else" part) angel


Correction, as for the moment there must be ONLY one metadata module par node (the handler is changing the control ID), this behaviour must be "deactived" when the module is attached directly to the template.
dop
Posted: Monday, May 15, 2006 8:48:08 PM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
swilliam wrote:
My version of Cuyahoga supports keyword and description metatags. These are stored in the core database against each node, and also against the site, with node definitions overriding the site definitions. I chose to support just those two as they are most commonly used and most regularly changed. In theory, it would be better to support any number of metatags, but my approach simplifies the admin and hides the complexity.

Many thanks

Simon


Hi Simon, you are right, ideally the metadata management is the responsability of the core, so you have decided to modify it, I've take the other path... don't touch it.

There are always many solutions to a problem. Most important is to apply one [Zao-Yin, 700 BC]
dop
Posted: Tuesday, May 16, 2006 12:47:35 AM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
martijnb wrote:
Excellent stuff. Well done!

Two remarks:
- Currently the module only works when attached to a Node. It would be great if it also works when attached to a template. This way you can add a set of default meta tags to lots of pages at once.
- Caching: regular module output caching doesn't affect this module. Any ideas how the meta data could be cached? I think, you could probably leverage the query cache of NHibernate.


Okay, I like to be challenged. So, since my last post the first problem is solved.... angel

Now, you can attach a xpMetaData module at the TEMPLATE level and still continue (when you need) to place another one at the NODE level.

Result? you have for your complete site defaults metatags automatically appended... and when you want to refine, change the defaults, simply place another one at the node level.

Both are working together and all the metadata are merged smoothly

The new binaries, source code and documentation (xpMetaData v.1.1.0) are available for download at

http://www.xp-rience.net/xpWeb/homeEN/technologydownloads.aspx

Don't forget to register or login to access the binaries and source code

Have fun wackedoutsunnyface
martijnb
Posted: Tuesday, May 16, 2006 6:27:01 AM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
dop wrote:


Hi Simon, you are right, ideally the metadata management is the responsability of the core, so you have decided to modify it, I've take the other path... don't touch it.

There are always many solutions to a problem. Most important is to apply one [Zao-Yin, 700 BC]


If I may add to that, meta data will be integrated in the core in the future but in the meantime, I am very pleased to have a module that accomplishes this in a very nifty way happy.
martijnb
Posted: Tuesday, May 16, 2006 6:33:33 AM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
dop wrote:

Okay, I like to be challenged. So, since my last post the first problem is solved.... angel

Now, you can attach a xpMetaData module at the TEMPLATE level and still continue (when you need) to place another one at the NODE level.


Now this is perfect! Can't wait to check it out.

About the caching: we used to have out own caching layer that cached all objects like Sites, Nodes, Sections etc. With this we ran into concurrency problems under high load. The easiest way to solve this was by enabling NHibernate's second level cache and it has stayed this way just because it works well.
dagda1
Posted: Tuesday, May 16, 2006 7:50:02 PM
Rank: Advanced Member
Groups: Member

Joined: 3/7/2006
Posts: 59
Points: 6
I have tried to find some good documentation about Nhibernate's second level caching but have drawn a blank. Can anyone briefly explain it or does anyone have a link that explains it better??
martijnb
Posted: Wednesday, May 17, 2006 5:01:42 AM

Rank: Administration
Groups: Administration , Member

Joined: 12/30/2004
Posts: 1,674
Points: 1,824
Location: Wageningen (NL)
dagda1 wrote:
I have tried to find some good documentation about Nhibernate's second level caching but have drawn a blank. Can anyone briefly explain it or does anyone have a link that explains it better??


Here, everything is explained: http://www.hibernate.org/hib_docs/reference/en/html/performance.html#performance-cache.

It just caches object instances for a given period of time (including collections when specified) so no database queries are required for those objects.
What I forgot to mention: there is also the query cache. With this, results of a given query are cached. We utilize this in Cuyahoga, for example when querying for the root nodes. The hql query is something like "from Node n where n.ParentNode is null and n.Site.Id = confusediteId". This query fires at almost every request and is a perfect candidate for caching since root nodes don't happen to change very often. When the above query is cached a request for the root nodes for a particular site doesn't result in a database query.

In fact: when you also use output caching for the modules, combined with second level cache and query caching, it often happens that a request for a page results in ZERO database queries!
dop
Posted: Tuesday, June 13, 2006 11:48:54 PM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
martijnb wrote:
dop wrote:

Okay, I like to be challenged. So, since my last post the first problem is solved.... angel

Now, you can attach a xpMetaData module at the TEMPLATE level and still continue (when you need) to place another one at the NODE level.


Now this is perfect! Can't wait to check it out.

About the caching: we used to have out own caching layer that cached all objects like Sites, Nodes, Sections etc. With this we ran into concurrency problems under high load. The easiest way to solve this was by enabling NHibernate's second level cache and it has stayed this way just because it works well.


Very late comment on this post. The xpMetaData module is now using the 2nd cache level of NHibernate. Totally forget to tell that for those who are still interested in the module...
dop
Posted: Thursday, July 6, 2006 3:38:17 AM

Rank: Member
Groups: Member

Joined: 3/19/2006
Posts: 14
Points: 0
Okidou,
the yellow cat is back to announce a new version of the arkred">xpMetaData module (version 1.2.0).

"Why a new version again" I hear you...

Well, SEO (Search Engine Optimization) is quite a nightmare, trust me. So we must have a complete control on ALL the elements in the HEAD section.... including the "TITLE". Why is it so important to have a good title… just make a search on Google and you will directly got the point.



So, currently, the core is generating a “default title” based on the site name and the current node title. It’s quite easy to modify the title from the code. For instance, we have done that with the Article module.

In the articles.ascx component you can do that in two ways:

Code:
base.Module.DisplayTitle = this._activeArticle.Title

So you get: web site name + your article title placed in the “TITLE” tags.
You can also do this:
Code:
base.PageEngine.TemplateControl.Title = this._activeArticle.Title

in this case the complete title is replaced.

But what about pages containing plenty of StaticHtml content?

Simply get the latest version of the arkred">amazing Art Experience project xpMetadata module.

You will be able to manage your title tag, as another meta tags
Check on arkred">Art experince project... Don't forget to login or register to access the binaries and source code.

And have fun


hobbis
Posted: Monday, February 22, 2010 4:37:06 AM

Rank: Advanced Member
Groups: Member

Joined: 12/11/2007
Posts: 89
Points: 267
Great module! I have adapted it to run on Cuyahoga 1.6. and works like a dream.

Thank you.

Web Developer, Kent - Coolbytes
Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Main Forum RSS : RSS

Yet Another Forum.net version 1.9.0 running under Cuyahoga.
Copyright © 2003-2006 Yet Another Forum.net. All rights reserved.