Google +1

Azért nem sikeres egyetlen egy Google közösségi szolgáltatás sem, mert nincs igazi, kitűzött cél, amit meg akarnának oldani. A Google csak annyit akar, hogy legyen saját közösségi oldala. De mit akarnak a felhasználók?

A Facebook attól sikeres, mert segít az embereknek kielégíteni egy valós igényt. A Facebook segít kapcsolatot tartani a közeli és távoli ismerősökkel, és közben olyan dolgokat megtudni, amit egyébként csak nehezen lehetne kideríteni, pl. hogy a főnök hova megy bulizni hétvégén, vagy a csinos bolti eladó lány szingli-e. Sőt, akár idegenekkel is fel lehet venni a kapcsolatot, ha kicsit megbökdössük :)

D ne csak a Facebookkal példálózzunk: a Twitter-en azokkal tudom tartani a kapcsolatot akik éppen most csinálnak valamit, a Foresquare-en azokkal akik éppen itt csinálnak vagy csináltak valamit, a Linkdin-en meg azokkal, akik kifejezetten üzleti célból kommunikálnak. És lehetne folytatni a sort.

A Google +1 milyen célt szolgál? Nincs kitűzött célja, nincs egy olyan probléma az emberek életében, amit megoldana. Ez igaz a Buzz-ra, a Wave-re és különösen igaz a most bevezetett +1-re is. A Wave lehetett volna jó, mert sokkal-sokkal jobb volt, mint az email. De úgy tűnik, a netpolgároknak pont elég jó az email is.

A +1 viszont semmit, de tényleg semmit nem ad hozzá az emberek életéhez. Minek osszak meg egy keresési találatot a barátaimmal?! Hiszen akkor még nem tudom, hogy mi van ott. És azt talán a Google sem gondolja komolyan, hogy utána visszamegyek a keresőre, csak azért hogy ráplusszegyeljek.

A Drupal kereső adatok használata saját modulban.

Ez is egy olyan bejegyzés, amit leginkább magamnak írok. Nem egy bejegyzést írtam már, amit újra meg újra visszakeresek, hogy kimásoljam a benne lévő kódrészletet. Bár a logfájlok alapján, úgy tűnik másokat is érdekelnek ezek a bejegyzések.

Szóval, többször előfordult már, hogy a Drupal kereső funkciójának az adatait integrálni akartam egy saját megoldásba, és mindig elég nehezen sikerült megtalálni a jó megoldást, ezért most leírom egyet, ami nekem bevált.

Mikor is van erre szükség? Legutóbb egy meglehetősen összetette kereső funkciót kellett kivitelezni, aminek a kulcsszavas kereső funkció csak egy kis része volt. Máskor pedig a hírekhez rendelt címkéket használtam kereső kifejezésnek, így implementáltam hasonló tartalom ajánló funkciót a oldalra, mert a meglévő megoldások nem váltak be.

Ezeknek az eseteknek közös eleme, hogy a Drupal keresővel egy keresést kell végeztetni, de az eredményeket nem megjeleníteni kell, ehelyett további feldolgozás vár az adatokra.

Az első ötlet, hogy közvetlenül a search_* adatbázis táblákon végzünk keresést. Bár ez is egy lehetőség, meglehetősen összetettek ezek a táblák, nem arra vannak kitalálva, hogy egyetlen SELECT utasítással hozzájussunk az eredményhez. Ennél sokkal egyszerűbben, egyetlen függvény hívással is el lehet intézni a dolgot.

Drupal 6-ban:

<?php
 $talalatok
= node_search('search', 'kereső kifejezés');
?>

Drupal 7-ben:

<?php
 $talalatok
= node_search_execute('kereső kifejezés');
?>

A Drupal a node-okon kívül a felhasználókban és potenciálisan még ezer másik dologban is tud keresni, de nekünk most elég lesz a node-okban keresni. Általában úgyis ez érdekel minket. Ráadásul ha más objektumban akarunk keresni, akkor elég a node_search helyett pl. a user_search függvényt használni.

De nézzük egy kicsit tovább a dolgot, mi van ha csak egy node típust várunk eredményként? Ezt az információt a kereséséi kifejezéshez kell hozzáadni, így:

Drupal 6-ban:

<?php
 $talalatok
= node_search('search', 'kereső kifejezés type:nodetipus');
?>

Drupal 7-ben:

<?php
 $talalatok
= node_search_execute('kereső kifejezés type:nodetipus');
?>

A Drupal mag összetett keresője több más szűrő paramétert is ismer, nem csak a típust. Ezek használatát a legegyszerűbben úgy deríthetjük ki, ha a /search oldalon használjuk az összetett keresőt és megnézzük, hogy mi kerül a keresési kifejezés mezőbe.

Ahhoz hogy, a fenti megoldás működjön természetesen szükséges az, hogy a Drupal mag kereső modulja be legyen kapcsolva és a tartalmakat folyamatosan indexelje, azaz hogy az ütemezett feladatok (cron) be legyen állítva.

Active Tags beviteli mező saját űrlapon.

A közösségi oldalak egyik elmaradhatatlan eleme a címkék használata. Ma már nagyon sok oldalon láthatóak címkefelhők, amelyeket általában a közösség szerkeszt, nem hivatásos szerkesztők. A címkéket általában vesszővel elválasztva kell felvinni egy szövegbeviteli mezőbe, így működik a Drupal megoldása is, a taxonomy modulban.

De bizony sokszor gondot okoz a felhasználóknak a vesszővel való elválasztás, néha más elválasztó jeleket használnak, például szóközt, így sokszor hibás címkék jönnek létre. Még olyan weboldalakon is tapasztaltam ezt, ami kifejezetten technikailag képzett felhasználóknak szól. Aki felhasználóbarát honlapot szeretne készíteni, az nem mehet el a probléma mellett.

Erre ad megoldást az Active Tags modul, ami módosítja a címkék felvitelét úgy, hogy enter leütésére felveszi a címkét egy listára amit rögtön meg is jelenít a felhasználónak. Így a következő címkét már nem kell vesszővel elválasztani.

Active Tags modul

Nagyon hasznos modulnak bizonyul az Active Tags, de csak a Drupal node űrlapokon jelenik meg. Pedig hasznos lenne egyéb, nem node form-okon is használni. Ennek a lehetőségnek jártam utána, és a megoldás szerencsére roppant egyszerű.

Először nézzük a kódrészletet:

<?php
 
function example_form(&$form_state) {
 
$input_wrappers = array('#edit-tags-wrapper');

 
drupal_add_css(drupal_get_path('module', 'active_tags') .'/active_tags.css', 'module');

 
drupal_add_js(array('active_tags' => $input_wrappers), 'setting');

 
drupal_add_js(drupal_get_path('module', 'active_tags') .'/active_tags.js', 'module', 'footer');

 
// $form definició ...
 
return $form;
}
?>

Az első sorban felsoroljuk azokat az űrlap elemeket, ahol használni akarjuk az active_tags bevitelt. Egészen pontosan az űrlap elemeket körülvevő wrapper div-ek azonosítóit kell felsorolni. Tulajdonképpen ezek jQuery kiválasztók lesznek. A harmadik sorban ezt a listát egy Javascript beállításként, Drupal.settings.active_tags néven hozzáadjuk az oldalhoz.

A második és negyedik sor egész egyszerűen az active tags modul css és javascript fájljait adja hozzá az oldalhoz. Figyeljük meg, hogy az active tags Javascript fájl az oldal aljára kerül, nem a fejlécbe.

Ennyi az egész, a fenti 4 sor beszúrásával bármelyik saját fejlesztésű űrlapba beszúrva használható az active tags. Sőt, más modulok űrlapjainál úgyszintén, ekkor a hook_form_alter()-ben kell hozzáadni a fenti négy sort.

Nyíló kormányzati kapúk a nyitottság felé

Az IDG kiadó (Computerworld, PC world, stb...) egy konferenciát szervez a nyílt és szabad szoftverek világáról, az abban rejlő üzleti és közigazgatási lehetőségekről.

A konferencia Open Source 2011 néven kerül megrendezésre február 24-én. A tervezett helyszín a keletinél lévő Aréna Pláza, a Cinema City mozi.

A rendezvény célja egy közös fórumot biztosítani a kormányzatnak, az üzleti szereplőknek és a lelkes fejlesztőknek, akik áldozatos és önzetlen munkájának gyümölcsét én is napi szinten használom.

A kitűzött célt én csakis támogatni tudom. Az üzleti világban már nem kell bemutatni a nyílt forrás fogalmát, de kormányzati szinten még bőven tér a fejlődésre. Néhány évvel ezelőtt Németország, legutóbb pedig Oroszország bizonyította be, hogy ezen az úton is lehet járni.

Ezt a célt kívánja elősegíteni, hogy a rendezvény fővédnökének a Nemzeti Fejlesztési Minisztérium infokommunikációs államtitkárát, Dr. Nyitrai Zsoltot kérték fel.

A rendezvényen való részvétel Alap regisztráció esetén ingyenes, a VIP díj 25.000 Ft.

Regisztráció, program és további információ a rendezvény weboldalán:
http://computerworld.hu/konferencia/48

Oldalak

Feliratkozás Prunk-Éger Edgár RSS csatornájára