Megfelelő Hook Node hozzáadása után

elekecske képe

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:
FB Share Error

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.

Taxonomy upgrade extras: 
Drupal verzió: 
Illyés Edit képe

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.

1
0
elekecske képe

Köszönöm a tippet, a cron-os megoldás tetszik, megpróbálom azzal megvalósítani!

0
0