/** * Builds a multi-dimensional array of Schemas[SchemaProperties] * Optionally returns a script tag * * @param integer $userId * * @param bool $makeScript * @param string $var * * @return array */ function schema_for_user_select_array($userId, $makeScript = FALSE, $var = '') { //get the schemas for a user $schemasArray = SchemaHasUserPeer::getSchemasForUser($userId); $schemas = array(); /** @var $schema Schema */ foreach ($schemasArray as $schema) { //select schema properties to add to array $schemaId = $schema->getId(); $schemas[$schemaId] = array('name' => $schema->getName(), 'uri' => $schema->getUri(), 'properties' => array()); $schemaPropArray = SchemaPropertyPeer::getElementsForSchema($schemaId); /** @var $element SchemaProperty */ foreach ($schemaPropArray as $schemaProp) { $schemaPropId = $schemaProp->getId(); $schemas[$schemaId]['properties'][$schemaPropId] = array('name' => $schemaProp->getLabel(), 'uri' => $schemaProp->getUri(), 'type' => $schemaProp->getType()); } } if ($makeScript) { $var = $var ? $var : "data"; $content = "var {$var} = " . json_encode($schemas); return javascript_tag($content); } return $schemas; }