Ejemplo n.º 1
0
/**
 * 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;
}
Ejemplo n.º 2
0
 /**
  * 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;
 }