Пример #1
0
 public function testSet1()
 {
     $this->object->x = 37.5;
     $this->object->y = 45.33;
     $this->object->z = 0.26;
     $this->assertEquals('37.5 45.33 0.26', $this->object->set());
 }
 /**
  * testSaveField method
  *
  * @return void
  */
 public function testSaveField()
 {
     $this->loadFixtures('Article');
     $TestModel = new Article();
     $TestModel->id = 1;
     $result = $TestModel->saveField('title', 'New First Article');
     $this->assertFalse(empty($result));
     $TestModel->recursive = -1;
     $result = $TestModel->read(array('id', 'user_id', 'title', 'body'), 1);
     $expected = array('Article' => array('id' => '1', 'user_id' => '1', 'title' => 'New First Article', 'body' => 'First Article Body'));
     $this->assertEquals($expected, $result);
     $TestModel->id = 1;
     $result = $TestModel->saveField('title', '');
     $this->assertFalse(empty($result));
     $TestModel->recursive = -1;
     $result = $TestModel->read(array('id', 'user_id', 'title', 'body'), 1);
     $expected = array('Article' => array('id' => '1', 'user_id' => '1', 'title' => '', 'body' => 'First Article Body'));
     $result['Article']['title'] = trim($result['Article']['title']);
     $this->assertEquals($expected, $result);
     $TestModel->id = 1;
     $TestModel->set('body', 'Messed up data');
     $result = $TestModel->saveField('title', 'First Article');
     $this->assertFalse(empty($result));
     $result = $TestModel->read(array('id', 'user_id', 'title', 'body'), 1);
     $expected = array('Article' => array('id' => '1', 'user_id' => '1', 'title' => 'First Article', 'body' => 'First Article Body'));
     $this->assertEquals($expected, $result);
     $TestModel->recursive = -1;
     $TestModel->read(array('id', 'user_id', 'title', 'body'), 1);
     $TestModel->id = 1;
     $result = $TestModel->saveField('title', '', true);
     $this->assertFalse($result);
     $TestModel->recursive = -1;
     $TestModel->id = 1;
     $result = $TestModel->saveField('user_id', 9999);
     $this->assertTrue((bool) $result);
     $result = $TestModel->read(array('id', 'user_id'), 1);
     $expected = array('Article' => array('id' => '1', 'user_id' => '9999'));
     $this->assertEquals($expected, $result);
     $this->loadFixtures('Node', 'Dependency');
     $Node = new Node();
     $Node->set('id', 1);
     $result = $Node->read();
     $this->assertEquals(array('Second'), Hash::extract($result, 'ParentNode.{n}.name'));
     $Node->saveField('state', 10);
     $result = $Node->read();
     $this->assertEquals(array('Second'), Hash::extract($result, 'ParentNode.{n}.name'));
 }
Пример #3
0
function node_controller()
{
    global $mysqli, $redis, $session, $route, $feed_settings, $user;
    $result = false;
    if (!isset($session['read'])) {
        return array('content' => $result);
    }
    include "Modules/feed/feed_model.php";
    $feed = new Feed($mysqli, $redis, $feed_settings);
    require "Modules/input/input_model.php";
    // 295
    $input = new Input($mysqli, $redis, $feed);
    require "Modules/input/process_model.php";
    // 886
    $process = new Process($mysqli, $input, $feed);
    $process->set_timezone_offset($user->get_timezone($session['userid']));
    include "Modules/node/node_model.php";
    $node = new Node($mysqli, $redis, $process);
    if ($route->format == 'html') {
        if ($route->action == "list" && $session['write']) {
            $result = view("Modules/node/node_view.php", array());
        }
        if ($route->action == "api" && $session['write']) {
            $result = view("Modules/node/node_api.php", array());
        }
    }
    if ($route->format == 'json') {
        if ($route->action == 'set' && $session['write']) {
            $data = explode(",", get('data'));
            for ($i = 0; $i < count($data); $i++) {
                $data[$i] = (int) $data[$i];
            }
            $result = $node->set($session['userid'], get('nodeid'), get('time'), $data);
        }
        if ($route->action == 'multiple' && $session['write']) {
            $data = json_decode(prop('data'));
            $len = count($data);
            if ($len > 0 && isset($data[$len - 1][0])) {
                // Sent at mode: input/bulk.json?data=[[45,16,1137],[50,17,1437,3164],[55,19,1412,3077]]&sentat=60
                if (isset($_GET['sentat'])) {
                    $time_ref = time() - (int) $_GET['sentat'];
                } elseif (isset($_POST['sentat'])) {
                    $time_ref = time() - (int) $_POST['sentat'];
                } elseif (isset($_GET['offset'])) {
                    $time_ref = time() - (int) $_GET['offset'];
                } elseif (isset($_POST['offset'])) {
                    $time_ref = time() - (int) $_POST['offset'];
                } elseif (isset($_GET['time'])) {
                    $time_ref = (int) $_GET['time'];
                } elseif (isset($_POST['time'])) {
                    $time_ref = (int) $_POST['time'];
                } else {
                    $time_ref = time() - (int) $data[$len - 1][0];
                }
                foreach ($data as $item) {
                    if (count($item) > 2) {
                        // check for correct time format
                        $itemtime = (int) $item[0];
                        $time = $time_ref + (int) $itemtime;
                        $nodeid = $item[1];
                        $bytevalues = array();
                        for ($i = 2; $i < count($item); $i++) {
                            $bytevalues[] = (int) $item[$i];
                        }
                        $result = $node->set($session['userid'], $nodeid, $time, $bytevalues);
                    }
                }
            }
        }
        if ($route->action == 'setdecoder' && $session['write']) {
            $result = $node->set_decoder($session['userid'], get('nodeid'), get('decoder'));
        }
        if ($route->action == 'getall' && $session['write']) {
            $result = $node->get_all($session['userid']);
        }
    }
    /*
    // Sent at mode: data= [[45,16,1137]] &sentat=60
        // Offset mode:  data= [[-10,16,1137]] &offset=-10
        // Time mode:    data= [[-10,16,1137]] &time=1387729425
        // Legacy mode:  data= [[0,16,1137]]
    // Sent at mode: data= [[45,16,1137],[50,17,1437,3164],[55,19,1412,3077]] &sentat=60
        // Offset mode:  data= [[-10,16,1137],[-8,17,1437,3164],[-6,19,1412,3077]] &offset=-10
        // Time mode:    data= [[-10,16,1137],[-8,17,1437,3164],[-6,19,1412,3077]] &time=1387729425
        // Legacy mode:  data= [[0,16,1137],[2,17,1437,3164],[4,19,1412,3077]]
    */
    return array('content' => $result);
}
Пример #4
0
 public function copy($contents = true, $keepid = false)
 {
     $dom = new Gorilla3D\Dom(trim($this->toHtml()));
     $parnode = $dom->html->getElementsByTagName('body')->item(0);
     $chlnode = $parnode->childNodes->item(0);
     $i = 0;
     while ($chlnode instanceof DOMText) {
         $i++;
         $chlnode = $parnode->childNodes->item($i);
     }
     $domnode = new Node($dom, $chlnode);
     if (!$keepid) {
         $domnode->set('id', '');
     }
     if (!$contents) {
         $domnode->clear();
     }
     $domnode->mooid = uniqid();
     $domnode->setProperty('mooid', $domnode->mooid);
     return new Node($domnode->owner, $domnode->node);
 }
Пример #5
0
 public function create()
 {
     if ($this->Node->exists()) {
         $this->AdminNodeForm->parent->value($this->Node->id);
         $this->data->set('pageTitle', __('Unterseite erstellen'));
     } else {
         $this->data->set('pageTitle', __('Seite erstellen'));
     }
     if ($this->AdminNodeForm->ok()) {
         $defaultLanguageId = ucfirst(substr(Registry::get('I18n.language'), 0, 2));
         $Node = new Node();
         $Node->set('name', $this->AdminNodeForm->headline->value());
         $Node->User = $this->UserLogin->User;
         $Node->Parent = new Node((int) $this->AdminNodeForm->parent->value());
         $Node->addFlag(NodeFlag::ALLOW_CHILDREN, NodeFlag::ALLOW_DELETE, NodeFlag::ALLOW_EDIT, NodeFlag::ALLOW_IMAGES);
         $this->AdminNodeForm->toModel($Node);
         $this->AdminNodeForm->toModel($Node->{'NodeText' . $defaultLanguageId});
         foreach ($this->Languages as $Language) {
             $Node->{'NodeText' . ucFirst($Language->id)}->User = $this->UserLogin->User;
         }
         if ($Node->saveAll()) {
             $this->FlashMessage->set(__('Die Seite wurde erfolgreich angelegt.'), FlashMessageType::SUCCESS);
             $this->redirect(Router::getRoute('adminNode'));
         }
         $this->AdminNodeForm->error = $Node->validationErrors;
     }
 }