Show
Ignore:
Timestamp:
09/26/07 08:57:31 (14 months ago)
Author:
mdodoo
Message:

Lots of things are still not working, but I think this code is better than what was currently committed ([1639]
should have been reverted, and the person who committed should have had their SVN access pulled, for example).
Created this by grabbing the trunk code and then manually inserting the MU branch's changes in. This is probably
not usable in an actual installation (no support for creating new user accounts yet, for example), but patches are
welcome.

Not sure why I write so much here - I am not sure anyone other than my fellow devs actually read them...

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/multiuser/schema.php

    r1627 r1759  
    3030require_once('util.php'); 
    3131require_once('cls/user.php'); 
     32require_once('cls/l10n.php'); 
    3233 
    3334/** 
     
    9091        "rating" => trim(getTable("rating")), 
    9192        "cache" => trim(getTable("cache")), 
    92         "users" => trim(getTable("users")),      
     93        "users" => trim(getTable("users")), 
    9394        "dashboard" => trim(getTable("dashboard")), 
    9495        "properties" => trim(getTable("properties")), 
    95         "item2user" => trim(getTable("item2user")), 
    96         "channels2user" => trim(getTable("channels2user")) 
     96        "channels2user" => trim(getTable("channels2user")), 
     97        "item2user" => trim(getTable("item2user")) 
    9798    ); 
    9899    return $expected_tables; 
     
    273274                    . rss_sql_error_message(), RSS_ERROR_ERROR); 
    274275            } 
    275          
     276        case 'm.fkuid': 
     277            // userid on metatags - added in 0.5.5 
     278            rss_query('alter table ' . getTable('metatag') . ' add column fkuid bigint(15) not null'); 
     279            rss_query('alter table ' . getTable('metatag') . " add index 'fkuid' ('fkuid')"); 
     280            if (rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR)) { 
     281                $updated++; 
     282                rss_error('updated schema for table ' . getTable('metatag'), RSS_ERROR_NOTICE); 
     283            } else { 
     284                rss_error('Failed updating schema for table ' . getTable('metatag') . ': ' 
     285                 . rss_sql_error_message(), RSS_ERROR_ERROR); 
     286            } 
     287            break; 
    276288        break; 
    277289        case 'm.fkuid': 
     
    531543          enclosure varchar(255) default NULL, 
    532544          description text, 
    533           unread tinyint(4) default '1', 
    534545          pubdate datetime default NULL, 
    535546          author varchar(255) default NULL,        
     
    585596    $sql_create = str_replace('__table__',$table, <<< _SQL_ 
    586597        CREATE TABLE __table__ ( 
    587             fid bigint(16) NOT NULL default '0',                     
    588             tid bigint(16) NOT NULL default '0',  
     598            fid bigint(16) NOT NULL default '0', 
     599            tid bigint(16) NOT NULL default '0', 
    589600            fkuid bigint(16) NOT NULL default '1', 
    590             ttype enum('item','folder','channel') NOT NULL default 'item',  
    591             KEY fid (fid),  
     601            ttype enum('item','folder','channel') NOT NULL default 'item', 
     602            KEY fid (fid), 
    592603            KEY tid (tid), 
    593604            KEY fkuid (fkuid), 
    594605            KEY ttype (ttype) 
    595         ) TYPE=MyISAM;     
     606        ) TYPE=MyISAM; 
    596607_SQL_ 
    597608); 
     
    672683        CREATE TABLE __table__ ( 
    673684          uid bigint(16) NOT NULL auto_increment, 
    674           uname varchar(255) NOT NULL,         
    675           password varchar(255) NOT NULL,          
    676           ulevel bigint(11) NOT NULL default '1',          
    677           realname varchar(255) default NULL,                  
    678           lastip varchar(255) default NULL,                        
    679           userips TEXT default '',         
     685          uname varchar(255) NOT NULL, 
     686          password varchar(255) NOT NULL, 
     687          ulevel bigint(11) NOT NULL default '1', 
     688          realname varchar(255) default NULL, 
     689          lastip varchar(255) default NULL, 
     690          userips TEXT default '', 
    680691          lastlogin datetime NULL default '0000-00-00 00:00:00', 
    681692          PRIMARY KEY  (uid), 
     
    704715} 
    705716 
    706 /////////////////////////////////////////////////////////////////////////////// 
     717function _init_channels2user() { 
     718    $table = getTable('channels2user'); 
     719    rss_query_wrapper ('DROP TABLE IF EXISTS ' . $table, true, true); 
     720    $sql_create = str_replace('__table__',$table, <<< _SQL_ 
     721        CREATE TABLE __table__ ( 
     722          id bigint(16) not null auto_increment, 
     723          fkcid bigint(16) NOT NULL, 
     724          fkuid bigint(16) NOT NULL, 
     725          flgprivate tinyint(1) NOT NULL default '0', 
     726          flgdeleted tinyint(1) not null default '0', 
     727          primary key (id), 
     728          KEY flgprivate (flgprivate), 
     729          KEY flgdeleted (flgdeleted), 
     730          KEY fkuid (fkuid), 
     731          KEY iids (fkcid) 
     732        ) ENGINE=MyISAM; 
     733_SQL_ 
     734); 
     735 
     736 
     737    rss_query_wrapper($sql_create, false, true); 
     738 
     739    if (!rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR)) { 
     740        rss_error('The ' . $table . 'table doesn\'t exist and I couldn\'t create it! Please create it manually.', RSS_ERROR_ERROR); 
     741        return 0; 
     742    } else { 
     743        $fillSql = "insert into $table " 
     744        ." (fkcid,fkuid,icon,position,parent,flgprivate,flgdeleted) " 
     745        ."select id, " . rss_user_id() . ", icon, position, parent, " 
     746        ." mode & ".RSS_MODE_PRIVATE_STATE." = ".RSS_MODE_PRIVATE_STATE.", " 
     747        ." mode & ".RSS_MODE_DELETED_STATE." = ".RSS_MODE_DELETED_STATE." " 
     748        ." from " .getTable('channels') 
     749        ." where url != ''"; 
     750        //die($fillSql); 
     751        rss_query_wrapper($fillSql, false, true); 
     752         
     753        rss_query( 
     754            'update ' .getTable('metatag') .' m ' 
     755            .'set m.fkuid=' .rss_user_id()); 
     756        /* 
     757        $rs = rss_query( "select id, fkcid from " .getTable('channels2user')); 
     758        $cids=array(); 
     759        while(list($c2uid,$cid) = rss_fetch_row($rs)) { 
     760            $cids[$cid]=$c2uid; 
     761        } 
     762        */ 
     763        return rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR); 
     764    } 
     765} 
     766 
    707767function _init_item2user() { 
    708        $table = getTable('item2user'); 
    709        rss_query_wrapper ('DROP TABLE IF EXISTS ' . $table, true, true); 
    710        $sql_create = str_replace('__table__',$table, <<< _SQL_ 
    711                CREATE TABLE __table__ ( 
    712                  fkiid bigint(16) NOT NULL, 
    713                  fkuid bigint(16) NOT NULL, 
    714                  fkcid bigint(11) NOT NULL, 
    715                  flgunread tinyint(1) NOT NULL default '1', 
    716                  flgsticky tinyint(1) NOT NULL default '0', 
    717                  flgprivate tinyint(1) NOT NULL default '0', 
    718                  flgdeleted tinyint(1) NOT NULL default '0', 
    719                  flgflagged tinyint(1) NOT NULL default '0', 
    720                  KEY flgunread (flgunread), 
    721                  KEY flgsticky (flgsticky), 
    722                  KEY flgprivate (flgprivate), 
    723                  KEY flgdeleted (flgdeleted), 
    724                  KEY flgflagged (flgflagged), 
    725                  KEY fkuid (fkuid), 
    726                  KEY iids (fkiid) 
    727                ) ENGINE=MyISAM;                 
    728 _SQL_ 
    729 ); 
    730  
    731        rss_query_wrapper($sql_create, false, true); 
    732  
    733        if (!rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR)) { 
    734                rss_error('The ' . $table . 'table doesn\'t exist and I couldn\'t create it! Please create it manually.', RSS_ERROR_ERROR); 
    735                return 0; 
    736        } else { 
    737                $fillSql = "insert into $table (fkiid,fkuid,fkcid,flgunread,flgsticky,flgprivate,flgdeleted,flgflagged) " 
    738                ."select id, " . rss_user_id() . ", cid, " 
    739                ." unread & ".RSS_MODE_UNREAD_STATE." = ".RSS_MODE_UNREAD_STATE.", " 
    740                ." unread & ".RSS_MODE_STICKY_STATE." = ".RSS_MODE_STICKY_STATE.", " 
    741                ." unread & ".RSS_MODE_PRIVATE_STATE." = ".RSS_MODE_PRIVATE_STATE.", " 
    742                ." unread & ".RSS_MODE_DELETED_STATE." = ".RSS_MODE_DELETED_STATE.", " 
    743                ." unread & ".RSS_MODE_FLAG_STATE." = ".RSS_MODE_FLAG_STATE." from " .getTable('item'); 
    744                rss_query_wrapper($fillSql, false, true); 
    745  
    746                return rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR); 
    747        } 
    748 } 
    749  
    750 /////////////////////////////////////////////////////////////////////////////// 
    751  
    752 function _init_channels2user() { 
    753        $table = getTable('channels2user'); 
    754        rss_query_wrapper ('DROP TABLE IF EXISTS ' . $table, true, true); 
    755        $sql_create = str_replace('__table__',$table, <<< _SQL_ 
    756                CREATE TABLE __table__ ( 
    757                  id bigint(16) not null auto_increment, 
    758                  fkcid bigint(16) NOT NULL, 
    759                  fkuid bigint(16) NOT NULL, 
    760                  icon varchar(255) default NULL, 
    761                  position int(11) NOT NULL default '0', 
    762                  parent tinyint(4) default '0', 
    763                  flgprivate tinyint(1) NOT NULL default '0', 
    764                  flgdeleted tinyint(1) not null default '0', 
    765                  primary key (id), 
    766                  KEY flgprivate (flgprivate), 
    767                  KEY flgdeleted (flgdeleted), 
    768                  KEY fkuid (fkuid), 
    769                  KEY iids (fkcid) 
    770                ) ENGINE=MyISAM; 
    771 _SQL_ 
    772 ); 
    773  
    774  
    775        rss_query_wrapper($sql_create, false, true); 
    776  
    777        if (!rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR)) { 
    778                rss_error('The ' . $table . 'table doesn\'t exist and I couldn\'t create it! Please create it manually.', RSS_ERROR_ERROR); 
    779                return 0; 
    780        } else { 
    781                $fillSql = "insert into $table " 
    782                ." (fkcid,fkuid,icon,position,parent,flgprivate,flgdeleted) " 
    783                ."select id, " . rss_user_id() . ", icon, position, parent, " 
    784                ." mode & ".RSS_MODE_PRIVATE_STATE." = ".RSS_MODE_PRIVATE_STATE.", " 
    785                ." mode & ".RSS_MODE_DELETED_STATE." = ".RSS_MODE_DELETED_STATE." " 
    786                ." from " .getTable('channels') 
    787                ." where url != ''"; 
    788                //die($fillSql); 
    789                rss_query_wrapper($fillSql, false, true); 
    790                 
    791                rss_query( 
    792                        'update ' .getTable('metatag') .' m ' 
    793                        .'set m.fkuid=' .rss_user_id()); 
    794                /* 
    795                $rs = rss_query( "select id, fkcid from " .getTable('channels2user')); 
    796                $cids=array(); 
    797                while(list($c2uid,$cid) = rss_fetch_row($rs)) { 
    798                        $cids[$cid]=$c2uid; 
    799                } 
    800                */ 
    801                return rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR); 
    802        } 
    803 } 
    804  
    805  
     768    $table = getTable('item2user'); 
     769    rss_query_wrapper ('DROP TABLE IF EXISTS ' . $table, true, true); 
     770    $sql_create = str_replace('__table__',$table, <<< _SQL_ 
     771        CREATE TABLE __table__ ( 
     772          fkiid bigint(16) NOT NULL, 
     773          fkuid bigint(16) NOT NULL, 
     774          fkcid bigint(11) NOT NULL, 
     775          flgunread tinyint(1) NOT NULL default '1', 
     776          flgsticky tinyint(1) NOT NULL default '0', 
     777          flgprivate tinyint(1) NOT NULL default '0', 
     778          flgdeleted tinyint(1) NOT NULL default '0', 
     779          flgflagged tinyint(1) NOT NULL default '0', 
     780          KEY flgunread (flgunread), 
     781          KEY flgsticky (flgsticky), 
     782          KEY flgprivate (flgprivate), 
     783          KEY flgdeleted (flgdeleted), 
     784          KEY flgflagged (flgflagged), 
     785          KEY fkuid (fkuid), 
     786          KEY iids (fkiid) 
     787        ) ENGINE=MyISAM; 
     788_SQL_ 
     789); 
     790 
     791    rss_query_wrapper($sql_create, false, true); 
     792 
     793    if (!rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR)) { 
     794        rss_error('The ' . $table . 'table doesn\'t exist and I couldn\'t create it! Please create it manually.', RSS_ERROR_ERROR); 
     795        return 0; 
     796    } else { 
     797        $fillSql = "insert into $table (fkiid,fkuid,fkcid,flgunread,flgsticky,flgprivate,flgdeleted,flgflagged) " 
     798        ."select id, " . rss_user_id() . ", cid, " 
     799        ." unread & ".RSS_MODE_UNREAD_STATE." = ".RSS_MODE_UNREAD_STATE.", " 
     800        ." unread & ".RSS_MODE_STICKY_STATE." = ".RSS_MODE_STICKY_STATE.", " 
     801        ." unread & ".RSS_MODE_PRIVATE_STATE." = ".RSS_MODE_PRIVATE_STATE.", " 
     802        ." unread & ".RSS_MODE_DELETED_STATE." = ".RSS_MODE_DELETED_STATE.", " 
     803        ." unread & ".RSS_MODE_FLAG_STATE." = ".RSS_MODE_FLAG_STATE." from " .getTable('item'); 
     804        rss_query_wrapper($fillSql, false, true); 
     805 
     806        return rss_is_sql_error(RSS_SQL_ERROR_NO_ERROR); 
     807    } 
     808} 
    806809 
    807810