예제 #1
0
 /**
  * Sets up and returns all the objects we'll use
  * 
  * @return \Pimple\Container
  */
 public function getServices()
 {
     $this->container = parent::getServices();
     $this->container['db'] = function ($c) {
         $db = new Db();
         $db->setCredentials($this->getDbConfig());
         $type = 'mysqli';
         if (class_exists('Pdo')) {
             $type = 'pdo';
         }
         $db->setAccessType($type);
         return $db;
     };
     $this->container['encrypt'] = function ($c) {
         $encrypt = new Encrypt();
         $new_key = $c['platform']->getEncryptionKey();
         $encrypt->setKey($new_key);
         return $encrypt;
     };
     $this->container['lang'] = function ($c) {
         $lang = new Language();
         if (is_array($this->getLangPath())) {
             foreach ($this->getLangPath() as $path) {
                 $lang->init($path);
             }
         } elseif ($this->getLangPath() != '') {
             $lang->init($this->getLangPath());
         }
         return $lang;
     };
     $this->container['validate'] = function ($c) {
         $validate = new Validate();
         $validate->setRegex($this->container['regex']);
         return $validate;
     };
     $this->container['files'] = function ($c) {
         $file = new Files();
         return $file;
     };
     $this->container['errors'] = function ($c) {
         $errors = new Errors();
         $errors->setValidation($c['validate']);
         return $errors;
     };
     $this->container['license'] = function ($c) {
         $license = new License();
         return $license;
     };
     $this->container['email'] = function ($c) {
         $email = new Email();
         $email->setView($c['view']);
         $email->setLang($c['lang']);
         return $email;
     };
     $this->container['view'] = function ($c) {
         $view = new View();
         $helpers = array('file_size' => function ($text) {
             return $this->container['view_helpers']->m62FileSize($text, false);
         }, 'lang' => function ($text) {
             return $this->container['view_helpers']->m62Lang($text);
         }, 'date_time' => function ($text, $html = true) {
             return $this->container['view_helpers']->m62DateTime($text, false);
         }, 'relative_time' => function ($date) {
             return $this->container['view_helpers']->m62RelativeDateTime($date);
         }, 'encode' => function ($text) {
             return $this->container['view_helpers']->m62Encode($text);
         }, 'decode' => function ($text) {
             return $this->container['view_helpers']->m62Decode($text);
         });
         $view->addHelper('m62', $helpers);
         return $view;
     };
     $this->container['regex'] = function ($c) {
         $regex = new Regex();
         return $regex;
     };
     $this->container['shell'] = function ($c) {
         $shell = new Shell();
         return $shell;
     };
     $this->container['console'] = function ($c) {
         $console = new Console();
         $console->setLang($c['lang']);
         return $console;
     };
     return $this->container;
 }
예제 #2
0
 /**
  * Adds a setting to the databse
  * 
  * @param string $setting            
  */
 public function addSetting($setting)
 {
     $data = array('setting_key' => $setting);
     if (in_array($setting, $this->getSerialized())) {
         $data['serialized'] = '1';
     }
     return $this->db->insert($this->getTable(), $data);
 }
예제 #3
0
 public function testUpdateSetting()
 {
     $db = new Db();
     $creds = $this->getDbCreds();
     $db->setCredentials($creds)->emptyTable($this->test_table_name);
     $settings = new _settings($db, new Language());
     $data = $settings->setDefaults(array())->setTable($this->test_table_name)->get(true);
     $this->assertEquals(1, $data['relative_time']);
     $settings->updateSetting('relative_time', '0');
     $data = $settings->get(true);
     $this->assertEquals(0, $data['relative_time']);
 }