/** * Restores the links for a pagemenu instance * * @param int $pagemenu ID of the pagemenu instance being restored * @param object $info xmlized object * @param object $restore Restore object * @return boolean **/ function pagemenu_links_restore_mods($pagemenuid, $info, $restore) { $status = true; // Get the data if (!empty($info['MOD']['#']['LINKS'])) { $data = $info['MOD']['#']['LINKS']['0']['#']['LINK']; } else { $data = array(); } $previd = 0; for ($i = 0; $i < sizeof($data); $i++) { $linkinfo = $data[$i]; // traverse_xmlize($linkinfo); //DEBUG // print_object ($GLOBALS['traverse_array']); //DEBUG // $GLOBALS['traverse_array']=""; //DEBUG // We'll need this later!! $oldid = backup_todb($linkinfo['#']['ID']['0']['#']); // Not super important - just back them up backup_todb($linkinfo['#']['PREVID']['0']['#']); backup_todb($linkinfo['#']['NEXTID']['0']['#']); $link = new stdClass(); $link->pagemenuid = $pagemenuid; $link->previd = $previd; $link->nextid = 0; $link->type = backup_todb($linkinfo['#']['TYPE']['0']['#']); $link = pagemenu_append_link($link, $previd); // Do some output if (($i + 1) % 50 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 1000 == 0) { echo "<br />"; } } backup_flush(300); } if (!empty($link->id)) { backup_putid($restore->backup_unique_code, 'pagemenu_links', $oldid, $link->id); $previd = $link->id; if (!($status = pagemenu_link_data_restore_mods($link->id, $linkinfo, $restore))) { debugging('Failed to restore link data'); break; } } else { debugging('Failed to Insert Link Record!'); $status = false; break; } } return $status; }
/** * Create a new link * * @param int $pagemenuid Instance ID * @return int **/ public function add_new_link($pagemenuid) { $link = new stdClass(); $link->type = $this->type; $link->previd = 0; $link->nextid = 0; $link->pagemenuid = $pagemenuid; $link = pagemenu_append_link($link); return $link->id; }