b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (0.9.x) [ class tree: install ] [ index: install ] [ all elements ]

Source for file _functions_miniblog.php

Documentation is available at _functions_miniblog.php

  1. <?php
  2. /**
  3.  * This file implements upgrading from Manywhere Miniblog
  4.  *
  5.  * b2evolution - {@link http://b2evolution.net/}
  6.  * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
  7.  * @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
  8.  *
  9.  * @package install
  10.  */
  11. if!defined('DB_USER') ) die'Please, do not access this page directly.' );
  12.  
  13. /**
  14.  * upgrade_cafelog_tables(-)
  15.  */
  16. {
  17.     global $tableposts$tableusers$tablesettings$tablecategories$tablecomments,
  18.                     $tableblogs$tablepostcats$tablehitlog$tableantispam$tablegroups$tableblogusers;
  19.     global $baseurl$old_db_version$new_db_version;
  20.     global $default_locale;
  21.     global $timestamp$admin_email;
  22.     global $Group_Admins$Group_Priviledged$Group_Bloggers$Group_Users;
  23.     global $blog_all_ID$blog_a_ID$blog_b_ID$blog_linkblog_ID;
  24.     global $cat_ann_a$cat_news$cat_bg$cat_ann_b$cat_fun$cat_life$cat_web$cat_sports$cat_movies$cat_music$cat_b2evo$cat_linkblog_b2evo$cat_linkblog_contrib;
  25.     global $DB;
  26.     global $install_password$random_password;
  27.  
  28.     // Create blogs:
  29.     create_default_blogs'Blog A (Upg)''Blog A (Miniblog Upgrade)'T_("This blog holds all your posts upgraded from Miniblog. This blog is named '%s'. %s")false );    
  30.  
  31.  
  32.     echo 'Creating default settings...';
  33.     $query "INSERT INTO $tablesettings (set_name, set_value) 
  34.                         VALUES
  35.                                     ('db_version', '$new_db_version'),
  36.                                     ('default_locale', '$default_locale'),
  37.                                     ('posts_per_page', '5'),
  38.                                     ('what_to_show', 'paged'),
  39.                                     ('archive_mode', 'monthly'),
  40.                                     ('time_difference', '0'),
  41.                                     ('AutoBR', '0'),
  42.                                     ('antispam_last_update', '2000-01-01 00:00:00'),
  43.                                     ('newusers_grp_ID', '".$Group_Users->get('ID')."' ),
  44.                                     ('newusers_level', '1'),
  45.                                     ('newusers_canregister', '0'),
  46.                                     ('links_extrapath', '0'),
  47.                                     ('permalink_type', 'urltitle'),
  48.                                     ( 'user_minpwdlen', '5' )
  49.                                     ";
  50.     $DB->query$query );
  51.     echo "OK.<br />\n";
  52.     
  53.         
  54.     echo 'Copying Miniblog users... ';
  55.     if!isset$install_password ) )
  56.     {
  57.         $random_password substr(md5(uniqid(microtime())),0,6);
  58.     }
  59.     else
  60.     {
  61.         $random_password $install_password;
  62.     }
  63.     // Admins:
  64.     $query "INSERT INTO $tableusers( ID, user_login, user_pass, user_firstname, user_lastname,
  65.                             user_nickname, user_email, user_url, user_level, user_locale, user_idmode, user_notify, user_grp_ID ) 
  66.                         SELECT id, email, '".md5($random_password)."', '', '', name, email, homePage, 10, '$default_locale', 'nickname', 1, $Group_Admins->ID
  67.                         FROM user
  68.                         WHERE role = 'admin'";
  69.     $DB->query$query );
  70.     // Bloggers:
  71.     $query "INSERT INTO $tableusers( ID, user_login, user_pass, user_firstname, user_lastname,
  72.                             user_nickname, user_email, user_url, user_level, user_locale, user_idmode, user_notify, user_grp_ID ) 
  73.                         SELECT id, email, '".md5($random_password)."', '', '', name, email, homePage, 1, '$default_locale', 'nickname', 1, $Group_Bloggers->ID
  74.                         FROM user
  75.                         WHERE role = 'user'";
  76.     $DB->query$query );
  77.     // Regular users:
  78.     $query "INSERT INTO $tableusers( ID, user_login, user_pass, user_firstname, user_lastname,
  79.                             user_nickname, user_email, user_url, user_level, user_locale, user_idmode, user_notify, user_grp_ID ) 
  80.                         SELECT id, email, '".md5($random_password)."', '', '', name, email, homePage, 1, '$default_locale', 'nickname', 1, $Group_Users->ID
  81.                         FROM user
  82.                         WHERE role <> 'admin' and role <> 'user'";
  83.     $DB->query$query );
  84.     echo "OK.<br />\n";
  85.  
  86.     echo 'Make sure user #1 is at level 10... ';
  87.     $query "UPDATE $tableusers
  88.                              SET user_level = 10
  89.                          WHERE ID = 1";
  90.     $DB->query$query );
  91.     echo "OK.<br />\n";
  92.  
  93.     echo 'Creating user blog permissions... ';
  94.     // Admin for all blogs:
  95.     $query "INSERT INTO $tableblogusers( bloguser_blog_ID, bloguser_user_ID, bloguser_ismember,
  96.                             bloguser_perm_poststatuses, bloguser_perm_delpost, bloguser_perm_comments, 
  97.                             bloguser_perm_cats, bloguser_perm_properties)
  98.                         SELECT blog_ID, ID, 1, 'published,deprecated,protected,private,draft', 1, 1, 1, 1
  99.                         FROM $tableusers$tableblogs
  100.                         WHERE user_level = 10";
  101.     $DB->query$query );
  102.  
  103.     // Normal users for upgraded blog:
  104.     $query "INSERT INTO $tableblogusers( bloguser_blog_ID, bloguser_user_ID, bloguser_ismember, 
  105.                             bloguser_perm_poststatuses, bloguser_perm_delpost, bloguser_perm_comments, 
  106.                             bloguser_perm_cats, bloguser_perm_properties)
  107.                         SELECT $blog_a_ID, ID, 1, 'published,protected,private,draft', 0, 1, 0, 0
  108.                         FROM $tableusers
  109.                         WHERE user_level > 0 AND user_level < 10";
  110.     $DB->query$query );
  111.     echo "OK.<br />\n";
  112.     
  113.     echo 'Creating a default category...';
  114.     $cat_imported cat_create'Imported''NULL'$blog_a_ID );
  115.     echo "OK.<br />\n";
  116.  
  117.     echo 'Copying Miniblog posts... ';
  118.     $query "INSERT INTO $tableposts( ID, post_author, post_issue_date, post_mod_date, post_status, post_locale, post_content, post_title, post_category, post_autobr, post_flags, post_comments )  
  119.                         SELECT id, authorId, created, modified, 'published', '$default_locale', content, title, $cat_imported, 0, 'pingsdone,imported', 'open'
  120.                         FROM miniblog
  121.                         WHERE parentId = 0";
  122.     $DB->query$query );
  123.     echo "OK.<br />\n";
  124.  
  125.     echo 'Generating wordcounts... ';
  126.     $query "SELECT ID, post_content FROM $tableposts";
  127.     $q $DB->get_results$queryARRAY_A );
  128.     ifcount$q ) ) foreach$q as $row )
  129.     {
  130.         $query_update_wordcount "UPDATE $tableposts 
  131.                                                             SET post_wordcount = bpost_count_words($row['post_content']"
  132.                                                             WHERE ID = " $row['ID'];
  133.         $DB->query($query_update_wordcount);
  134.     }
  135.     echo "OK. (".count($q)." rows updated)<br />\n";
  136.  
  137.     echo 'Generating postcats... ';
  138.     $query "INSERT INTO $tablepostcats( postcat_post_ID, postcat_cat_ID ) 
  139.                         SELECT ID, post_category FROM $tableposts";        
  140.     $DB->query$query );
  141.     echo "OK.<br />\n";
  142.     
  143.     echo 'Copying Miniblog comments... ';
  144.     $query "SELECT id, parentId, created, content
  145.                         FROM miniblog
  146.                         WHERE parentId > 1";
  147.     $rows $DB->get_results$query );
  148.     foreach$rows as $row )
  149.     {
  150.         $matches array();
  151.  
  152.         // Extract author's name:
  153.         ifpreg_match'#<p class="posted">Posted by (<a .*?>)?(.*?)<#'$row->content$matches ) )
  154.             $author $matches[2];
  155.         else
  156.             $author '';
  157.  
  158.         // Extract author's email:
  159.         ifpreg_match'#<p class="posted">Posted by <a href="mailto:(.*?)"#'$row->content$matches ) )
  160.             $author_email $matches[1];
  161.         else
  162.             $author_email '';
  163.  
  164.         // Extract author's url:
  165.         ifpreg_match'# class="postedLink">(http://.*?)</a>#'$row->content$matches ) )
  166.             $author_url $matches[1];
  167.         else
  168.             $author_url '';
  169.             
  170.         // Trim the content:
  171.         ifpreg_match'#^(.*?)<p class="posted">Posted by#s'$row->content$matches ) )
  172.             $content $matches[1];
  173.         else
  174.             $content $row->content;
  175.         
  176.         $query "INSERT INTO $tablecomments( comment_ID, comment_post_ID, comment_type, comment_date, comment_content, comment_author, comment_author_email, comment_author_url ) 
  177.                             VALUES ( $row->id$row->parentId, 'comment', ".$DB->quote($row->created).", ".$DB->quote($content).", ".$DB->quote($author).", ".$DB->quote($author_email).", ".$DB->quote($author_url)." )";
  178.         $DB->query$query );
  179.     }
  180.     echo "OK.<br />\n";
  181.     
  182.         
  183.     create_default_categoriesfalse /* not for A */ );
  184.  
  185.     // POPULATE THE LINKBLOG:
  186.     populate_linkblog$now$cat_linkblog_b2evo$cat_linkblog_contrib );
  187.  
  188.     // Create other default contents:
  189.     create_default_contentsfalse /* not for A */ );
  190.  
  191. }
  192.  
  193. ?>

Documentation generated on Tue, 20 May 2008 01:54:59 +0200 by phpDocumentor 1.4.2