Dotclear


Ignore:
Timestamp:
04/15/10 23:59:41 (14 years ago)
Author:
Moe
Message:

Bloc-Notes 1.0.5 :

  • update the database only if the plugin has already been installed
File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins/blocNotes/_install.php

    r1925 r2195  
    33# 
    44# This file is part of Bloc-Notes. 
    5 # Copyright 2008,2009 Moe (http://gniark.net/) 
     5# Copyright 2008,2009,2010 Moe (http://gniark.net/) 
    66# 
    77# Bloc-Notes is free software; you can redistribute it and/or modify 
     
    3838} 
    3939 
    40 # encode settings to preserve new lines when editing about:config 
    41 if (version_compare($i_version,'1.0.2','<')) 
     40# update the database only if the plugin has already been installed 
     41if ($i_version !== null) 
    4242{ 
    43      # per-blog setting 
    44      $rs = $core->con->select('SELECT setting_value, setting_id, blog_id '. 
    45      'FROM '.$core->prefix.'setting '. 
    46      'WHERE setting_ns = \'blocnotes\' '. 
    47      'AND (setting_id = \'blocNotes_text\');'); 
    48       
    49      while($rs->fetch()) 
     43     # encode settings to preserve new lines when editing about:config 
     44     if (version_compare($i_version,'1.0.2','<')) 
    5045     { 
    51           $cur = $core->con->openCursor($core->prefix.'setting'); 
    52           $cur->setting_value = base64_encode($rs->setting_value); 
    53           $cur->update('WHERE setting_ns = \'blocnotes\' '. 
    54                'AND setting_id = \''.$rs->setting_id.'\''. 
    55                'AND blog_id = \''.$rs->blog_id.'\';'); 
     46          # per-blog setting 
     47          $rs = $core->con->select('SELECT setting_value, setting_id, blog_id '. 
     48          'FROM '.$core->prefix.'setting '. 
     49          'WHERE setting_ns = \'blocnotes\' '. 
     50          'AND (setting_id = \'blocNotes_text\');'); 
     51           
     52          while($rs->fetch()) 
     53          { 
     54               $cur = $core->con->openCursor($core->prefix.'setting'); 
     55               $cur->setting_value = base64_encode($rs->setting_value); 
     56               $cur->update('WHERE setting_ns = \'blocnotes\' '. 
     57                    'AND setting_id = \''.$rs->setting_id.'\''. 
     58                    'AND blog_id = \''.$rs->blog_id.'\';'); 
     59          } 
     60           
     61          # users setting (global) 
     62          $rs = $core->con->select('SELECT setting_value, setting_id, blog_id '. 
     63          'FROM '.$core->prefix.'setting '. 
     64          'WHERE setting_ns = \'blocnotes\' '. 
     65          'AND (setting_id LIKE \'blocNotes_text_%\');'); 
     66           
     67          while($rs->fetch()) 
     68          { 
     69               $cur = $core->con->openCursor($core->prefix.'setting'); 
     70               $cur->setting_value = base64_encode($rs->setting_value); 
     71               $cur->update('WHERE setting_ns = \'blocnotes\' '. 
     72                    'AND setting_id = \''.$rs->setting_id.'\';'); 
     73          } 
    5674     } 
    5775      
    58      # users setting (global) 
    59      $rs = $core->con->select('SELECT setting_value, setting_id, blog_id '. 
    60      'FROM '.$core->prefix.'setting '. 
    61      'WHERE setting_ns = \'blocnotes\' '. 
    62      'AND (setting_id LIKE \'blocNotes_text_%\');'); 
    63       
    64      while($rs->fetch()) 
     76     # store users setting in (dc_)user 
     77     if (version_compare($i_version,'1.0.3','<')) 
    6578     { 
    66           $cur = $core->con->openCursor($core->prefix.'setting'); 
    67           $cur->setting_value = base64_encode($rs->setting_value); 
    68           $cur->update('WHERE setting_ns = \'blocnotes\' '. 
    69                'AND setting_id = \''.$rs->setting_id.'\';'); 
     79          # users setting (global) 
     80          $rs = $core->con->select('SELECT setting_value, setting_id '. 
     81          'FROM '.$core->prefix.'setting '. 
     82          'WHERE setting_ns = \'blocnotes\' '. 
     83          'AND (setting_id LIKE \'blocNotes_text_%\');'); 
     84           
     85          while($rs->fetch()) 
     86          { 
     87               $user_id = str_replace('blocNotes_text_','',$rs->setting_id); 
     88                
     89               $cur = $core->con->openCursor($core->prefix.'user'); 
     90               $cur->blocNotes = base64_decode($rs->setting_value); 
     91               $cur->update('WHERE user_id = \''.$user_id.'\';'); 
     92          } 
     93           
     94          # delete old settings 
     95          $core->con->execute('DELETE FROM '.$core->prefix.'setting '. 
     96               'WHERE setting_ns = \'blocnotes\' '. 
     97               'AND (setting_id LIKE \'blocNotes_text_%\');'); 
    7098     } 
    71 } 
    7299 
    73 if (version_compare($i_version,'1.0.4','<')) 
    74 { 
    75      # rename blocNotes field to bloc_notes (fix problem with PostgreSQL) 
    76      if ($core->con->driver() == 'pgsql') 
     100     if (version_compare($i_version,'1.0.4','<')) 
    77101     { 
    78           $core->con->execute('ALTER TABLE '.$core->prefix.'user '. 
    79                'RENAME COLUMN blocNotes TO bloc_notes;'); 
    80      } 
    81      else 
    82      { 
    83           $core->con->execute('ALTER TABLE '.$core->prefix.'user '. 
    84                'CHANGE blocNotes bloc_notes TEXT;'); 
     102          # rename blocNotes field to bloc_notes (fix problem with PostgreSQL) 
     103          if ($core->con->driver() == 'pgsql') 
     104          { 
     105               $core->con->execute('ALTER TABLE '.$core->prefix.'user '. 
     106                    'RENAME COLUMN blocNotes TO bloc_notes;'); 
     107          } 
     108          else 
     109          { 
     110               $core->con->execute('ALTER TABLE '.$core->prefix.'user '. 
     111                    'CHANGE blocNotes bloc_notes TEXT;'); 
     112          } 
    85113     } 
    86114} 
     
    97125$changes = $si->synchronize($s); 
    98126 
    99 # store users setting in (dc_)user 
    100 if (version_compare($i_version,'1.0.3','<')) 
    101 { 
    102      # users setting (global) 
    103      $rs = $core->con->select('SELECT setting_value, setting_id '. 
    104      'FROM '.$core->prefix.'setting '. 
    105      'WHERE setting_ns = \'blocnotes\' '. 
    106      'AND (setting_id LIKE \'blocNotes_text_%\');'); 
    107       
    108      while($rs->fetch()) 
    109      { 
    110           $user_id = str_replace('blocNotes_text_','',$rs->setting_id); 
    111            
    112           $cur = $core->con->openCursor($core->prefix.'user'); 
    113           $cur->blocNotes = base64_decode($rs->setting_value); 
    114           $cur->update('WHERE user_id = \''.$user_id.'\';'); 
    115      } 
    116       
    117      # delete old settings 
    118      $core->con->execute('DELETE FROM '.$core->prefix.'setting '. 
    119           'WHERE setting_ns = \'blocnotes\' '. 
    120           'AND (setting_id LIKE \'blocNotes_text_%\');'); 
    121 } 
    122  
    123127# La procédure d'installation commence vraiment là 
    124128$core->setVersion('blocNotes',$m_version); 
Note: See TracChangeset for help on using the changeset viewer.

Sites map