A google és egyéb keeresők szempontjából előnyös ha a web oldalunk cikkeinél a metakey adat ki van töltve. Ugyancsak szükséges ez az adat a cimkefelhők kialakitásához is.
A cikk publikálók viszont hajlamosak elfelejteni ennek kitöltését.
Az alábbi patch acikk created_by_alias és title adatát felhasználva automatikusan képezi a metakey adatokat amennyiben azokat a cikk feltöltő nem adta meg.
A scriptet jumi modulként kell az oldalon "megjeleniteni" valójában látható kiementet a script nem produkál.
Amennyiben a metakey adat alapján cimkefelhőt generálunk, akkor olyan modult használjunk ahol "back lista" adaható meg, ugyanis az automatikusan generált metakey -k mindegyikében szerepel a "createmetakey" szó, és ezt célszerű a cimkefelhőn elrejteni.
Javasolt modul: mod_my_cloud
<?php
/** metakey kreálás a title és a created_by_alias alapján
* azokhoz a tételekhez generál ahol metakey üres
* vagy modified > metadata (modosult) és metakey eleje = cretemetakey
*/
$kivetelek = array('az','a','is','és','de','vagy','mert',
'hogy',' ','',
'the','is','are','
egy','meg','még','mint');
$db1 = JFactory::getDBO();
$db1->setQuery('select id,title,created_by_alias,metakey,metadata
from #__content
where metakey = "" or
(modified > metadata and substr(metakey,1,13)="createmetakey")
order by id
limit 100');
$records = $db1->loadObjectList();
foreach ($records as $record) {
$record->title = str_replace(':',' ',$record->title);
$record->title = str_replace(',',' ',$record->title);
$record->title = str_replace('.',' ',$record->title);
$record->title = str_replace(';',' ',$record->title);
$record->title = str_replace('-',' ',$record->title);
$record->title = str_replace('_',' ',$record->title);
$record->title = str_replace('/',' ',$record->title);
$record->title = str_replace('(',' ',$record->title);
$record->title = str_replace(')',' ',$record->title);
$record->title = str_replace('[',' ',$record->title);
$record->title = str_replace(']',' ',$record->title);
$record->title = str_replace('%',' ',$record->title);
$record->title = str_replace('"',' ',$record->title);
$record->title = str_replace("'",' ',$record->title);
$record->title = str_replace('&',' ',$record->title);
$record->title = str_replace('!',' ',$record->title);
$record->title = str_replace('?',' ',$record->title);
$record->title = strtolower($record->title);
$record->created_by_alias = strtoupper($record->created_by_alias);
$metakey = '';
$w = explode(' ',$record->title);
$w[] = $record->created_by_alias;
foreach ($w as $w1) {
$w1 = trim($w1);
if (in_array($w1, $kivetelek) == false) {
if (strlen($w1) > 2) $metakey .= $w1.', ';
}
}
if ($metakey != '') {
$db1->setQuery('update #__content
set metakey="createmetakey, '.$metakey.'",
metadata="'.date('Y-m-d H:i:s').'"
where id="'.$record->id.'"');
$db1->query();
}
}
?>