Sziasztok!
Írtam egy functiont, ami az argumentumként megadott linket megosztja egy előre meghatározott facebook oldalon. Ezt szeretném modulként beleépíteni a drupal weboldalamba úgy, hogy a node hozzáadása részénél opcióként megosztja az újonnan kreált node-ot.
Próbálkoztam a hook_insert() illetve a hook_node_insert() function-ök override-olásával is, de mindkettőnél a facebookos megosztott tartalom "Az oldal nem található" oldalt osztott meg, mivel abban a pillanatban, amikor a facebook betöltötte a megosztott linket, még nem létezett az oldal, csak "egy pillanattal" utána.
Rendesen utánakerestem ennek a problémának, és arra jutottam, hogy nincs nagyon olyan hook, ami a node oldalának létrehozása után futna le, viszont találtam olyasmit, hogy a node_load() harmadik argumentumának TRUE-t adva, vagy a node_save() functiont meghívva lehet valahogy az oldalt "idő előtt" létrehozni. Sajnos ezeket nem sikerült működésre bírnom. Nincs esetleg valakinek ötlete a megoldásra?
Előre is köszi!
Ez volna a kódom amivel próbálkoztam. Jelenleg megosztja a linkjét az oldalnak, tehát rákattintva a megosztásra jó oldalra jutunk, viszont a megjelenő megosztás nem megfelelő:
function facebook_share_node_node_insert ($node) { node_load($node->nid,$node->vid,TRUE); global $base_url; if (isset($node->facebook_share_node_option1) && $node->facebook_share_node_option1){ $fbshare = facebook_share( $base_url . '/' . drupal_get_path_alias('node/'.$node->nid)); drupal_set_message($fbshare); } }
Eredmény:
A module neve: facebook_share_node. A facebook_share az a function-öm, ami az argumentumban lévő linket megosztja és visszatér egy "sikeres", vagy "sikertelen" String-gel.
cron
Lehet register_shutdown-nal vagy hook_exit-tel bűvészkedni, de legjobb az ilyet időzítővel (hook_cron) megoldani. Ha nem tud a megosztás a következő időzített futásig várni, akkor Elysia cron, vagy kiteszed egy php fájlba, és arra beállítasz a rendszerben egy cron job-ot.
re: cron
Köszönöm a tippet, a cron-os megoldás tetszik, megpróbálom azzal megvalósítani!