Пример #1
0
/**
 * 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;
}