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();
  }
}

?>