File: _functions_miniblog.php

package info (click to toggle)
b2evolution 0.9.2-3%2Betch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 12,972 kB
  • ctags: 5,460
  • sloc: php: 58,989; sh: 298; makefile: 36
file content (194 lines) | stat: -rw-r--r-- 7,727 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<?php
/**
 * This file implements upgrading from Manywhere Miniblog
 *
 * b2evolution - {@link http://b2evolution.net/}
 * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
 * @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
 *
 * @package install
 */
if( !defined('DB_USER') ) die( 'Please, do not access this page directly.' );

/**
 * upgrade_cafelog_tables(-)
 */
function upgrade_miniblog_tables()
{
	global $tableposts, $tableusers, $tablesettings, $tablecategories, $tablecomments,
					$tableblogs, $tablepostcats, $tablehitlog, $tableantispam, $tablegroups, $tableblogusers;
	global $baseurl, $old_db_version, $new_db_version;
	global $default_locale;
	global $timestamp, $admin_email;
	global $Group_Admins, $Group_Priviledged, $Group_Bloggers, $Group_Users;
	global $blog_all_ID, $blog_a_ID, $blog_b_ID, $blog_linkblog_ID;
	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;
	global $DB;
	global $install_password, $random_password;

	// Create blogs:
	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 );	


	echo 'Creating default settings...';
	$query = "INSERT INTO $tablesettings (set_name, set_value) 
						VALUES
									('db_version', '$new_db_version'),
									('default_locale', '$default_locale'),
									('posts_per_page', '5'),
									('what_to_show', 'paged'),
									('archive_mode', 'monthly'),
									('time_difference', '0'),
									('AutoBR', '0'),
									('antispam_last_update', '2000-01-01 00:00:00'),
									('newusers_grp_ID', '".$Group_Users->get('ID')."' ),
									('newusers_level', '1'),
									('newusers_canregister', '0'),
									('links_extrapath', '0'),
									('permalink_type', 'urltitle'),
									( 'user_minpwdlen', '5' )
									";
	$DB->query( $query );
	echo "OK.<br />\n";
	
		
	echo 'Copying Miniblog users... ';
	if( !isset( $install_password ) )
	{
		$random_password = substr(md5(uniqid(microtime())),0,6);
	}
	else
	{
		$random_password = $install_password;
	}
	// Admins:
	$query = "INSERT INTO $tableusers( ID, user_login, user_pass, user_firstname, user_lastname,
							user_nickname, user_email, user_url, user_level, user_locale, user_idmode, user_notify, user_grp_ID ) 
						SELECT id, email, '".md5($random_password)."', '', '', name, email, homePage, 10, '$default_locale', 'nickname', 1, $Group_Admins->ID
						FROM user
						WHERE role = 'admin'";
	$DB->query( $query );
	// Bloggers:
	$query = "INSERT INTO $tableusers( ID, user_login, user_pass, user_firstname, user_lastname,
							user_nickname, user_email, user_url, user_level, user_locale, user_idmode, user_notify, user_grp_ID ) 
						SELECT id, email, '".md5($random_password)."', '', '', name, email, homePage, 1, '$default_locale', 'nickname', 1, $Group_Bloggers->ID
						FROM user
						WHERE role = 'user'";
	$DB->query( $query );
	// Regular users:
	$query = "INSERT INTO $tableusers( ID, user_login, user_pass, user_firstname, user_lastname,
							user_nickname, user_email, user_url, user_level, user_locale, user_idmode, user_notify, user_grp_ID ) 
						SELECT id, email, '".md5($random_password)."', '', '', name, email, homePage, 1, '$default_locale', 'nickname', 1, $Group_Users->ID
						FROM user
						WHERE role <> 'admin' and role <> 'user'";
	$DB->query( $query );
	echo "OK.<br />\n";

	echo 'Make sure user #1 is at level 10... ';
	$query = "UPDATE $tableusers
							 SET user_level = 10
						 WHERE ID = 1";
	$DB->query( $query );
	echo "OK.<br />\n";

	echo 'Creating user blog permissions... ';
	// Admin for all blogs:
	$query = "INSERT INTO $tableblogusers( bloguser_blog_ID, bloguser_user_ID, bloguser_ismember,
							bloguser_perm_poststatuses, bloguser_perm_delpost, bloguser_perm_comments, 
							bloguser_perm_cats, bloguser_perm_properties)
						SELECT blog_ID, ID, 1, 'published,deprecated,protected,private,draft', 1, 1, 1, 1
						FROM $tableusers, $tableblogs
						WHERE user_level = 10";
	$DB->query( $query );

	// Normal users for upgraded blog:
	$query = "INSERT INTO $tableblogusers( bloguser_blog_ID, bloguser_user_ID, bloguser_ismember, 
							bloguser_perm_poststatuses, bloguser_perm_delpost, bloguser_perm_comments, 
							bloguser_perm_cats, bloguser_perm_properties)
						SELECT $blog_a_ID, ID, 1, 'published,protected,private,draft', 0, 1, 0, 0
						FROM $tableusers
						WHERE user_level > 0 AND user_level < 10";
	$DB->query( $query );
	echo "OK.<br />\n";
	
	echo 'Creating a default category...';
	$cat_imported = cat_create( 'Imported', 'NULL', $blog_a_ID );
	echo "OK.<br />\n";

	echo 'Copying Miniblog posts... ';
	$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 )  
						SELECT id, authorId, created, modified, 'published', '$default_locale', content, title, $cat_imported, 0, 'pingsdone,imported', 'open'
						FROM miniblog
						WHERE parentId = 0";
	$DB->query( $query );
	echo "OK.<br />\n";

	echo 'Generating wordcounts... ';
	$query = "SELECT ID, post_content FROM $tableposts";
	$q = $DB->get_results( $query, ARRAY_A );
	if( count( $q ) ) foreach( $q as $row )
	{
		$query_update_wordcount = "UPDATE $tableposts 
															SET post_wordcount = " . bpost_count_words($row['post_content']) . "
															WHERE ID = " . $row['ID'];
		$DB->query($query_update_wordcount);
	}
	echo "OK. (".count($q)." rows updated)<br />\n";

	echo 'Generating postcats... ';
	$query = "INSERT INTO $tablepostcats( postcat_post_ID, postcat_cat_ID ) 
						SELECT ID, post_category FROM $tableposts";		
	$DB->query( $query );
	echo "OK.<br />\n";
	
	echo 'Copying Miniblog comments... ';
	$query = "SELECT id, parentId, created, content
						FROM miniblog
						WHERE parentId > 1";
	$rows = $DB->get_results( $query );
	foreach( $rows as $row )
	{
		$matches = array();

		// Extract author's name:
		if( preg_match( '#<p class="posted">Posted by (<a .*?>)?(.*?)<#', $row->content, $matches ) )
			$author = $matches[2];
		else
			$author = '';

		// Extract author's email:
		if( preg_match( '#<p class="posted">Posted by <a href="mailto:(.*?)"#', $row->content, $matches ) )
			$author_email = $matches[1];
		else
			$author_email = '';

		// Extract author's url:
		if( preg_match( '# class="postedLink">(http://.*?)</a>#', $row->content, $matches ) )
			$author_url = $matches[1];
		else
			$author_url = '';
			
		// Trim the content:
		if( preg_match( '#^(.*?)<p class="posted">Posted by#s', $row->content, $matches ) )
			$content = $matches[1];
		else
			$content = $row->content;
		
		$query = "INSERT INTO $tablecomments( comment_ID, comment_post_ID, comment_type, comment_date, comment_content, comment_author, comment_author_email, comment_author_url ) 
							VALUES ( $row->id, $row->parentId, 'comment', ".$DB->quote($row->created).", ".$DB->quote($content).", ".$DB->quote($author).", ".$DB->quote($author_email).", ".$DB->quote($author_url)." )";
		$DB->query( $query );
	}
	echo "OK.<br />\n";
	
		
	create_default_categories( false /* not for A */ );

	// POPULATE THE LINKBLOG:
	populate_linkblog( $now, $cat_linkblog_b2evo, $cat_linkblog_contrib );

	// Create other default contents:
	create_default_contents( false /* not for A */ );

}

?>