Current File : //home/strato/chroot/opt/RZphp72/includes/test/DB_DataObject_FormBuilder/tests/links.phpt
--TEST--
Links
--SKIPIF--
<?php require_once dirname(__FILE__).'/config.php'; ?>
--FILE--
<?php
include(dirname(__FILE__).'/config.php');
$do =& DB_DataObject::factory('movie');
if (PEAR::isError($do)) {
    die($do->getMessage());
}
$fb =& DB_DataObject_FormBuilder::create($do);
if (PEAR::isError($fb)) {
    die($fb->getMessage());
}
$form =& $fb->getForm();
$el =& $form->getElement('genre_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    var_dump($el->_options['0']['text']);
}
$do =& DB_DataObject::factory('movie');
function prepDO(&$do, $field) {
	if ($field == 'genre_id') {
		$do->fb_linkDisplayFields = array('name');
	}
}
$do->fb_prepareLinkedDataObjectCallback = 'prepDO';
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('genre_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    var_dump($el->_options['0']['text']);
}
$do =& DB_DataObject::factory('movie');
function prepDO2(&$do, $field) {
	switch ($field) {
	case 'genre_id':
		$do->fb_linkDisplayFields = array('name', 'id');
		break;
	case 'linkTest_id':
		$do->fb_linkDisplayFields = array('name', 'name2', 'linkTest2_id');
		break;
	case 'linkTest2_id':
		$do->fb_linkDisplayFields = array('name', 'name2');
		break;
	}
}
$do->fb_prepareLinkedDataObjectCallback = 'prepDO2';
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('genre_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    var_dump($el->_options['0']['text']);
}

$do =& DB_DataObject::factory('movie');
$do->fb_prepareLinkedDataObjectCallback = 'prepDO2';
$do->fb_linkDisplayLevel = 1;
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('linkTest_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    var_dump($el->_options['1']['text']);
}

$do =& DB_DataObject::factory('movie');
$do->fb_prepareLinkedDataObjectCallback = 'prepDO2';
$do->fb_linkDisplayLevel = 2;
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('linkTest_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    var_dump($el->_options['1']['text']);
}

function prepDO3(&$do, $field) {
	if ($field == 'linkTest_id') {
		$do->fb_linkOrderFields = array('name');
	}
	prepDO2($do, $field);
}
$do =& DB_DataObject::factory('movie');
$do->fb_prepareLinkedDataObjectCallback = 'prepDO3';
$do->fb_linkDisplayLevel = 2;
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('linkTest_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    foreach ($el->_options as $option) {
        var_dump($option['text']);
    }
}

function prepDO4(&$do, $field) {
	if ($field == 'linkTest_id') {
		$do->fb_linkOrderFields = array('name', 'name2');
	}
	prepDO2($do, $field);
}
$do =& DB_DataObject::factory('movie');
$do->fb_prepareLinkedDataObjectCallback = 'prepDO4';
$do->fb_linkDisplayLevel = 2;
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('linkTest_id');
if (empty($el->_options)) {
    echo "_options is not set\n";
} else {
    foreach ($el->_options as $option) {
        var_dump($option['text']);
    }
}

/*$do =& DB_DataObject::factory('movie');
$do->fb_prepareLinkedDataObjectCallback = 'prepDO4';
$do->fb_linkDisplayLevel = 2;
$do->fb_linkNewValue = true;
$fb =& DB_DataObject_FormBuilder::create($do);
$form =& $fb->getForm();
$el =& $form->getElement('linkTest_id');
var_dump($el->_options);
//var_dump($el->_options[sizeof($el->_options) - 1]['text']);
*/
?>
--EXPECT--
string(1) "1"
string(6) "Action"
string(9) "Action, 4"
string(15) "1name, 2name, 1"
string(33) "1name, 2name, (1, 1 name, 2 name)"
string(0) ""
string(33) "1name, 2name, (1, 1 name, 2 name)"
string(28) "another, yep, (2, blah, foo)"
string(13) "test, testt, "
string(14) "test, 2 test, "
string(37) "test 2, test 2 2, (1, 1 name, 2 name)"
string(32) "test 3, test 3 2, (2, blah, foo)"
string(0) ""
string(33) "1name, 2name, (1, 1 name, 2 name)"
string(28) "another, yep, (2, blah, foo)"
string(14) "test, 2 test, "
string(13) "test, testt, "
string(37) "test 2, test 2 2, (1, 1 name, 2 name)"
string(32) "test 3, test 3 2, (2, blah, foo)"