[ Index ]
 

Code source de CMS made simple 1.0.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/install/upgrades/ -> upgrade.8.to.9.php (source)

   1  <?php
   2  
   3  echo "<p>Adding content table...";
   4  
   5  $dbdict = NewDataDictionary($db);
   6  $flds = "
   7      content_id I,
   8      content_name C(255),
   9      type C(25),
  10      owner_id I,
  11      parent_id I,
  12      template_id I,
  13      item_order I,
  14      hierarchy C(255),
  15      default_content I1,
  16      menu_text C(255),
  17      content_alias C(255),
  18      show_in_menu I1,
  19      markup C(25),
  20      active I1,
  21      cachable I1,
  22      create_date DT,
  23      modified_date DT
  24  ";
  25  $taboptarray = array('mysql' => 'TYPE=MyISAM');
  26  $sqlarray = $dbdict->CreateTableSQL(cms_db_prefix()."content", $flds, $taboptarray);
  27  $dbdict->ExecuteSQLArray($sqlarray);
  28  
  29  $db->CreateSequence(cms_db_prefix()."content_seq");
  30  
  31  echo "[done]</p>";
  32  
  33  echo "<p>Adding content_props table...";
  34  
  35  $dbdict = NewDataDictionary($db);
  36  $flds = "
  37      content_prop_id I,
  38      content_id I,
  39      type C(25),
  40      prop_name C(255),
  41      param1 C(255),
  42      param2 C(255),
  43      param3 C(255),
  44      content X,
  45      create_date DT,
  46      modified_date DT
  47  ";
  48  $taboptarray = array('mysql' => 'TYPE=MyISAM');
  49  $sqlarray = $dbdict->CreateTableSQL(cms_db_prefix()."content_props", $flds, $taboptarray);
  50  $dbdict->ExecuteSQLArray($sqlarray);
  51  
  52  $db->CreateSequence(cms_db_prefix()."content_props_seq");
  53  
  54  echo "[done]</p>";
  55  
  56  echo "<p>Converting existing content...";
  57  
  58  $query = "SELECT * from ".cms_db_prefix()."pages ORDER BY hierarchy_position";
  59  $result = $db->Execute($query);
  60  
  61  if ($result && $result->RecordCount() > 0)
  62  {
  63      $idmap = array();
  64  
  65      while ($row = $result->FetchRow())
  66      {
  67          $newid = $db->GenID(cms_db_prefix()."content_seq");
  68          $idmap[$row['page_id']] = $newid;
  69  
  70          $contentquery = "INSERT INTO ".cms_db_prefix()."content (content_id, content_name, type, owner_id, parent_id, item_order, create_date, modified_date, active, default_content, template_id, content_alias, menu_text, show_in_menu, markup) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  71          $contentresult = $db->Execute($contentquery, array(
  72              $newid,
  73              $row['page_title'],
  74              $row['page_type'],
  75              $row['owner'],
  76              $row['parent_id'],
  77              $row['item_order'],
  78              $row['create_date'],
  79              trim($db->DBTimeStamp(time()), "'"),
  80              $row['active'],
  81              $row['default_page'],
  82              $row['template_id'],
  83              $row['page_alias'],
  84              $row['menu_text'],
  85              $row['show_in_menu'],
  86              'html'
  87          ));
  88  
  89          $type = $row['page_type'];
  90  
  91          switch ($type)
  92          {
  93              case 'content':
  94                  $newcontent = @ContentManager::LoadContentFromId($newid);
  95                  if ($newcontent !== FALSE)
  96                  {
  97                      $oldcontent = $row['page_content'];
  98                      
  99                      #Fix for dhtmlmenu
 100                      $oldcontent = str_replace('{dhtmlmenu', "{cms_module module='phplayers'", $oldcontent);
 101  
 102                      $newcontent->mCachable = true;
 103  
 104                      $newcontent->SetPropertyValue('content_en', $oldcontent);
 105                      $newcontent->SetPropertyValue('head_tags', $row['head_tags']);
 106                      $newcontent->Save();
 107                  }
 108                  break;
 109              case 'link':
 110                  $newcontent = @ContentManager::LoadContentFromId($newid);
 111                  if ($newcontent !== FALSE)
 112                  {
 113                      $newcontent->SetPropertyValue('url', $row['page_url']);
 114                      $newcontent->Save();
 115                  }
 116                  break;
 117              default:
 118                  break;
 119          }
 120  
 121      }
 122  
 123      #Fix parent ids
 124      $query = "UPDATE ".cms_db_prefix()."content SET parent_id = -1 WHERE parent_id = 0";
 125      $result = $db->Execute($query);
 126  
 127      $query = "SELECT content_id, parent_id from ".cms_db_prefix()."content";
 128      $result = $db->Execute($query);
 129  
 130      if ($result && $result->RecordCount() > 0)
 131      {
 132          while ($row = $result->FetchRow())
 133          {
 134              if (isset($row['parent_id']) && $row['parent_id'] > -1)
 135              {
 136                  $newquery = "UPDATE ".cms_db_prefix()."content SET parent_id = ? WHERE content_id = ?";
 137                  $db->Execute($newquery, array(
 138                      $idmap[$row['parent_id']],
 139                      $row['content_id']
 140                  ));
 141              }
 142          }
 143      }
 144  
 145      $query = "UPDATE ".cms_db_prefix()."content SET parent_id = -1 WHERE parent_id IS NULL";
 146      $result = $db->Execute($query);
 147  
 148      $query = "UPDATE ".cms_db_prefix()."content SET content_alias = '' WHERE content_alias IS NULL";
 149      $result = $db->Execute($query);
 150  }
 151  
 152  echo '[done]</p>';
 153  
 154  @ob_flush();
 155  
 156  echo '<p>Adding module_deps table...';
 157  
 158  $dbdict = NewDataDictionary($db);
 159  $flds = "
 160      parent_module C(25),
 161      child_module C(25),
 162      minimum_version C(25),
 163      create_date DT,
 164      modified_date DT
 165  ";
 166  $taboptarray = array('mysql' => 'TYPE=MyISAM');
 167  $sqlarray = $dbdict->CreateTableSQL(cms_db_prefix()."module_deps", $flds, $taboptarray);
 168  $dbdict->ExecuteSQLArray($sqlarray);
 169  
 170  echo '[done]</p>';
 171  
 172  echo '<p>Updating hierarchy positions...';
 173  
 174  @ContentManager::SetAllHierarchyPositions();
 175  
 176  echo '[done]</p>';
 177  
 178  echo '<p>Changing dhtmlmenu to phplayers module on templates...';
 179  
 180  $alltemplates = TemplateOperations::LoadTemplates();
 181  foreach ($alltemplates as $onetemplate)
 182  {
 183      #Fix for dhtmlmenu
 184      $onetemplate->content = str_replace('{dhtmlmenu', "{cms_module module='phplayers'", $onetemplate->content); 
 185      $onetemplate->Save();
 186  }
 187  
 188  echo '[done]</p>';
 189  
 190  echo '<p>"Installing" phplayers module (if necessary)... ';
 191  
 192  $query = "SELECT * from ".cms_db_prefix()."modules WHERE module_name = 'PHPLayers'";
 193  $result = $db->Execute($query);
 194  
 195  if ($result && $result->RecordCount() < 1)
 196  {
 197      $query = "INSERT INTO ".cms_db_prefix()."modules (module_name, status, version, active) VALUES ('PHPLayers', 'Installed', '1.0', 1)";
 198      $result = $db->Execute($query);
 199  }
 200  
 201  echo '[done]</p>';
 202  
 203  echo '<p>Updating additional_users to new content ids...';
 204  
 205  $dbdict = NewDataDictionary($db);
 206  $sqlarray = $dbdict->AddColumnSQL(cms_db_prefix()."additional_users", "content_id I");
 207  $dbdict->ExecuteSQLArray($sqlarray);
 208  
 209  $query = "SELECT * from ".cms_db_prefix()."additional_users";
 210  $result = $db->Execute($query);
 211  
 212  if ($result && $result->RecordCount() > 0)
 213  {
 214      while ($row = $result->FetchRow())
 215      {
 216          $query2 = "UPDATE ".cms_db_prefix()."additional_users SET content_id = ? WHERE additional_users_id = ?";
 217          $db->Execute($query2, array($idmap[$row['page_id']], $row['additional_users_id']));
 218      }
 219  }
 220  
 221  echo '[done]</p>';
 222  
 223  echo '<p>Updating schema version... ';
 224  
 225  $query = "UPDATE ".cms_db_prefix()."version SET version = 9";
 226  $db->Execute($query);
 227  
 228  echo '[done]</p>';
 229  
 230  # vim:ts=4 sw=4 noet
 231  ?>


Généré le : Tue Apr 3 18:50:37 2007 par Balluche grâce à PHPXref 0.7