mirror of
https://github.com/e107inc/e107.git
synced 2025-02-15 20:15:24 +01:00
367 lines
13 KiB
PHP
367 lines
13 KiB
PHP
<?php
|
|
/*
|
|
+ ----------------------------------------------------------------------------+
|
|
| e107 website system
|
|
|
|
|
| ©Steve Dunstan 2001-2002
|
|
| http://e107.org
|
|
| jalist@e107.org
|
|
|
|
|
| Released under the terms and conditions of the
|
|
| GNU General Public License (http://gnu.org).
|
|
|
|
|
| $Source: /cvs_backup/e107_0.8/e107_plugins/content/content_update.php,v $
|
|
| $Revision: 1.3 $
|
|
| $Date: 2007-03-13 16:51:05 $
|
|
| $Author: lisa_ $
|
|
+----------------------------------------------------------------------------+
|
|
*/
|
|
if (!defined('e107_INIT')) { exit; }
|
|
|
|
require_once(e_HANDLER."form_handler.php");
|
|
$rs = new form;
|
|
|
|
global $ns, $sql, $pref;
|
|
|
|
$plugindir = e_PLUGIN."content/";
|
|
$plugintable = "pcontent"; //name of the table used in this plugin (never remove this, as it's being used throughout the plugin !!)
|
|
|
|
require_once($plugindir."handlers/content_defines.php");
|
|
require_once($plugindir."handlers/content_class.php");
|
|
$aa = new content;
|
|
require_once($plugindir."handlers/content_convert_class.php");
|
|
$ac = new content_convert;
|
|
|
|
include_lan(e_PLUGIN."content/languages/".e_LANGUAGE."/lan_content_admin.php");
|
|
|
|
if($sql->db_Select("plugin", "plugin_version", "plugin_path = 'content'"))
|
|
{
|
|
$row = $sql->db_Fetch();
|
|
$content_version = $row['plugin_version'];
|
|
}
|
|
|
|
//create table if it doesn't exist
|
|
if(!$sql->db_Query("SHOW COLUMNS FROM ".MPREFIX."pcontent")) {
|
|
$query = "CREATE TABLE ".MPREFIX."pcontent (
|
|
content_id int(10) unsigned NOT NULL auto_increment,
|
|
content_heading varchar(255) NOT NULL default '',
|
|
content_subheading varchar(255) NOT NULL default '',
|
|
content_summary text NOT NULL,
|
|
content_text longtext NOT NULL,
|
|
content_author varchar(255) NOT NULL default '',
|
|
content_icon varchar(255) NOT NULL default '',
|
|
content_file text NOT NULL,
|
|
content_image text NOT NULL,
|
|
content_parent varchar(50) NOT NULL default '',
|
|
content_comment tinyint(1) unsigned NOT NULL default '0',
|
|
content_rate tinyint(1) unsigned NOT NULL default '0',
|
|
content_pe tinyint(1) unsigned NOT NULL default '0',
|
|
content_refer text NOT NULL,
|
|
content_datestamp int(10) unsigned NOT NULL default '0',
|
|
content_enddate int(10) unsigned NOT NULL default '0',
|
|
content_class varchar(255) NOT NULL default '',
|
|
content_pref text NOT NULL,
|
|
content_order varchar(10) NOT NULL default '0',
|
|
content_score tinyint(3) unsigned NOT NULL default '0',
|
|
content_meta text NOT NULL,
|
|
content_layout varchar(255) NOT NULL default '',
|
|
PRIMARY KEY (content_id)
|
|
) TYPE=MyISAM;";
|
|
|
|
$sql->db_Select_gen($query);
|
|
}
|
|
|
|
$text = "";
|
|
$main_convert = "";
|
|
//main convert
|
|
|
|
$newcontent = $sql -> db_Count($plugintable, "(*)", "");
|
|
if($newcontent == 0){
|
|
|
|
unset($text);
|
|
|
|
//possible database values
|
|
//content page: $content_parent == "1" && $content_type == "1" //added at 20051031
|
|
//content page: $content_parent == "0" && $content_type == "1"
|
|
//review category: $content_parent == "0" && $content_type == "10"
|
|
//article category: $content_parent == "0" && $content_type == "6"
|
|
//review: $content_type == "3" || $content_type == "16"
|
|
//article: $content_type == "0" || $content_type == "15"
|
|
|
|
// ##### STAGE 1 : ANALYSE OLD CONTENT --------------------------------------------------------
|
|
if (!is_object($sql)){ $sql = new db; }
|
|
$totaloldcontentrows = $sql -> db_Count("content");
|
|
$totaloldrowscat_article = $sql -> db_Count("content", "(*)", "WHERE content_parent = '0' AND content_type = '6'");
|
|
$totaloldrowscat_review = $sql -> db_Count("content", "(*)", "WHERE content_parent = '0' AND content_type = '10'");
|
|
$totaloldrowsitem_content = $sql -> db_Count("content", "(*)", "WHERE (content_parent = '0' || content_parent = '1') AND content_type = '1'");
|
|
$totaloldrowsitem_review = $sql -> db_Count("content", "(*)", "WHERE content_type = '3' || content_type = '16'");
|
|
$totaloldrowsitem_article = $sql -> db_Count("content", "(*)", "WHERE content_type = '0' || content_type = '15'");
|
|
|
|
if($totaloldrowsitem_content == 0 && $totaloldrowsitem_article == 0 && $totaloldrowsitem_review == 0){
|
|
$totaloldrowsitem_content = "1";
|
|
$totaloldrowsitem_article = "1";
|
|
$totaloldrowsitem_review = "1";
|
|
|
|
//if no old records exist, create a few default categories
|
|
$main_convert = create_defaults();
|
|
}else{
|
|
|
|
//analyse unknown rows
|
|
$unknown_array = $ac -> analyse_unknown();
|
|
|
|
if($totaloldcontentrows == 0){
|
|
$totaloldrowsitem_content = "1";
|
|
$totaloldrowsitem_article = "1";
|
|
$totaloldrowsitem_review = "1";
|
|
}
|
|
|
|
//create mainparent
|
|
$content_mainarray = $ac -> create_mainparent("content", $totaloldrowsitem_content, "1");
|
|
$article_mainarray = $ac -> create_mainparent("article", $totaloldrowsitem_article, "2");
|
|
$review_mainarray = $ac -> create_mainparent("review", $totaloldrowsitem_review, "3");
|
|
|
|
//convert categories
|
|
$article_cat_array = $ac -> convert_category("article", "content_parent = '0' AND content_type = '6'", "2");
|
|
$review_cat_array = $ac -> convert_category("review", "content_parent = '0' AND content_type = '10'", "3");
|
|
|
|
//convert rows
|
|
$content_array = $ac -> convert_row("content", "(content_parent = '0' || content_parent = '1') AND content_type = '1'", "1");
|
|
$article_array = $ac -> convert_row("article", "content_type = '0' || content_type = '15'", "2");
|
|
$review_array = $ac -> convert_row("review", "content_type = '3' || content_type = '16'", "3");
|
|
|
|
//convert comments
|
|
$ac -> convert_comments();
|
|
|
|
//convert rating
|
|
$ac -> convert_rating();
|
|
|
|
$conversion_analyses_rows_total = $totaloldcontentrows;
|
|
|
|
$conversion_analyses_rows_converted = (count($article_cat_array[1]) + count($review_cat_array[1]) + count($content_array[2]) + count($article_array[2]) + count($review_array[2]));
|
|
|
|
$conversion_analyses_rows_warning = (count($content_array[4]) + count($content_array[5]) + count($article_array[4]) + count($article_array[5]) + count($review_array[4]) + count($review_array[5]));
|
|
|
|
$conversion_analyses_rows_failed = (count($article_cat_array[2]) + count($review_cat_array[2]) + count($content_array[3]) + count($article_array[3]) + count($review_array[3]) + count($unknown_array[1]));
|
|
|
|
|
|
//only output detailed information if developer mode is set
|
|
if ($pref['developer']) {
|
|
showlink();
|
|
$SPACER = "<tr><td $stylespacer colspan='2'> </td></tr>";
|
|
$text = "
|
|
<table class='fborder' style='width:95%; padding:0px;'>";
|
|
|
|
//conversion analysis
|
|
$text .= "
|
|
<tr>
|
|
<td class='forumheader' style='width:5%; white-space:nowrap; vertical-align:top;'>".CONTENT_ADMIN_CONVERSION_LAN_11."</td>
|
|
<td class='forumheader3'>
|
|
<a style='cursor: pointer; cursor: hand' onclick=\"expandit('analysisconvert');\">".CONTENT_ADMIN_CONVERSION_LAN_48."</a>
|
|
<div id='analysisconvert' style='display: none;'>
|
|
".CONTENT_ADMIN_CONVERSION_LAN_12.": ".$conversion_analyses_rows_total."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_13.": ".$conversion_analyses_rows_converted."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_14.": ".$conversion_analyses_rows_warning."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_15.": ".$conversion_analyses_rows_failed."<br />
|
|
</div>
|
|
</td>
|
|
</tr>";
|
|
|
|
$text .= $SPACER;
|
|
|
|
//old content table : analysis
|
|
$text .= "
|
|
<tr>
|
|
<td class='forumheader' style='width:5%; white-space:nowrap; vertical-align:top;'>".CONTENT_ADMIN_CONVERSION_LAN_16."</td>
|
|
<td class='forumheader3'>
|
|
<a style='cursor: pointer; cursor: hand' onclick=\"expandit('analysisold');\">".CONTENT_ADMIN_CONVERSION_LAN_48."</a>
|
|
<div id='analysisold' style='display: none;'>
|
|
".CONTENT_ADMIN_CONVERSION_LAN_17.": ".$totaloldcontentrows."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_0." ".CONTENT_ADMIN_CONVERSION_LAN_6.": ".$totaloldrowsitem_content."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_1." ".CONTENT_ADMIN_CONVERSION_LAN_4.": ".$totaloldrowscat_review."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_1." ".CONTENT_ADMIN_CONVERSION_LAN_6.": ".$totaloldrowsitem_review."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_2." ".CONTENT_ADMIN_CONVERSION_LAN_4.": ".$totaloldrowscat_article."<br />
|
|
".CONTENT_ADMIN_CONVERSION_LAN_2." ".CONTENT_ADMIN_CONVERSION_LAN_6.": ".$totaloldrowsitem_article."<br />";
|
|
|
|
$knownrows = $totaloldrowscat_article + $totaloldrowscat_review + $totaloldrowsitem_content + $totaloldrowsitem_review + $totaloldrowsitem_article;
|
|
if($totaloldcontentrows > $knownrows ){
|
|
$text .= CONTENT_ADMIN_CONVERSION_LAN_18.": ".($totaloldcontentrows - $knownrows)."<br />";
|
|
}else{
|
|
$text .= CONTENT_ADMIN_CONVERSION_LAN_19."<br />";
|
|
}
|
|
|
|
$text .= "
|
|
</div>
|
|
</td>
|
|
</tr>";
|
|
|
|
$text .= $SPACER;
|
|
|
|
//unknown rows
|
|
if(count($unknown_array[0]) > 0){
|
|
$text .= "<tr><td class='fcaption' colspan='2'>".CONTENT_ADMIN_CONVERSION_LAN_51."</td></tr>";
|
|
$text .= "
|
|
<tr>
|
|
<td class='forumheader3' style='width:5%; white-space:nowrap; vertical-align:top;'>".CONTENT_ICON_ERROR." ".count($unknown_array[0])." ".CONTENT_ADMIN_CONVERSION_LAN_51."</td>
|
|
<td class='forumheader3'>
|
|
<a style='cursor: pointer; cursor: hand' onclick=\"expandit('unknownrows');\">".CONTENT_ADMIN_CONVERSION_LAN_48."</a>
|
|
<div id='unknownrows' style='display: none;'>
|
|
<table style='width:100%; border:0;'>";
|
|
for($i=0;$i<count($unknown_array[0]);$i++){
|
|
$text .= "<tr><td style='width:25%; white-space:nowrap;'>".CONTENT_ICON_ERROR." ".$unknown_array[0][$i]."</td><td>".$unknown_array[2][$i]." ".$rs -> form_hidden("unknownrows[]", $unknown_array[1][$i])."</td></tr>";
|
|
}
|
|
$text .= "
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>";
|
|
}
|
|
|
|
$text .= "
|
|
|
|
".$SPACER."
|
|
|
|
".$ac -> results_conversion_mainparent($content_mainarray, $review_mainarray, $article_mainarray)."
|
|
|
|
".$SPACER."
|
|
|
|
<tr><td class='fcaption' colspan='2'>content : ".CONTENT_ADMIN_CONVERSION_LAN_27."</td></tr>
|
|
".$ac -> results_conversion_row("content", $content_array, $totaloldrowsitem_content)."
|
|
|
|
".$SPACER."
|
|
|
|
<tr><td class='fcaption' colspan='2'>review : ".CONTENT_ADMIN_CONVERSION_LAN_27."</td></tr>
|
|
".$ac -> results_conversion_category("review", $review_cat_array, $totaloldrowscat_review)."
|
|
".$ac -> results_conversion_row("review", $review_array, $totaloldrowsitem_review)."
|
|
|
|
".$SPACER."
|
|
|
|
<tr><td class='fcaption' colspan='2'>article : ".CONTENT_ADMIN_CONVERSION_LAN_27."</td></tr>
|
|
".$ac -> results_conversion_category("article", $article_cat_array, $totaloldrowscat_article)."
|
|
".$ac -> results_conversion_row("article", $article_array, $totaloldrowsitem_article)."
|
|
|
|
".$SPACER."
|
|
|
|
</table>";
|
|
|
|
$main_convert = array($caption, $text);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
$text = "";
|
|
//update to 1.1 parent values to new style
|
|
$upgrade_1_1 = FALSE;
|
|
if($thiscount = $sql -> db_Select("pcontent", "*", "ORDER BY content_id ", "mode=no_where" )){
|
|
while($row = $sql -> db_Fetch()){
|
|
if( strpos($row['content_parent'], ".") && substr($row['content_parent'],0,1) != "0"){
|
|
//if item with old parent value exists, you need to upgrade to 1.1
|
|
$upgrade_1_1 = TRUE;
|
|
}
|
|
}
|
|
}
|
|
if($upgrade_1_1 === TRUE){
|
|
$text .= $ac -> upgrade_1_1();
|
|
}
|
|
|
|
//upgrade to 1.2 table structure (add score, meta, layout fields)
|
|
$text .= $ac -> upgrade_1_2();
|
|
|
|
//upgrade to 1.21 (update content_author fields)
|
|
$text .= $ac -> upgrade_1_21();
|
|
|
|
//upgrade to 1.22 (update preference storage method)
|
|
$text .= $ac -> upgrade_1_22();
|
|
|
|
//upgrade to 1.23 (update preference storage method)
|
|
$text .= $ac -> upgrade_1_23();
|
|
|
|
//upgrade to 1.24 (update custom theme)
|
|
$text .= $ac -> upgrade_1_24();
|
|
|
|
//render message
|
|
if(isset($text)){
|
|
//only output detailed information if developer mode is set
|
|
if ($pref['developer']) {
|
|
$caption = CONTENT_ADMIN_CONVERSION_LAN_63;
|
|
$ns -> tablerender($caption, $text);
|
|
}
|
|
}
|
|
|
|
//render primary conversion results
|
|
if(is_array($main_convert)){
|
|
if(isset($main_convert[1])){
|
|
//only output detailed information if developer mode is set
|
|
if ($pref['developer']) {
|
|
$ns -> tablerender($main_convert[0], $main_convert[1]);
|
|
}
|
|
}
|
|
}
|
|
|
|
//finally set the new content plugin version number
|
|
set_content_version();
|
|
|
|
|
|
|
|
|
|
//create default mainparent category for content, review and article
|
|
function create_defaults()
|
|
{
|
|
global $ns, $ac, $plugindir;
|
|
|
|
$plugindir = e_PLUGIN."content/";
|
|
|
|
if(!is_object($ac)){
|
|
require_once($plugindir."handlers/content_convert_class.php");
|
|
$ac = new content_convert;
|
|
}
|
|
|
|
$content_mainarray = $ac -> create_mainparent("content", "1", "1");
|
|
$article_mainarray = $ac -> create_mainparent("article", "1", "2");
|
|
$review_mainarray = $ac -> create_mainparent("review", "1", "3");
|
|
|
|
$main_convert = '';
|
|
//only output detailed information if developer mode is set
|
|
if ($pref['developer']) {
|
|
showlink();
|
|
|
|
$text = "<table class='fborder' style='width:95%; padding:0px;'>";
|
|
$text .= $ac -> results_conversion_mainparent($content_mainarray, $review_mainarray, $article_mainarray);
|
|
$text .= "</table>";
|
|
|
|
$main_convert = array(CONTENT_ADMIN_CONVERSION_LAN_52, $text);
|
|
}
|
|
return $main_convert;
|
|
}
|
|
|
|
|
|
|
|
//show link to start managing the content management plugin
|
|
function showlink()
|
|
{
|
|
global $ns, $pref;
|
|
//only output detailed information if developer mode is set
|
|
if ($pref['developer']) {
|
|
$text = "<div style='text-align:center'>".CONTENT_ADMIN_CONVERSION_LAN_46."</div>";
|
|
$caption = CONTENT_ADMIN_CONVERSION_LAN_47;
|
|
$ns -> tablerender($caption, $text);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//update content plugin version number
|
|
function set_content_version()
|
|
{
|
|
global $sql, $pref;
|
|
$new_version = "1.24";
|
|
$sql->db_Update('plugin',"plugin_version = '{$new_version}' WHERE plugin_path='content'");
|
|
$text = '';
|
|
//only output detailed information if developer mode is set
|
|
if ($pref['developer']) {
|
|
$text = CONTENT_ADMIN_CONVERSION_LAN_62." $new_version <br />";
|
|
}
|
|
return $text;
|
|
}
|
|
|
|
?>
|