Esempio n. 1
0
$layout = FormLayout::model()->findByAttributes(array('model' => ucfirst($modelName), 'defaultView' => 1));
if (isset($layout)) {
    echo '<div class="x2-layout">';
    $fields = array();
    // remove this later, once all models extend X2Models
    if (method_exists($model, 'getFields')) {
        foreach ($model->fields as $fieldModel) {
            $fields[$fieldModel->fieldName] = $fieldModel;
        }
    } else {
        foreach (Fields::model()->findAllByAttributes(array('modelName' => ucfirst($modelName))) as $fieldModel) {
            $fields[$fieldModel->fieldName] = $fieldModel;
        }
    }
    $layoutData = json_decode($layout->layout, true);
    $formSettings = ProfileChild::getFormSettings($modelName);
    if (isset($layoutData['sections']) && count($layoutData['sections']) > 0) {
        $fieldPermissions = array();
        if (!empty(Yii::app()->params->roles)) {
            $rolePermissions = Yii::app()->db->createCommand()->select('fieldId, permission')->from('x2_role_to_permission')->join('x2_fields', 'x2_fields.modelName="' . $modelName . '" AND x2_fields.id=fieldId AND roleId IN (' . implode(',', Yii::app()->params->roles) . ')')->queryAll();
            foreach ($rolePermissions as &$permission) {
                if (!isset($fieldPermissions[$permission['fieldId']]) || $fieldPermissions[$permission['fieldId']] < (int) $permission['permission']) {
                    $fieldPermissions[$permission['fieldId']] = (int) $permission['permission'];
                }
            }
        }
        $i = 0;
        foreach ($layoutData['sections'] as &$section) {
            // set defaults
            if (!isset($section['title'])) {
                $section['title'] = '';
Esempio n. 2
0
 public static function setFormSettings($formSettings, $formName = null)
 {
     if (isset($formName)) {
         $fullFormSettings = ProfileChild::getFormSettings();
         $fullFormSettings[strtolower($formName)] = $formSettings;
         Yii::app()->params->profile->formSettings = json_encode($fullFormSettings);
         // encode array in JSON
     } else {
         Yii::app()->params->profile->formSettings = json_encode($formSettings);
         // encode array in JSON
     }
     return Yii::app()->params->profile->save();
 }