Log in with username/password: lyceum/lyceum

Changeset 616

Show
Ignore:
Timestamp:
03/30/06 01:32:38 (2 years ago)
Author:
jjb
Message:

Subdomains!

Most of the pieces in order to use subdomains. The way that cookies are set needs to be adapted to this system. As it is now, users have to keep re-logging-in when they switch from one domain to another.

Many thanks to coffelius of http://bloggear.net for help and code.

ticket:326

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/config/wp-config-sample.php

    r596 r616  
    1111// Something like '/portal.php' or '/lyceum/portal.php' 
    1212define('PORTAL', "/web/path/to/portal.php"); 
     13 
     14// Subdomain options 
     15// See doc/Installation.txt and doc/Subdomains.txt for more info 
     16define('SUBDOMAINS', false); 
     17define('MAINDOMAIN', 'blogs.example.com'); 
    1318 
    1419//log files 
  • trunk/src/lib/wp-admin/admin-header.php

    r613 r616  
    7171      echo '<strong>'. __('My Account') . '</strong>';       
    7272   else 
    73       echo '<a href="'.get_settings('siteurl').'/profile">'. __('My Account') . '</a>'; 
     73      echo '<a href="'.get_settings('home').'/profile">'. __('My Account') . '</a>'; 
    7474 
    7575   $myblogs = get_userblogs(); 
     
    7979         echo ' &bull; <strong>'.$b->blogname.'</strong>'; 
    8080      else  
    81          echo ' &bull; <a href="'.get_settings('siteurl').'/'.$b->slug.'/admin/">'.$b->blogname.'</a>'; 
     81         echo ' &bull; <a href="'.$b->home.'/admin/">'.$b->blogname.'</a>'; 
    8282   } 
    8383    
  • trunk/src/lib/wp-admin/upgrade-schema.php

    r613 r616  
    224224   umask($old_umask); 
    225225 
    226    $guessurl = get_option('siteurl'); 
    227  
    228 // add_option('siteurl', $guessurl . '/' . $blog, __('Blog web address')); 
    229    add_option('home', $guessurl . '/' . $wpdb->get_var("SELECT slug FROM $wpdb->blogs WHERE id = '$blog'")); 
    230    // in case it is set, but blank, update "home" 
    231 // if ( !__get_option('home') ) update_option('home', $guessurl); 
    232  
     226   $slug = $wpdb->get_var("SELECT slug FROM $wpdb->blogs WHERE id = '$blog'"); 
     227   if (SUBDOMAINS) 
     228      $home = 'http://' . $slug . '.' . MAINDOMAIN; 
     229   else 
     230      $home = get_option('siteurl') . '/' . $slug; 
     231   add_option('home', $home); 
    233232   add_option('blogname', __('My Weblog'), __('Blog title')); 
    234233   add_option('blogdescription', __('Just another Lyceum weblog'), __('Short tagline')); 
  • trunk/src/lib/wp-includes/classes.php

    r613 r616  
    14391439         } 
    14401440      } else { 
    1441          $rules .= " 
     1441         if(SUBDOMAINS) 
     1442         $rules.=" 
     1443       RewriteCond %{REQUEST_FILENAME} !-f 
     1444       RewriteCond %{REQUEST_FILENAME} !-d 
     1445        
     1446       RewriteRule ^profile/? wp-admin/profile.php?b=system&%{QUERY_STRING} [L] 
     1447       RewriteRule ^login/? wp-login.php?%{QUERY_STRING} [L] 
     1448       RewriteRule ^register/? wp-register.php?%{QUERY_STRING} [L] 
     1449        
     1450       RewriteCond %{REQUEST_FILENAME} !-f 
     1451       RewriteCond %{REQUEST_FILENAME} !-d 
     1452        
     1453       RewriteRule ^admin/?$ wp-admin/index.php? 
     1454       RewriteRule ^admin/?([^/]+php)\??(.*) wp-admin/$1?%{QUERY_STRING} [L] 
     1455        
     1456       RewriteCond %{REQUEST_FILENAME} !-f 
     1457       RewriteCond %{REQUEST_FILENAME} !-d 
     1458        
     1459       ### do we need these two conditions? ### 
     1460       RewriteCond %{REQUEST_URI} !^(.+)/admin(.*) 
     1461       RewriteCond %{REQUEST_URI} !^(.+)/index.php(.*) 
     1462        
     1463       RewriteRule (.*) /index.php?$1 [L,QSA]\n"; 
     1464 
     1465 
     1466 
     1467         else $rules .= " 
    14421468 
    14431469   RewriteCond %{REQUEST_FILENAME} !-f 
  • trunk/src/lib/wp-includes/functions.php

    r613 r616  
    23232323   global $user_ID, $wpdb, $table_prefix; 
    23242324   $blogs = $wpdb->get_results(" 
    2325       SELECT DISTINCT $wpdb->blogs.id, $wpdb->blogs.slug, option_value as blogname, status 
     2325      SELECT DISTINCT $wpdb->blogs.id, blognametable.option_value AS blogname, bloghometable.option_value AS home, status 
    23262326      FROM $wpdb->blogs 
    2327          INNER JOIN $wpdb->options ON ($wpdb->blogs.id = $wpdb->options.blog) 
     2327         INNER JOIN $wpdb->options AS blognametable ON ($wpdb->blogs.id = blognametable.blog) 
     2328         INNER JOIN $wpdb->options AS bloghometable ON ($wpdb->blogs.id = bloghometable.blog) 
    23282329         INNER JOIN $wpdb->usermeta ON ($wpdb->blogs.id = $wpdb->usermeta.blog) 
    23292330      WHERE 
    23302331         status = 'active' AND 
    23312332         meta_key = '{$table_prefix}capabilities' AND 
    2332          option_name = 'blogname' AND 
     2333         blognametable.option_name = 'blogname' AND 
     2334         bloghometable.option_name = 'home' AND 
    23332335         user_id = '$user_ID' 
    23342336   "); 
  • trunk/src/lib/wp-includes/template-functions-general.php

    r602 r616  
    3232 
    3333   if ('' == $user_ID) 
    34       $link = '<a href="' . get_settings('siteurl') . '/wp-login.php">' . __('Login') . '</a>'; 
    35    else 
    36       $link = '<a href="' . get_settings('siteurl') . '/wp-login.php?action=logout">' . __('Logout') . '</a>'; 
     34      $link = '<a href="' . get_settings('home') . '/wp-login.php">' . __('Login') . '</a>'; 
     35   else 
     36      $link = '<a href="' . get_settings('home') . '/wp-login.php?action=logout">' . __('Logout') . '</a>'; 
    3737 
    3838   echo apply_filters('loginout', $link); 
  • trunk/src/lib/wp-settings.php

    r613 r616  
    145145//TODO use cache 
    146146if (!isset($blogdata)){ 
    147    if (!isset($_REQUEST['b'])) 
    148       header('Location: '.PORTAL );//redirect to public portal 
    149    else { 
    150       $blogdata = $wpdb->get_row("SELECT * FROM `$wpdb->blogs` WHERE `slug`='{$_REQUEST['b']}'"); 
    151 // trace('$blogdata', array_print($blogdata)); 
    152       $blog = $blogdata->id; 
    153       $blogstatus = $blogdata->status; 
    154    } 
     147   if(SUBDOMAINS) { 
     148      $host=$_SERVER['HTTP_HOST']; 
     149      if(($pos=strpos($host, '.'.MAINDOMAIN))!==false)   { 
     150         $theslug=substr($host, 0, $pos); 
     151         $blogdata = $wpdb->get_row("SELECT * FROM `$wpdb->blogs` WHERE `slug`='{$theslug}'"); 
     152         //trace('$blogdata', array_print($blogdata)); 
     153         $blog = $blogdata->id; 
     154         $blogstatus = $blogdata->status; 
     155 
     156      } else { 
     157         if(!(strpos($_SERVER['REQUEST_URI'], '/system-admin')===0 
     158         or strpos($_SERVER['REQUEST_URI'], '/wp-')===0)) 
     159         header('Location: '.PORTAL); 
     160      } 
     161   } else { // if(SUBDOMAINS) 
     162      if (!isset($_REQUEST['b'])) 
     163         header('Location: '.PORTAL);//redirect to public portal 
     164      else { 
     165         $blogdata = $wpdb->get_row("SELECT * FROM `$wpdb->blogs` WHERE `id`='{$_REQUEST['b']}'"); 
     166         //trace('$blogdata', array_print($blogdata)); 
     167         $blog = $blogdata->id; 
     168         $blogstatus = $blogdata->status; 
     169      } 
     170 
     171   }   
     172 
    155173} 
    156174if (!isset($blog)) 
  • trunk/src/lyceum/portal.php

    r613 r616  
    8181 
    8282   echo "<hr/><h2>My Blogs</h2>"; 
    83    if ($myblogs) 
     83   if ($myblogs) { 
    8484      foreach ($myblogs as $b) 
    85          echo "<a href=\"./$b->slug\">$b->blogname</a><br/>"; 
    86    else 
     85         echo "<a href=\"".$b->home."\">$b->blogname</a><br/>"; 
     86   } else 
    8787      echo "You do not have permissions on any blogs. Click <em>Register</em> above to make a username and a blog."; 
    8888 
    8989   $blogs = $wpdb->get_results(" 
    90       SELECT DISTINCT $wpdb->blogs.slug, option_value as blogname, status  
     90      SELECT DISTINCT $wpdb->blogs.id, $wpdb->blogs.slug, option_value as blogname, status  
    9191      FROM $wpdb->blogs 
    9292         INNER JOIN $wpdb->options ON ($wpdb->blogs.id = $wpdb->options.blog) 
     
    102102   echo "<hr/><h2>All Blogs</h2>"; 
    103103   if ($blogs) 
    104       foreach ($blogs as $b) 
    105          echo "<a href=\"./$b->slug\">$b->blogname</a><br/>"; 
     104      if(SUBDOMAINS) 
     105         foreach ($blogs as $b) 
     106            echo "<a href=\"http://$b->slug.".MAINDOMAIN."\">$b->blogname</a><br/>"; 
     107      else 
     108         foreach ($blogs as $b) 
     109            echo "<a href=\"./$b->id\">$b->blogname</a><br/>"; 
     110 
    106111   else 
    107112      echo "The system does not yet have any blogs"; 
  • trunk/src/lyceum/wp-admin/options.php

    r613 r616  
    8585   $slug = $_POST['slug']; 
    8686   $oldslug = $wpdb->get_var("SELECT slug FROM $wpdb->blogs WHERE id = '$blogdata->id'"); 
    87 trace('$oldslug', $oldslug); 
    8887   if ($slug != $oldslug){ 
    8988      $wpdb->query("UPDATE $wpdb->blogs SET slug = '$slug' WHERE id = '$blogdata->id'"); 
    90       update_option('home', get_option('siteurl') .  '/' . $slug); 
     89      if (SUBDOMAINS) 
     90         $home = 'http://' . $slug . '.' . MAINDOMAIN; 
     91      else 
     92         $home = get_option('siteurl') . '/' . $slug; 
     93      update_option('home', $home); 
    9194      $any_changed++;             
    9295   } 
Log in with username/password: lyceum/lyceum