Jacek Kowalski
2012-09-16 d8d9ecd00a4d9e972c87e719df988941fcad3e9e
class/BotSession.php
@@ -7,12 +7,12 @@
   
   /**
    * Nazwa modułu, którego zmienne klasa przetwarza
    * @var string max. 40 znaków
    * @var string max. 40 znaków
    */
   var $class;
   protected $class = '';
   protected $class_empty = TRUE;
   
   private $user;
   
   /**
    * Inicjuje klasę w zależności od użytkownika
@@ -21,10 +21,14 @@
      $this->user = sha1($user);
      $this->user_struct = parse_url($user);
      
      $this->class = '';
      $this->class_empty = FALSE;
   }
   
   private function init() {
      if(strlen($this->class) == 0 && !$this->class_empty) {
         throw new Exception('Przed użyciem $msg->session należy ustawić nazwę modułu za pomocą metody setClass - patrz "Poradnik tworzenia modułów", dział "Klasa BotMessage", rozdział "Pole $session".');
      }
      if($this->PDO) {
         return NULL;
      }
@@ -54,6 +58,9 @@
         );
         
         $files = glob(BOT_TOPDIR.'/db/*/'.$this->user_struct['user'].'.ggdb');
         if(!$files) {
            return;
         }
         
         $this->PDO->beginTransaction();
         $st = $this->PDO->prepare('INSERT OR REPLACE INTO data (class, name, value) VALUES (?, ?, ?)');
@@ -72,7 +79,9 @@
         }
      }
      catch(Exception $e) {
         @unlink(BOT_TOPDIR.'/database/'.sha1($this->user).'.sqlite');
         if(file_exists(BOT_TOPDIR.'/database/'.sha1($this->user).'.sqlite')) {
            @unlink(BOT_TOPDIR.'/database/'.sha1($this->user).'.sqlite');
         }
         throw $e;
      }
   }
@@ -140,6 +149,10 @@
      return $return;
   }
   
   function setClass($class) {
      $this->class = $class;
   }
   function truncate() {
      $this->init();