本文整理汇总了PHP中X2Model::asa方法的典型用法代码示例。如果您正苦于以下问题:PHP X2Model::asa方法的具体用法?PHP X2Model::asa怎么用?PHP X2Model::asa使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类X2Model
的用法示例。
在下文中一共展示了X2Model::asa方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getJSClassParams
public function getJSClassParams()
{
if (!isset($this->_JSClassParams)) {
$title = X2Model::getModelTitle(get_class($this->model), true);
$targetClass = $this->targetClass;
$behavior = $this->model->asa('X2ModelConversionBehavior');
$conversionFailed = $behavior->conversionFailed && $behavior->errorModel !== null && get_class($behavior->errorModel) === $this->targetClass;
$this->_JSClassParams = array_merge(parent::getJSClassParams(), array('buttonSelector' => $this->buttonSelector, 'translations' => array('conversionError' => Yii::t('app', '{model} conversion failed.', array('{model}' => $title)), 'conversionWarning' => Yii::t('app', '{model} Conversion Warning', array('{model}' => $title)), 'convertAnyway' => Yii::t('app', 'Convert Anyway'), 'Cancel' => Yii::t('app', 'Cancel')), 'targetClass' => $this->targetClass, 'modelId' => $this->model->id, 'conversionFailed' => $conversionFailed, 'conversionIncompatibilityWarnings' => $this->model->getConversionIncompatibilityWarnings($this->targetClass), 'errorSummary' => $conversionFailed ? "<div class='form'>" . CHtml::errorSummary($this->model->asa('X2ModelConversionBehavior')->errorModel, Yii::t('app', '{model} conversion failed.', array('{model}' => $title))) . "</div>" : ''));
}
return $this->_JSClassParams;
}
示例2: handleWebleadFormSubmission
private function handleWebleadFormSubmission(X2Model $model, $extractedParams)
{
$newRecord = $model->isNewRecord;
if (isset($_POST['Contacts'])) {
$model->createEvent = false;
$model->setX2Fields($_POST['Contacts'], true);
// Extra sanitizing
$p = Fields::getPurifier();
foreach ($model->attributes as $name => $value) {
if ($name != $model->primaryKey() && !empty($value)) {
$model->{$name} = $p->purify($value);
}
}
$now = time();
$model->visibility = 1;
$model->validate(null, false);
if (!$model->hasErrors()) {
$model->lastUpdated = $now;
$model->updatedBy = 'admin';
if ($model->asa('X2DuplicateBehavior') && $model->checkForDuplicates()) {
$duplicates = $model->getDuplicates();
$oldest = $duplicates[0];
$fields = $model->getFields(true);
foreach ($fields as $field) {
if (!in_array($field->fieldName, $model->X2MergeableBehavior->restrictedFields) && !is_null($model->{$field->fieldName})) {
if ($field->type === 'text' && !empty($oldest->{$field->fieldName})) {
$oldest->{$field->fieldName} .= "\n--\n" . $model->{$field->fieldName};
} else {
$oldest->{$field->fieldName} = $model->{$field->fieldName};
}
}
}
$model = $oldest;
$newRecord = $model->isNewRecord;
}
if ($newRecord) {
$model->createDate = $now;
$model->assignedTo = $this->controller->getNextAssignee();
}
$success = $model->save();
//TODO: upload profile picture url from webleadfb
if ($success) {
if ($extractedParams['generateLead']) {
self::generateLead($model, $extractedParams['leadSource']);
}
if ($extractedParams['generateAccount']) {
self::generateAccount($model);
}
self::addTags($model);
$tags = !isset($_POST['tags']) || empty($_POST['tags']) ? array() : explode(',', $_POST['tags']);
if ($newRecord) {
X2Flow::trigger('WebleadTrigger', array('model' => $model, 'tags' => $tags));
}
//use the submitted info to create an action
Actions::associateAction($model, array('actionDescription' => Yii::t('contacts', 'Web Lead') . "\n\n" . Yii::t('contacts', 'Name') . ': ' . CHtml::decode($model->firstName) . " " . CHtml::decode($model->lastName) . "\n" . Yii::t('contacts', 'Email') . ": " . CHtml::decode($model->email) . "\n" . Yii::t('contacts', 'Phone') . ": " . CHtml::decode($model->phone) . "\n" . Yii::t('contacts', 'Background Info') . ": " . CHtml::decode($model->backgroundInfo), 'type' => 'note'));
// create a notification if the record is assigned to someone
$event = new Events();
$event->associationType = 'Contacts';
$event->associationId = $model->id;
$event->user = $model->assignedTo;
$event->type = 'weblead_create';
$event->save();
if ($model->assignedTo != 'Anyone' && $model->assignedTo != '') {
$notif = new Notification();
$notif->user = $model->assignedTo;
$notif->createdBy = 'API';
$notif->createDate = time();
$notif->type = 'weblead';
$notif->modelType = 'Contacts';
$notif->modelId = $model->id;
$notif->save();
$profile = Profile::model()->findByAttributes(array('username' => $model->assignedTo));
/* send user that's assigned to this weblead an email if the user's email
address is set and this weblead has a user email template */
if ($profile !== null && !empty($profile->emailAddress)) {
$subject = Yii::t('marketing', 'New Web Lead');
$message = Yii::t('marketing', 'A new web lead has been assigned to you: ') . CHtml::link($model->firstName . ' ' . $model->lastName, array('/contacts/contacts/view', 'id' => $model->id)) . '.';
$address = array('to' => array(array('', $profile->emailAddress)));
$emailFrom = Credentials::model()->getDefaultUserAccount(Credentials::$sysUseId['systemNotificationEmail'], 'email');
if ($emailFrom == Credentials::LEGACY_ID) {
$emailFrom = array('name' => $profile->fullName, 'address' => $profile->emailAddress);
}
$status = $this->controller->sendUserEmail($address, $subject, $message, null, $emailFrom);
}
}
} else {
$errMsg = 'Error: WebListenerAction.php: model failed to save';
/**/
AuxLib::debugLog($errMsg);
Yii::log($errMsg, '', 'application.debug');
}
$this->controller->renderPartial('application.components.views.webFormSubmit', array('type' => 'weblead', 'redirectUrl' => $extractedParams['redirectUrl']));
Yii::app()->end();
// success!
}
}
$sanitizedGetParams = self::sanitizeGetParams();
$this->controller->renderPartial('application.components.views.webForm', array_merge(array('type' => 'weblead'), $sanitizedGetParams));
}