protected function fix_old_style_reference($packed) {
        $ref = unserialize($packed);
        $ref = $this->dropbox->get_file_share_info($ref->path);
        if (!$ref || empty($ref->url)) {
            // Some error occurred, do not fix reference for now.
            return $packed;
        }

        $newreference = serialize($ref);
        if ($newreference !== $packed) {
            // We need to update references in the database.
            global $DB;
            $params = array(
                'newreference'  => $newreference,
                'newhash'       => sha1($newreference),
                'reference'     => $packed,
                'hash'          => sha1($packed),
                'repoid'        => $this->id,
            );
            $refid = $DB->get_field_sql('SELECT id FROM {files_reference}
                WHERE reference = :reference AND referencehash = :hash
                AND repositoryid = :repoid', $params);
            if (!$refid) {
                return $newreference;
            }

            $existingrefid = $DB->get_field_sql('SELECT id FROM {files_reference}
                    WHERE reference = :newreference AND referencehash = :newhash
                    AND repositoryid = :repoid', $params);
            if ($existingrefid) {
                // The same reference already exists, we unlink all files from it,
                // link them to the current reference and remove the old one.
                $DB->execute('UPDATE {files} SET referencefileid = :refid
                    WHERE referencefileid = :existingrefid',
                    array('refid' => $refid, 'existingrefid' => $existingrefid));
                $DB->delete_records('files_reference', array('id' => $existingrefid));
            }

            // Update the reference.
            $params['refid'] = $refid;
            $DB->execute('UPDATE {files_reference}
                SET reference = :newreference, referencehash = :newhash
                WHERE id = :refid', $params);
        }
        return $newreference;
    }
protected function fix_old_style_reference($packed) {
        $ref = unserialize($packed);
        $ref = $this->dropbox->get_file_share_info($ref->path);
        if (!$ref || empty($ref->url)) {
            // Some error occurred, do not fix reference for now.
            return $packed;
        }

        $newreference = serialize($ref);
        if ($newreference !== $packed) {
            // We need to update references in the database.
            global $DB;
            $params = array(
                'newreference'  => $newreference,
                'newhash'       => sha1($newreference),
                'reference'     => $packed,
                'hash'          => sha1($packed),
                'repoid'        => $this->id,
            );
            $refid = $DB->get_field_sql('SELECT id FROM {files_reference}
                WHERE reference = :reference AND referencehash = :hash
                AND repositoryid = :repoid', $params);
            if (!$refid) {
                return $newreference;
            }

            $existingrefid = $DB->get_field_sql('SELECT id FROM {files_reference}
                    WHERE reference = :newreference AND referencehash = :newhash
                    AND repositoryid = :repoid', $params);
            if ($existingrefid) {
                // The same reference already exists, we unlink all files from it,
                // link them to the current reference and remove the old one.
                $DB->execute('UPDATE {files} SET referencefileid = :refid
                    WHERE referencefileid = :existingrefid',
                    array('refid' => $refid, 'existingrefid' => $existingrefid));
                $DB->delete_records('files_reference', array('id' => $existingrefid));
            }

            // Update the reference.
            $params['refid'] = $refid;
            $DB->execute('UPDATE {files_reference}
                SET reference = :newreference, referencehash = :newhash
                WHERE id = :refid', $params);
        }
        return $newreference;
    }
protected function fix_old_style_reference ( $ packed ) { $ ref = unserialize ( $ packed ) ; $ ref = $ this -> dropbox -> get_file_share_info ( $ ref -> path ) ; if ( ! $ ref || empty ( $ ref -> url ) ) { // Some error occurred, do not fix reference for now. return $ packed ; } $ newreference = serialize ( $ ref ) ; if ( $ newreference !== $ packed ) { // We need to update references in the database. global $ DB ; $ params = array ( 'newreference' => $ newreference , 'newhash' => sha1 ( $ newreference ) , 'reference' => $ packed , 'hash' => sha1 ( $ packed ) , 'repoid' => $ this -> id , ) ; $ refid = $ DB -> get_field_sql ( 'SELECT id FROM {files_reference}
                WHERE reference = :reference AND referencehash = :hash
                AND repositoryid = :repoid' , $ params ) ; if ( ! $ refid ) { return $ newreference ; } $ existingrefid = $ DB -> get_field_sql ( 'SELECT id FROM {files_reference}
                    WHERE reference = :newreference AND referencehash = :newhash
                    AND repositoryid = :repoid' , $ params ) ; if ( $ existingrefid ) { // The same reference already exists, we unlink all files from it, // link them to the current reference and remove the old one. $ DB -> execute ( 'UPDATE {files} SET referencefileid = :refid
                    WHERE referencefileid = :existingrefid' , array ( 'refid' => $ refid , 'existingrefid' => $ existingrefid ) ) ; $ DB -> delete_records ( 'files_reference' , array ( 'id' => $ existingrefid ) ) ; } // Update the reference. $ params [ 'refid' ] = $ refid ; $ DB -> execute ( 'UPDATE {files_reference}
                SET reference = :newreference, referencehash = :newhash
                WHERE id = :refid' , $ params ) ; } return $ newreference ; }
Fixes references in DB that contains user credentials.

@param   string      $packed     Content of DB field files_reference.reference
@return  string                  New serialized reference
Fixes references in DB that contains user credentials .