public function __construct(array $config = array())
 {
     $config['rootNode'] = 'trl';
     $config['xpath'] = '/trl';
     $config['topNode'] = 'text';
     parent::__construct($config);
 }
 public function checkIdsAction()
 {
     Kwf_Events_ModelObserver::getInstance()->disable();
     $models = array(Kwf_Model_Abstract::getInstance('Kwf_Trl_Model_Kwf'), Kwf_Model_Abstract::getInstance('Kwf_Trl_Model_Web'));
     foreach ($models as $m) {
         while ($m instanceof Kwf_Model_Proxy) {
             $m = $m->getProxyModel();
         }
         if (!file_exists($m->getFilePath())) {
             continue;
         }
         $ids = array();
         $duplicate = 0;
         $xml = simplexml_load_file($m->getFilePath());
         $maxId = 0;
         foreach ($xml->text as $row) {
             $maxId = max($maxId, (int) $row->id);
         }
         foreach ($xml->text as $row) {
             $id = (int) $row->id;
             if (in_array($id, $ids)) {
                 echo $m->getFilePath() . ": {$id} doppelt\n";
                 $duplicate++;
                 $row->id = ++$maxId;
                 continue;
             }
             $ids[] = $id;
         }
         if (!$duplicate) {
             echo $m->getFilePath() . ": alles ok\n";
         } else {
             file_put_contents($m->getFilePath(), Kwf_Model_Xml::asPrettyXML($xml->asXML()));
         }
     }
     exit;
 }
 public function testUpdateValueToNull()
 {
     $model = new Kwf_Model_Xml(array('xpath' => '/trl', 'topNode' => 'text', 'xmlContent' => '<trl><text><id>1</id><en>foo</en><de>dings</de></text></trl>'));
     $row1 = $model->createRow(array('en' => 'foobar', 'de' => 'dingsbums', 'context' => 'hallo'));
     $row1->save();
     $row1->context = null;
     $row1->save();
     $row = $model->getRow($model->select()->whereEquals('en', 'foobar')->whereNull('context'));
     $this->assertEquals('dingsbums', $row->de);
     $row = $model->getRow($model->select()->whereEquals('en', 'foobar')->whereEquals('context', ''));
     $this->assertNull($row);
     $model = new Kwf_Model_Xml(array('xpath' => '/trl', 'topNode' => 'text', 'xmlContent' => $model->getXmlContentString()));
     $row = $model->getRow($model->select()->whereEquals('en', 'foobar')->whereNull('context'));
     $this->assertEquals('dingsbums', $row->de);
     $row = $model->getRow($model->select()->whereEquals('en', 'foobar')->whereEquals('context', ''));
     $this->assertNull($row);
 }