예제 #1
0
    /**
     * Тест установки sitemap-индекса к конфигу  
     */
    public function testSelectControlNames()
    {
        SystemRegisterSample::clearCache();
        $fileList = \DAO_FileSystem::getInstance()->getFileList(LIB_PATH . 'custom_config/controls/');
        $list = CConfigControlManager::selectAll();
        $this->assertEquals(sizeof($fileList), sizeof($list));
        // Добавляем в реестр файлег, но не пишем класс
        $path = LIB_PATH . 'custom_config/test.php';
        $register = new SystemRegister('Applications/cconfig/user_control_path');
        $register->insert('test', $path, '');
        file_put_contents($path, '');
        $list = CConfigControlManager::selectAll();
        $this->assertEquals(sizeof($fileList), sizeof($list));
        // Заполняем инфо о классе, таким образом класс становится доступным
        $path = 'custom_config/test2.php';
        $contents = <<<EOD
<?
class CConfigControl_Test2 extends CConfigBaseControl {
\tpublic function getXType() {
\t\treturn "test2";
\t}
}
?>
EOD;
        file_put_contents(LIB_PATH . $path, $contents);
        $register->insert('test2', $path, '');
        $list = CConfigControlManager::selectAll();
        $this->assertEquals(sizeof($fileList) + 1, sizeof($list));
    }
예제 #2
0
파일: schema.php 프로젝트: gudwin/extasy
 protected function loadControls()
 {
     // Загружаем контролы
     $sql = 'select * from `%s` WHERE `schemaId`="%s" ORDER by `order` ASC';
     $sql = sprintf($sql, CCONFIG_CONTROL_TABLE, $this->id);
     $data = DB::query($sql);
     // Конвертируем в объекты
     $result = array();
     foreach ($data as $row) {
         $result[] = CConfigControlManager::createControl($row['id'], $row['name'], $row['xtype'], $row['title'], $row['config'], $row['value'], $this);
     }
     $this->controls = $result;
 }
예제 #3
0
파일: manage.php 프로젝트: gudwin/extasy
 /**
  * Отображает форму добавления нового контрола
  * @todo Сделать поддержку настраиваемых конфигов
  */
 protected function outputAddControlForm()
 {
     //
     $controls = CConfigControlManager::selectAll();
     foreach ($controls as $key => $row) {
         $controls[$key] = array('id' => $key, 'name' => call_user_func(array($row, 'getControlTitle')));
     }
     // Выводим поля для вставки: имя, тайтл, селект выбора типа
     $name = new CInput();
     $name->name = 'name';
     $title = new CInput();
     $title->name = 'title';
     $xtype = new CSelect();
     $xtype->name = 'xtype';
     $xtype->items = $controls;
     //
     $design = CMSDesign::getInstance();
     $design->forms->begin();
     $design->table->begin();
     $design->table->row2cell('Сист. имя', $name);
     $design->table->row2cell('Подпись к контролу', $title);
     $design->table->row2cell('Тип', $xtype);
     $design->table->end();
     $design->forms->hidden('schema', $this->schema->getName());
     $design->forms->submit('add', 'Добавить');
     $design->forms->end();
 }