<?php
/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
# ***** BEGIN LICENSE BLOCK *****
# This file is part of Plume CMS, a website management application.
# Copyright (C) 2001-2007 Loic d'Anterroches and contributors.
#
# Plume CMS is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# Plume CMS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# ***** END LICENSE BLOCK ***** */
Pluf::loadClass('Pluf_Model');
class TestModel extends Pluf_Model
{
function init()
{
$this->_a['table'] = 'testmodel';
$this->_a['model'] = 'TestModel';
$this->_a['cols'] = array(
'id' =>
array(
'type' => 'Pluf_DB_Field_Sequence',
'blank' => true,//It is automatically added.
),
'title' =>
array(
'type' => 'Pluf_DB_Field_Varchar',
'blank' => false,
'size' => 100,
),
'description' =>
array(
'type' => 'Pluf_DB_Field_Text',
'blank' => true,
),
);
$this->_a['idx'] = array(
'title' =>
array(
'type' => 'normal'
),
);
$this->_a['views'] = array(
'simple' =>
array(
'select' => 'testmodel_id, title, description',
),
'__unique__' =>
array(
'select' => 'testmodel_id',
)
);
parent::init();
}
}
class TestModelRecurse extends Pluf_Model
{
function init()
{
$this->_a['table'] = 'testmodelrecurse';
$this->_a['model'] = 'TestModelRecurse';
$this->_a['cols'] = array(
'id' =>
array(
'type' => 'Pluf_DB_Field_Sequence',
'blank' => true,//It is automatically added.
),
'title' =>
array(
'type' => 'Pluf_DB_Field_Varchar',
'blank' => false,
'size' => 100,
),
'parentid' =>
array(
'type' => 'Pluf_DB_Field_Foreignkey',
'blank' => true,
'model' => 'TestModelRecurse',
'relate_name'=> 'children',
),
);
$this->_a['idx'] = array();
$this->_a['views'] = array();
parent::init();
}
}
class RelatedToTestModel2 extends Pluf_Model
{
function init()
{
$this->_a['table'] = 'relatedtotestmodel2';
$this->_a['model'] = 'RelatedToTestModel2';
$this->_a['cols'] = array(
'id' =>
array(
'type' => 'Pluf_DB_Field_Sequence',
'blank' => true, //It is automatically added.
),
'testmodel_1' =>
array(
'type' => 'Pluf_DB_Field_Foreignkey',
'blank' => false,
'model' => 'TestModel',
'relate_name' => 'first_rttm',
),
'testmodel_2' =>
array(
'type' => 'Pluf_DB_Field_Foreignkey',
'blank' => false,
'model' => 'TestModel',
'relate_name' => 'second_rttm',
),
'dummy' =>
array(
'type' => 'Pluf_DB_Field_Varchar',
'blank' => false,
'size' => 100,
),
);
parent::init();
}
}
class RelatedToTestModel extends Pluf_Model
{
function init()
{
$this->_a['table'] = 'relatedtotestmodel';
$this->_a['model'] = 'RelatedToTestModel';
$this->_a['cols'] = array(
'id' =>
array(
'type' => 'Pluf_DB_Field_Sequence',
'blank' => true, //It is automatically added.
),
'testmodel' =>
array(
'type' => 'Pluf_DB_Field_Foreignkey',
'blank' => false,
'model' => 'TestModel',
),
'dummy' =>
array(
'type' => 'Pluf_DB_Field_Varchar',
'blank' => false,
'size' => 100,
),
);
$this->_a['idx'] = array(
'testmodel_id' =>
array(
'type' => 'normal',
'col' => 'testmodel',
),
);
$this->_a['views'] = array();
parent::init();
}
}
class ManyToManyOne extends Pluf_Model
{
function init()
{
$this->_a['table'] = 'manytomanyone';
$this->_a['model'] = 'ManyToManyOne';
$this->_a['cols'] = array(
'id' =>
array(
'type' => 'Pluf_DB_Field_Sequence',
'blank' => true, //It is automatically added.
),
'two' =>
array(
'type' => 'Pluf_DB_Field_Manytomany',
'blank' => true,
'model' => 'ManyToManyTwo',
),
'one' =>
array(
'type' => 'Pluf_DB_Field_Varchar',
'blank' => false,
'size' => 100,
),
);
$this->_a['idx'] = array();
$this->_a['views'] = array();
/* 'simple' =>
array(
'join' => 'JOIN unit_tests_manytomanyone_manytwomanytwo_assoc ON ',
),
);
*/
}
}
class ManyToManyTwo extends Pluf_Model
{
function init()
{
$this->_a['table'] = 'manytomanytwo';
$this->_a['model'] = 'ManyToManyTwo';
$this->_a['cols'] = array(
'id' =>
array(
'type' => 'Pluf_DB_Field_Sequence',
'blank' => true, //It is automatically added.
),
'two' =>
array(
'type' => 'Pluf_DB_Field_Varchar',
'blank' => false,
'size' => 100,
),
);
$this->_a['idx'] = array();
$this->_a['views'] = array();
}
}