コード例 #1
0
 /**
  * Returns an array of all model classes (associated with some module) which have this
  * behavior
  *
  * @return <array of strings>
  */
 public static function getModelsWhichSupportQuickCreate($includeActions = false)
 {
     if (!isset(self::$_modelsWhichSupportQuickCreate)) {
         self::$_modelsWhichSupportQuickCreate = array_diff(array_keys(X2Model::getModelNames()), array('Docs', 'Groups', 'Campaign', 'Media', 'Quote', 'BugReports'));
         self::$_modelsWhichSupportQuickCreate[] = 'Actions';
     }
     $modelNames = self::$_modelsWhichSupportQuickCreate;
     if (!$includeActions) {
         array_pop($modelNames);
     }
     return $modelNames;
 }
コード例 #2
0
 protected function validateValue(CModel $object, $value, $attribute)
 {
     if (!is_string($value) || !in_array($value, array_keys(X2Model::getModelNames())) && (!$this->includeActions || $value !== 'Actions')) {
         $this->addError($object, $attribute, Yii::t('app', 'Invalid record type'));
     }
 }
コード例 #3
0
ファイル: Docs.php プロジェクト: keyeMyria/CRM
 /**
  * @return array names of models which support email templates 
  */
 public static function modelsWhichSupportEmailTemplates()
 {
     // get all x2model types not in blacklist
     return array_diff_key(X2Model::getModelNames(), array_flip(array('Actions', 'Quote', 'Product', 'Opportunity', 'Campaign')));
 }
コード例 #4
0
 /**
  * For each child of X2Model, ensure that filters and sort order get saved in session correctly
  * and that analogous methods in ERememberFiltersBehavior and SmartDataProviderBehavior behave
  * the same
  */
 public function testX2ModelSessionSettings()
 {
     $models = X2Model::getModelNames();
     unset($models['EmailInboxes']);
     foreach ($models as $class => $title) {
         $_SESSION = array();
         X2_TEST_DEBUG_LEVEL > 1 && println('testing sort for ' . $class);
         $uid = rand();
         $_GET["{$class}_sort"] = 'test';
         $_GET[$class] = array('id' => 0);
         $searchModel = new $class('search');
         $dataProvider = $searchModel->search();
         $sort = $searchModel->asa('ERememberFiltersBehavior')->getSetting('sort');
         $filters = $searchModel->asa('ERememberFiltersBehavior')->getSetting('filters');
         $sort2 = $dataProvider->asa('SmartDataProviderBehavior')->getSetting('sort');
         $filters2 = $dataProvider->asa('SmartDataProviderBehavior')->getSetting('filters');
         $this->assertEquals($filters, $_GET[$class]);
         $this->assertEquals($filters, $filters2);
         $this->assertEquals($sort, $_GET[$class . '_sort']);
         $this->assertEquals($sort, $sort2);
     }
 }
コード例 #5
0
ファイル: Fields.php プロジェクト: shayanyi/CRM
 /**
  * Rules for saving a field.
  *
  * See the following MySQL documentation pages for more info on length
  * restrictions and naming requirements:
  * http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
  *
  * @return array validation rules for model attributes.
  */
 public function rules()
 {
     // NOTE: you should only define rules for those attributes that
     // will receive user inputs.
     return array(array('modelName, attributeLabel', 'length', 'max' => 250), array('fieldName', 'length', 'max' => 64), array('fieldName', 'match', 'pattern' => '/^[a-zA-Z]\\w+$/', 'message' => Yii::t('admin', 'Field name may only contain alphanumeric characters and underscores.')), array('fieldName', 'nonReserved'), array('modelName, fieldName, attributeLabel', 'required'), array('modelName', 'in', 'range' => array_keys(X2Model::getModelNames()), 'allowEmpty' => false), array('defaultValue', 'validDefault'), array('relevance', 'in', 'range' => array_keys(self::searchRelevance())), array('custom, modified, readOnly, searchable, required, uniqueConstraint', 'boolean'), array('fieldName', 'uniqueFieldName'), array('linkType', 'length', 'max' => 250), array('type', 'length', 'max' => 20), array('keyType', 'in', 'range' => array('MUL', 'UNI', 'PRI', 'FIX', 'FOR'), 'allowEmpty' => true), array('keyType', 'requiredUnique'), array('data', 'validCustom'), array('id, modelName, fieldName, attributeLabel, custom, modified, readOnly, keyType', 'safe', 'on' => 'search'));
 }
コード例 #6
0
ファイル: createUpdateField.php プロジェクト: dsyman2/X2CRM
                <?php 
    echo $form->textField($model, 'fieldName', array('id' => 'fieldName-input'));
    ?>
                <?php 
    echo $form->error($model, 'fieldName');
    ?>
            </div>
        <?php 
} else {
    ?>
            <div class="row">
                <?php 
    echo $form->labelEx($model, 'modelName');
    ?>
                <?php 
    echo $form->dropDownList($model, 'modelName', X2Model::getModelNames(), array('empty' => Yii::t('admin', 'Select a model'), 'id' => 'modelName-existing'));
    ?>
                <?php 
    echo $form->error($model, 'modelName');
    ?>
            </div>

            <div class="row">
                <?php 
    echo $form->labelEx($model, 'fieldName');
    ?>
                <?php 
    $modelSet = !empty($model->modelName);
    $fieldList = array();
    $fieldOptions = array();
    $customOrMod = false;
コード例 #7
0
ファイル: Api2Controller.php プロジェクト: tymiles003/X2CRM
 /**
  * Responds with a JSON-encoded list of model classes.
  *
  * @param integer $partialSupport 1 to include partially-supported models,
  *  0 to include only fully-supported models.
  */
 public function actionModels($partialSupport = 1)
 {
     // To obtain all models: iterate through modules
     $modelNames = X2Model::getModelNames();
     // Partially-supported models
     $partial = array('Actions' => Yii::t('app', 'Actions'), 'Docs' => Yii::t('app', 'Docs'), 'Groups' => Yii::t('app', 'Groups'), 'Media' => Yii::t('app', 'Media'), 'Quote' => Yii::t('app', 'Quotes'), 'X2List' => Yii::t('app', 'Contact Lists'));
     if ((bool) (int) $partialSupport) {
         $modelNames = array_unique(array_merge($modelNames, $partial));
     } else {
         $modelNames = array_diff($modelNames, $partial);
     }
     asort($modelNames);
     $models = array();
     foreach ($modelNames as $modelName => $title) {
         $attributes = X2Model::model($modelName)->attributeNames();
         $models[] = compact('modelName', 'title', 'attributes');
     }
     $this->responseBody = $models;
 }