When you edit the Meta tags of a Panel Page, and then submit, it overwrites the last one edit.
If you edit another one, it overwrite the last one, and so on...

That's mean, that only one the meta tags of a panel page are stored in the database.
I take a look on the database and i see that in table: metatags_quick_path_based
there are three rows only with the field "value" empty in one row, and in the another two, one are related to keywords, and the other to description.

I edit several the meta tags of several Panel Pages, and the number of rows nevers up....... and only stores the last one edit.....

Any idea?

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

valthebald’s picture

Assigned: Unassigned » valthebald
Status: Active » Fixed
FileSize
576 bytes

Actually, this is a side-effect of fixing #1185178: Change location of admin pages to Configuration->Search and metadata - number of path parts changed, so hook_menu passed wrong argument to the editing form.
Attached please find the fix

valthebald’s picture

Title: Panel Page Meta tags not assigned properly » Path based Meta tags not assigned properly
Issue tags: +Path based meta tags
JOINSO’s picture

Txs, valthebald!

I made the changes of the pathc, but after this i get this error when i edit the meta tags:

Warning: Cannot modify header information - headers already sent by (output started at /home/webadmin/beta.bicisprint.com/html/includes/common.inc:2562) en drupal_send_headers() (línea 1039 de /home/webadmin/beta.bicisprint.com/html/includes/bootstrap.inc).
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'jcms.cache_variable' doesn't exist: DELETE FROM {cache_variable} WHERE (expire <> :db_condition_placeholder_0) AND (expire < :db_condition_placeholder_1) ; Array ( [:db_condition_placeholder_0] => 0 [:db_condition_placeholder_1] => 1308298430 ) en cache_clear_all() (línea 169 de /home/webadmin/beta.bicisprint.com/html/includes/cache.inc).

I undone the changes, but the problems still there....

Any idea?

valthebald’s picture

I doubt that missing cache_variable table can be related with metatags_quick.
Where this table comes from? It's not part of core tables, as far as I see

valthebald’s picture

Have a look at #1074084: Table 'xxxxxxx.cache_variable' doesn't exist - may be it can help

JOINSO’s picture

NOW IT WORKS!

Good job, valthebald!

I created the table missing (cache_variable). Also i see that is an exact copy of cache_field ....... Why two identical tables????

And now works the Panel Page!!!

But only remaining thing doesn't work.....

I had one Panel page with Variants:

http://beta.bicisprint.com/es/club

and

http://beta.bicisprint.com/club

The default language of the site is Catalan, and all of the paths of this language hasn't prefix.
The paths of Spanish content starts with /es/......

In some Panel Pages with same name for both languages i have to make variants based on url path.

If i edit the Meta tags of /es/club (internally alias is club) it stores with language es....
But if edit /club (url path in catalan) it's overrides the es version.....

Any idea?

Regards!

JOINSO’s picture

Hi!

I make some tests in the database.

Here are the contents for Panel Page (/club and /es/club):

'club', 'es', 46, 'bicisprint, ciclisme'
'club', 'es', 47, ''
'club', 'es', 48, 'Aquesta és la página web del club ciclista BiciSprint.'
'es', 'es', 46, 'ciclismo, sabadell'
'es', 'es', 47, ''
'es', 'es', 48, 'Esta es la pagina web del club ciclista BiciSprint'

I try to change the path field to:

club (for catalan) and /es/club (for es: spanish)

Doesn't work....

Also I put language ca but it doesn't work....

Regards!

valthebald’s picture

I don't use panels, and after quick attempt didn't understand how they handle i18n issues.
Is there 'language' property?

JOINSO’s picture

Hi, valthebald!

Panels Pane doesn't handle i18n, and there is not any field that store it.
There are some post about this....

The selection of the language in Panels Pane relies on the selection of language in Drupal:

In Drupal 7:

http://YOUR_SITE#overlay-context=user&overlay=admin/config/regional/language/configure

Then you can config the detection method of language.
In my case the order is:

URL
Session
User
Navigator
Default (this is the default language of the site).

In languages,you can have several languages, and every languages has their prefix in URLs.
In my case, the default language is Catalan, and the prefix of URL is empty.
For other languages, like Spanish, i have the "es" prefix.

When you navigate to content with "es/path" then language selected is Spanish.

When I test Meta Tags Quick with Panels Pages, the language always is Spanish (es).
I don't know why because the default language of the site is catalan (ca).

I think that Meta Tags Quick must follow the rules of Language Detection if they cannot retrieve it from the content.
Also the another problem is the path.... that i think is not handled properly.
I opened another issue where i explained more clearly and with some examples.

If you need help to make changes on the module, i can help you.

Regards!

JOINSO’s picture

Status: Fixed » Closed (fixed)

Hi!

You can close it.

I found the problem.

The problem is the configuration of language detection:

In Drupal 7, if you have this order of detection:

URL
Session
User
Navigator
Default (this is the default language of the site).

The result return "es" when you are viewing a page under default language (ca).

If i only enable this kind of selection:
URL
Default.

the detection of language works well and Meta Tags Quick get the correct language.

Regards!