コード例 #1
0
ファイル: Events.php プロジェクト: shuvro35/X2CRM
 public function getText(array $params = array(), array $htmlOptions = array())
 {
     $truncated = array_key_exists('truncated', $params) ? $params['truncated'] : false;
     $requireAbsoluteUrl = array_key_exists('requireAbsoluteUrl', $params) ? $params['requireAbsoluteUrl'] : false;
     $text = "";
     $authorText = "";
     if (Yii::app()->user->getName() == $this->user) {
         $authorText = CHtml::link(Yii::t('app', 'You'), Yii::app()->controller->createAbsoluteUrl('/profile/view', array('id' => Yii::app()->user->getId())), $htmlOptions);
     } else {
         $authorText = User::getUserLinks($this->user);
     }
     if (!empty($authorText)) {
         $authorText .= " ";
     }
     switch ($this->type) {
         case 'notif':
             $parent = X2Model::model('Notification')->findByPk($this->associationId);
             if (isset($parent)) {
                 $text = $parent->getMessage();
             } else {
                 $text = Yii::t('app', "Notification not found");
             }
             break;
         case 'record_create':
             $actionFlag = false;
             if (class_exists($this->associationType)) {
                 if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                     if ($this->associationType == 'Actions') {
                         $action = X2Model::model('Actions')->findByPk($this->associationId);
                         if (isset($action) && (strcasecmp($action->associationType, 'contacts') === 0 || in_array($action->type, array('call', 'note', 'time')))) {
                             // Special considerations for publisher-created actions, i.e. call,
                             // note, time, and anything associated with a contact
                             $actionFlag = true;
                             // Retrieve the assigned user from the related action
                             $relatedAction = Actions::model()->findByPk($this->associationId);
                             if ($authorText) {
                                 $authorText = User::getUserLinks($relatedAction->assignedTo);
                             }
                         }
                     }
                     if ($actionFlag) {
                         $authorText = empty($authorText) ? Yii::t('app', 'Someone') : $authorText;
                         switch ($action->type) {
                             case 'call':
                                 $text = Yii::t('app', '{authorText} logged a call ({duration}) with {modelLink}: "{logAbbrev}"', array('{authorText}' => $authorText, '{duration}' => empty($action->dueDate) || empty($action->completeDate) ? Yii::t('app', 'duration unknown') : Formatter::formatTimeInterval($action->dueDate, $action->completeDate, '{hoursMinutes}'), '{modelLink}' => X2Model::getModelLink($action->associationId, ucfirst($action->associationType), $requireAbsoluteUrl), '{logAbbrev}' => CHtml::encode($action->actionDescription)));
                                 break;
                             case 'note':
                                 $text = Yii::t('app', '{authorText} posted a comment on {modelLink}: "{noteAbbrev}"', array('{authorText}' => $authorText, '{modelLink}' => X2Model::getModelLink($action->associationId, ucfirst($action->associationType), $requireAbsoluteUrl), '{noteAbbrev}' => CHtml::encode($action->actionDescription)));
                                 break;
                             case 'time':
                                 $text = Yii::t('app', '{authorText} logged {time} on {modelLink}: "{noteAbbrev}"', array('{authorText}' => $authorText, '{time}' => Formatter::formatTimeInterval($action->dueDate, $action->dueDate + $action->timeSpent, '{hoursMinutes}'), '{modelLink}' => X2Model::getModelLink($action->associationId, ucfirst($action->associationType)), '{noteAbbrev}' => CHtml::encode($action->actionDescription)));
                                 break;
                             default:
                                 if (!empty($authorText)) {
                                     $text = Yii::t('app', "A new {actionLink} associated with the contact {contactLink} has been assigned to " . $authorText, array('{actionLink}' => CHtml::link(Events::parseModelName($this->associationType), '#', array_merge($htmlOptions, array('class' => 'action-frame-link', 'data-action-id' => $this->associationId))), '{contactLink}' => X2Model::getModelLink($action->associationId, ucfirst($action->associationType), $requireAbsoluteUrl)));
                                 } else {
                                     $text = Yii::t('app', "A new {actionLink} associated with the contact {contactLink} has been created.", array('{actionLink}' => CHtml::link(Events::parseModelName($this->associationType), '#', array_merge($htmlOptions, array('class' => 'action-frame-link', 'data-action-id' => $this->associationId))), '{contactLink}' => X2Model::getModelLink($action->associationId, ucfirst($action->associationType), $requireAbsoluteUrl)));
                                 }
                         }
                     } else {
                         if (!empty($authorText)) {
                             $modelLink = X2Model::getModelLink($this->associationId, $this->associationType, $requireAbsoluteUrl);
                             if (isset($action) && $this->user !== $action->assignedTo) {
                                 // Include the assignee if this is for an action assigned to someone other than the creator
                                 $translateText = "created a new {modelName} for {assignee}, {modelLink}";
                             } elseif ($modelLink !== '') {
                                 $translateText = "created a new {modelName}, {modelLink}";
                             } else {
                                 $translateText = "created a new {modelName}";
                             }
                             $text = $authorText . Yii::t('app', $translateText, array('{modelName}' => Events::parseModelName($this->associationType), '{modelLink}' => $modelLink, '{assignee}' => isset($action) ? User::getUserLinks($action->assignedTo) : null));
                         } else {
                             $text = Yii::t('app', "A new {modelName}, {modelLink}, has been created.", array('{modelName}' => Events::parseModelName($this->associationType), '{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType, $requireAbsoluteUrl)));
                         }
                     }
                 } else {
                     $deletionEvent = X2Model::model('Events')->findByAttributes(array('type' => 'record_deleted', 'associationType' => $this->associationType, 'associationId' => $this->associationId));
                     if (isset($deletionEvent)) {
                         if (!empty($authorText)) {
                             $text = $authorText . Yii::t('app', "created a new {modelName}, {deletionText}. It has been deleted.", array('{modelName}' => Events::parseModelName($this->associationType), '{deletionText}' => $deletionEvent->text));
                         } else {
                             $text = Yii::t('app', "A {modelName}, {deletionText}, was created. It has been deleted.", array('{modelName}' => Events::parseModelName($this->associationType), '{deletionText}' => $deletionEvent->text));
                         }
                     } else {
                         if (!empty($authorText)) {
                             $text = $authorText . Yii::t('app', "created a new {modelName}, but it could not be found.", array('{modelName}' => Events::parseModelName($this->associationType)));
                         } else {
                             $text = Yii::t('app', "A {modelName} was created, but it could not be found.", array('{modelName}' => Events::parseModelName($this->associationType)));
                         }
                     }
                 }
             }
             break;
         case 'weblead_create':
             if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                 $text = Yii::t('app', "A new web lead has come in: {modelLink}", array('{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
             } else {
                 $deletionEvent = X2Model::model('Events')->findByAttributes(array('type' => 'record_deleted', 'associationType' => $this->associationType, 'associationId' => $this->associationId));
                 if (isset($deletionEvent)) {
                     $text = Yii::t('app', "A new web lead has come in: {deletionText}. It has been deleted.", array('{deletionText}' => $deletionEvent->text));
                 } else {
                     $text = Yii::t('app', "A new web lead has come in, but it could not be found.");
                 }
             }
             break;
         case 'record_deleted':
             if (class_exists($this->associationType)) {
                 if (Yii::app()->params->profile !== null && Yii::app()->params->profile->language != 'en' && !empty(Yii::app()->params->profile->language) || Yii::app()->params->profile === null && Yii::app()->language !== 'en' || strpos($this->associationType, 'A') !== 0 && strpos($this->associationType, 'E') !== 0 && strpos($this->associationType, 'I') !== 0 && strpos($this->associationType, 'O') !== 0 && strpos($this->associationType, 'U') !== 0) {
                     if (!empty($authorText)) {
                         $text = $authorText . Yii::t('app', "deleted a {modelType}, {text}", array('{modelType}' => Events::parseModelName($this->associationType), '{text}' => $this->text));
                     } else {
                         $text = Yii::t('app', "A {modelType}, {text}, was deleted", array('{modelType}' => Events::parseModelName($this->associationType), '{text}' => $this->text));
                     }
                 } else {
                     if (!empty($authorText)) {
                         $text = $authorText . Yii::t('app', "deleted an {modelType}, {text}.", array('{modelType}' => Events::parseModelName($this->associationType), '{text}' => $this->text));
                     } else {
                         $text = Yii::t('app', "An {modelType}, {text}, was deleted.", array('{modelType}' => Events::parseModelName($this->associationType), '{text}' => $this->text));
                     }
                 }
             }
             break;
         case 'workflow_start':
             $action = X2Model::model('Actions')->findByPk($this->associationId);
             if (isset($action)) {
                 $record = X2Model::model(ucfirst($action->associationType))->findByPk($action->associationId);
                 if (isset($record)) {
                     $stages = Workflow::getStages($action->workflowId);
                     if (isset($stages[$action->stageNumber - 1])) {
                         $text = $authorText . Yii::t('app', 'started the process stage "{stage}" for the {modelName} {modelLink}', array('{stage}' => $stages[$action->stageNumber - 1], '{modelName}' => Events::parseModelName($action->associationType), '{modelLink}' => X2Model::getModelLink($action->associationId, $action->associationType)));
                     } else {
                         $text = $authorText . Yii::t('app', "started a process stage for the {modelName} {modelLink}, but the process stage could not be found.", array('{modelName}' => Events::parseModelName($action->associationType), '{modelLink}' => X2Model::getModelLink($action->associationId, $action->associationType)));
                     }
                 } else {
                     $text = $authorText . Yii::t('app', "started a process stage, but the associated {modelName} was not found.", array('{modelName}' => Events::parseModelName($action->associationType)));
                 }
             } else {
                 $text = $authorText . Yii::t('app', "started a process stage, but the process record could not be found.");
             }
             break;
         case 'workflow_complete':
             $action = X2Model::model('Actions')->findByPk($this->associationId);
             if (isset($action)) {
                 $record = X2Model::model(ucfirst($action->associationType))->findByPk($action->associationId);
                 if (isset($record)) {
                     $stages = Workflow::getStages($action->workflowId);
                     if (isset($stages[$action->stageNumber - 1])) {
                         $text = $authorText . Yii::t('app', 'completed the process stage "{stageName}" for the {modelName} {modelLink}', array('{stageName}' => $stages[$action->stageNumber - 1], '{modelName}' => Events::parseModelName($action->associationType), '{modelLink}' => X2Model::getModelLink($action->associationId, $action->associationType)));
                     } else {
                         $text = $authorText . Yii::t('app', "completed a process stage for the {modelName} {modelLink}, but the process stage could not be found.", array('{modelName}' => Events::parseModelName($action->associationType), '{modelLink}' => X2Model::getModelLink($action->associationId, $action->associationType)));
                     }
                 } else {
                     $text = $authorText . Yii::t('app', "completed a process stage, but the associated {modelName} was not found.", array('{modelName}' => Events::parseModelName($action->associationType)));
                 }
             } else {
                 $text = $authorText . Yii::t('app', "completed a process stage, but the process record could not be found.");
             }
             break;
         case 'workflow_revert':
             $action = X2Model::model('Actions')->findByPk($this->associationId);
             if (isset($action)) {
                 $record = X2Model::model(ucfirst($action->associationType))->findByPk($action->associationId);
                 if (isset($record)) {
                     $stages = Workflow::getStages($action->workflowId);
                     $text = $authorText . Yii::t('app', 'reverted the process stage "{stageName}" for the {modelName} {modelLink}', array('{stageName}' => $stages[$action->stageNumber - 1], '{modelName}' => Events::parseModelName($action->associationType), '{modelLink}' => X2Model::getModelLink($action->associationId, $action->associationType)));
                 } else {
                     $text = $authorText . Yii::t('app', "reverted a process stage, but the associated {modelName} was not found.", array('{modelName}' => Events::parseModelName($action->associationType)));
                 }
             } else {
                 $text = $authorText . Yii::t('app', "reverted a process stage, but the process record could not be found.");
             }
             break;
         case 'feed':
             if (Yii::app()->user->getName() == $this->user) {
                 $author = CHtml::link(Yii::t('app', 'You'), Yii::app()->controller->createAbsoluteUrl('/profile/view', array('id' => Yii::app()->user->getId())), $htmlOptions) . " ";
             } else {
                 $author = User::getUserLinks($this->user);
             }
             $recipUser = Yii::app()->db->createCommand()->select('username')->from('x2_users')->where('id=:id', array(':id' => $this->associationId))->queryScalar();
             $modifier = '';
             $recipient = '';
             if ($this->user != $recipUser && $this->associationId != 0) {
                 if (Yii::app()->user->getId() == $this->associationId) {
                     $recipient = Yii::t('app', 'You');
                 } else {
                     $recipient = User::getUserLinks($recipUser);
                 }
                 if (!empty($recipient)) {
                     $modifier = ' » ';
                 }
             }
             $text = $author . $modifier . $recipient . ": " . ($truncated ? strip_tags(Formatter::convertLineBreaks(x2base::convertUrls($this->text), true, true), '<a></a>') : $this->text);
             break;
         case 'email_sent':
             if (class_exists($this->associationType)) {
                 $model = X2Model::model($this->associationType)->findByPk($this->associationId);
                 if (!empty($model)) {
                     switch ($this->subtype) {
                         case 'quote':
                             $text = $authorText . Yii::t('app', "issued the {transModelName} \"{modelLink}\" via email", array('{transModelName}' => Yii::t('quotes', 'quote'), '{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
                             break;
                         case 'invoice':
                             $text = $authorText . Yii::t('app', "issued the {transModelName} \"{modelLink}\" via email", array('{transModelName}' => Yii::t('quotes', 'invoice'), '{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
                             break;
                         default:
                             $text = $authorText . Yii::t('app', "sent an email to the {transModelName} {modelLink}", array('{transModelName}' => Events::parseModelName($this->associationType), '{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
                             break;
                     }
                 } else {
                     $deletionEvent = X2Model::model('Events')->findByAttributes(array('type' => 'record_deleted', 'associationType' => $this->associationType, 'associationId' => $this->associationId));
                     switch ($this->subtype) {
                         case 'quote':
                             if (isset($deletionEvent)) {
                                 $text = $authorText . Yii::t('app', "issued a quote by email, but that record has been deleted.");
                             } else {
                                 $text = $authorText . Yii::t('app', "issued a quote by email, but that record could not be found.");
                             }
                             break;
                         case 'invoice':
                             if (isset($deletionEvent)) {
                                 $text = $authorText . Yii::t('app', "issued an invoice by email, but that record has been deleted.");
                             } else {
                                 $text = $authorText . Yii::t('app', "issued an invoice by email, but that record could not be found.");
                             }
                             break;
                         default:
                             if (isset($deletionEvent)) {
                                 $text = $authorText . Yii::t('app', "sent an email to a {transModelName}, but that record has been deleted.", array('{transModelName}' => Events::parseModelName($this->associationType)));
                             } else {
                                 $text = $authorText . Yii::t('app', "sent an email to a {transModelName}, but that record could not be found.", array('{transModelName}' => Events::parseModelName($this->associationType)));
                             }
                             break;
                     }
                 }
             }
             break;
         case 'email_opened':
             switch ($this->subtype) {
                 case 'quote':
                     $emailType = Yii::t('app', 'a quote email');
                     break;
                 case 'invoice':
                     $emailType = Yii::t('app', 'an invoice email');
                     break;
                 default:
                     $emailType = Yii::t('app', 'an email');
                     break;
             }
             if (X2Model::getModelName($this->associationType) && count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                 $text = X2Model::getModelLink($this->associationId, $this->associationType) . Yii::t('app', ' has opened {emailType}!', array('{emailType}' => $emailType, '{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
             } else {
                 $text = Yii::t('app', "A contact has opened {emailType}, but that contact cannot be found.", array('{emailType}' => $emailType));
             }
             break;
         case 'email_clicked':
             if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                 $text = X2Model::getModelLink($this->associationId, $this->associationType) . Yii::t('app', ' opened a link in an email campaign and is visiting your website!', array('{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
             } else {
                 $text = Yii::t('app', "A contact has opened a link in an email campaign, but that contact cannot be found.");
             }
             break;
         case 'web_activity':
             if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                 $text = "";
                 $text .= X2Model::getModelLink($this->associationId, $this->associationType) . " " . Yii::t('app', "is currently on your website!");
             } else {
                 $text = Yii::t('app', "A contact was on your website, but that contact cannot be found.");
             }
             break;
         case 'case_escalated':
             if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                 $case = X2Model::model($this->associationType)->findByPk($this->associationId);
                 $text = $authorText . Yii::t('app', "escalated service case {modelLink} to {userLink}", array('{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType), '{userLink}' => User::getUserLinks($case->escalatedTo)));
             } else {
                 $text = $authorText . Yii::t('app', "escalated a service case but that case could not be found.");
             }
             break;
         case 'calendar_event':
             $action = X2Model::model('Actions')->findByPk($this->associationId);
             if (isset($action)) {
                 $text = Yii::t('app', "{calendarText} event: {actionDescription}", array('{calendarText}' => CHtml::link(Yii::t('calendar', 'Calendar'), Yii::app()->controller->createAbsoluteUrl('/calendar/calendar/index'), $htmlOptions), '{actionDescription}' => CHtml::encode($action->actionDescription)));
             } else {
                 $text = Yii::t('app', "{calendarText} event: event not found.", array('{calendarText}' => CHtml::link(Yii::t('calendar', 'Calendar'), Yii::app()->controller->createAbsoluteUrl('/calendar/calendar/index'), $htmlOptions)));
             }
             break;
         case 'action_reminder':
             $action = X2Model::model('Actions')->findByPk($this->associationId);
             if (isset($action)) {
                 $text = Yii::t('app', "Reminder! The following {action} is due now: {transModelLink}", array('{transModelLink}' => X2Model::getModelLink($this->associationId, $this->associationType), '{action}' => strtolower(Modules::displayName(false, 'Actions'))));
             } else {
                 $text = Yii::t('app', "An {action} is due now, but the record could not be found.", array('{action}' => strtolower(Modules::displayName(false, 'Actions'))));
             }
             break;
         case 'action_complete':
             $action = X2Model::model('Actions')->findByPk($this->associationId);
             if (isset($action)) {
                 $text = $authorText . Yii::t('app', "completed the following {action}: {actionDescription}", array('{actionDescription}' => X2Model::getModelLink($this->associationId, $this->associationType, $requireAbsoluteUrl), '{action}' => strtolower(Modules::displayName(false, 'Actions'))));
             } else {
                 $text = $authorText . Yii::t('app', "completed an {action}, but the record could not be found.", array('{action}' => strtolower(Modules::displayName(false, 'Actions'))));
             }
             break;
         case 'doc_update':
             $text = $authorText . Yii::t('app', 'updated a document, {docLink}', array('{docLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
             break;
         case 'email_from':
             if (class_exists($this->associationType)) {
                 if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                     $text = $authorText . Yii::t('app', "received an email from a {transModelName}, {modelLink}", array('{transModelName}' => Events::parseModelName($this->associationType), '{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
                 } else {
                     $deletionEvent = X2Model::model('Events')->findByAttributes(array('type' => 'record_deleted', 'associationType' => $this->associationType, 'associationId' => $this->associationId));
                     if (isset($deletionEvent)) {
                         $text = $authorText . Yii::t('app', "received an email from a {transModelName}, but that record has been deleted.", array('{transModelName}' => Events::parseModelName($this->associationType)));
                     } else {
                         $text = $authorText . Yii::t('app', "received an email from a {transModelName}, but that record could not be found.", array('{transModelName}' => Events::parseModelName($this->associationType)));
                     }
                 }
             }
             break;
         case 'voip_call':
             if (count(X2Model::model($this->associationType)->findAllByPk($this->associationId)) > 0) {
                 $text = Yii::t('app', "{modelLink} called.", array('{modelLink}' => X2Model::getModelLink($this->associationId, $this->associationType)));
             } else {
                 $deletionEvent = X2Model::model('Events')->findByAttributes(array('type' => 'record_deleted', 'associationType' => $this->associationType, 'associationId' => $this->associationId));
                 if (isset($deletionEvent)) {
                     $text = $authorText . Yii::t('app', "A contact called, but the contact record has been deleted.");
                 } else {
                     $text = $authorText . Yii::t('app', "Call from a contact whose record could not be found.");
                 }
             }
             break;
         case 'media':
             $media = X2Model::model('Media')->findByPk($this->associationId);
             $text = substr($authorText, 0, -1) . ": " . $this->text;
             if (isset($media)) {
                 if (!$truncated) {
                     $text .= "<br>" . Media::attachmentSocialText($media->getMediaLink(), true, true);
                 } else {
                     $text .= "<br>" . Media::attachmentSocialText($media->getMediaLink(), true, false);
                 }
             } else {
                 $text .= "<br>Media file not found.";
             }
             break;
         case 'topic_reply':
             $reply = TopicReplies::model()->findByPk($this->associationId);
             if (isset($reply)) {
                 $topicLink = X2Html::link($reply->topic->name, Yii::app()->controller->createUrl('/topics/topics/view', array('id' => $reply->topic->id, 'replyId' => $reply->id)));
                 $text = Yii::t('topics', '{poster} posted a new reply to {topic}.', array('{poster}' => $authorText, '{topic}' => $topicLink));
             } else {
                 $text = Yii::t('topics', '{poster} posted a new reply to a topic, but that reply has been deleted.', array('{poster}' => $authorText));
             }
             break;
         default:
             $text = $authorText . CHtml::encode($this->text);
             break;
     }
     if ($truncated && mb_strlen($text, 'UTF-8') > 250) {
         $text = mb_substr($text, 0, 250, 'UTF-8') . "...";
     }
     return $text;
 }
コード例 #2
0
ファイル: _viewEvent.php プロジェクト: keyeMyria/CRM
        <div class='stacked-icon'></div>
    </div>
    <div class="event-text-box">
        <div class="deleteButton">
            <?php 
if ($data->type == 'feed' && ($data->user == Yii::app()->user->getName() || Yii::app()->params->isAdmin)) {
    echo CHtml::link('', array('/profile/updatePost', 'id' => $data->id, 'profileId' => $profileId), array('class' => 'fa fa-edit')) . " ";
}
if (($data->user == Yii::app()->user->getName() || $data->associationId == Yii::app()->user->getId()) && $data->type == 'feed' || Yii::app()->params->isAdmin) {
    echo CHtml::link('', '#', array('class' => 'fa fa-close delete-link', 'id' => $data->id . '-delete'));
}
?>
        </div>
        <span class="event-text">
            <?php 
echo Formatter::convertLineBreaks(x2base::convertUrls($data->getText()));
?>
        </span>
        <div class='event-bottom-row'>
            <span class="comment-age x2-hint" id="<?php 
echo $data->id . "-" . $data->timestamp;
?>
" 
                  style="<?php 
echo $style;
?>
"
                  title="<?php 
echo Formatter::formatFeedTimestamp($data->timestamp);
?>
">
コード例 #3
0
ファイル: Profile.php プロジェクト: keyeMyria/CRM
 public function getSignature($html = false)
 {
     $adminRule = Yii::app()->settings->emailUseSignature;
     $userRule = $this->emailUseSignature;
     $signature = '';
     switch ($adminRule) {
         case 'admin':
             $signature = Yii::app()->settings->emailSignature;
             break;
         case 'user':
             switch ($userRule) {
                 case 'user':
                     $signature = $signature = $this->emailSignature;
                     break;
                 case 'admin':
                     Yii::app()->settings->emailSignature;
                     break;
                 case 'group':
                     $signature == '';
                     break;
                 default:
                     $signature == '';
             }
             break;
         case 'group':
             $signature == '';
             break;
         default:
             $signature == '';
     }
     $signature = preg_replace(array('/\\{first\\}/', '/\\{last\\}/', '/\\{phone\\}/', '/\\{group\\}/', '/\\{email\\}/'), array($this->user->firstName, $this->user->lastName, $this->officePhone, '', $html ? CHtml::mailto($this->emailAddress) : $this->emailAddress), $signature);
     if ($html) {
         $signature = Formatter::convertLineBreaks($signature);
     }
     return $signature;
 }
コード例 #4
0
ファイル: x2base.php プロジェクト: shuvro35/X2CRM
 /**
  * Replaces any URL in text with an html link (supports mailto links)
  *
  * @todo refactor this out of controllers
  * @param string $text Text to be converted
  * @param boolean $convertLineBreaks
  */
 public static function convertUrls($text, $convertLineBreaks = true)
 {
     /* $text = preg_replace(
        array(
        '/(?(?=<a[^>]*>.+<\/a>)(?:<a[^>]*>.+<\/a>)|([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+))/iex',
        '/<a([^>]*)target="?[^"\']+"?/i',
        '/<a([^>]+)>/i',
        '/(^|\s|>)(www.[^<> \n\r]+)/iex',
        '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/iex'
        ),
        array(
        "stripslashes((strlen('\\2')>0?'\\1<a href=\"\\2\">\\2</a>\\3':'\\0'))",
        '<a\\1',
        '<a\\1 target="_blank">',
        "stripslashes((strlen('\\2')>0?'\\1<a href=\"http://\\2\">\\2</a>\\3':'\\0'))",
        "stripslashes((strlen('\\2')>0?'<a href=\"mailto:\\0\">\\0</a>':'\\0'))"
        ),
        $text
        ); */
     /* URL matching regex from the interwebs:
      * http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/
      */
     $url_pattern = '/\\b(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[-A-Z0-9+&@#\\/%=~_|$?!:,.])*(?:\\([-A-Z0-9+&@#\\/%=~_|$?!:,.]*\\)|[A-Z0-9+&@#\\/%=~_|$])/i';
     $email_pattern = '/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)(\\.[A-Za-z0-9-]+)*)/i';
     /* First break the text into two arrays, one containing <a> tags and the like
      * which should not have any replacements, and another with all the text that
      * should have URLs activated.  Each piece of each array has its offset from
      * original string so we can piece it back together later
      */
     //add any additional tags to be passed over here
     $tags_with_urls = "/(<a[^>]*>.*<\\/a>)|(<img[^>]*>)|(<iframe[^>]*>.*<\\/iframe>)|(<script[^>]*>.*<\\/script>)/i";
     $text_to_add_links = preg_split($tags_with_urls, $text, NULL, PREG_SPLIT_OFFSET_CAPTURE);
     $matches = array();
     preg_match_all($tags_with_urls, $text, $matches, PREG_OFFSET_CAPTURE);
     $text_to_leave = $matches[0];
     // Convert all URLs into html links
     foreach ($text_to_add_links as $i => $value) {
         $text_to_add_links[$i][0] = preg_replace(array($url_pattern, $email_pattern), array("<a href=\"\\0\">\\0</a>", "<a href=\"mailto:\\0\">\\0</a>"), $text_to_add_links[$i][0]);
     }
     // Merge the arrays and sort to be in the original order
     $all_text_chunks = array_merge($text_to_add_links, $text_to_leave);
     usort($all_text_chunks, 'x2base::compareChunks');
     $new_text = "";
     foreach ($all_text_chunks as $chunk) {
         $new_text = $new_text . $chunk[0];
     }
     $text = $new_text;
     // Make sure all links open in new window, and have http:// if missing
     $text = preg_replace(array('/<a([^>]+)target=("[^"]+"|\'[^\']\'|[^\\s]+)([^>]+)/i', '/<a([^>]+href="?\'?)(www\\.|ftp\\.)/i'), array('<a\\1 target=\\2\\3', '<a\\1http://\\2'), $text);
     //convert any tags into links
     $matches = array();
     // avoid matches that end with </span></a>, like other record links
     preg_match('/(^|[>\\s\\.])(#\\w\\w+)(?!.*<\\/span><\\/a>)/u', $text, $matches);
     $tags = Yii::app()->cache->get('x2_taglinks');
     if ($tags === false) {
         $dependency = new CDbCacheDependency('SELECT MAX(timestamp) FROM x2_tags');
         $tags = Yii::app()->db->createCommand()->selectDistinct('tag')->from('x2_tags')->queryColumn();
         // cache either 10min or until a new tag is added
         Yii::app()->cache->set('x2_taglinks', $tags, 600, $dependency);
     }
     if (sizeof($matches) > 1 && $matches[2] !== null && array_search($matches[2], $tags) !== false) {
         $template = "\\1<a href=" . Yii::app()->createUrl('/search/search') . '?term=%23\\2' . ">#\\2</a>";
         //$text = preg_replace('/(^|[>\s\.])#(\w\w+)($|[<\s\.])/u',$template,$text);
         $text = preg_replace('/(^|[>\\s\\.])#(\\w\\w+)/u', $template, $text);
     }
     //TODO: separate convertUrl and convertLineBreak concerns
     if ($convertLineBreaks) {
         return Formatter::convertLineBreaks($text, true, false);
     } else {
         return $text;
     }
 }
コード例 #5
0
ファイル: _viewFrame.php プロジェクト: dsyman2/X2CRM
echo $form->labelEx($model, 'priority');
echo $form->dropDownList($model, 'priority', $model->priorityLabels);
echo "</span></span>";
echo "<span class='field-value'>";
if (!empty($model->subject)) {
    echo "<b>" . $model->renderAttribute('subject', false) . "</b><br><br>";
} elseif (!empty($model->type)) {
    echo "<b>" . ucfirst($model->type) . "</b><br><br>";
}
echo "</span>";
echo "<span class='hidden-frame-form' style='display: none;'>";
echo $form->labelEx($model, 'actionDescription');
echo $form->textArea($model, 'actionDescription', array('class' => 'x2-xxwide-input', 'rows' => 6));
echo "</span>";
echo "<span class='field-value'>";
echo Formatter::convertLineBreaks($model->actionDescription);
echo "</span>";
echo '<div>';
echo CHtml::ajaxSubmitButton(Yii::t('app', 'Submit'), 'update?id=' . $model->id, array(), array('id' => 'action-edit-submit-button', 'style' => 'display:none;float:left;', 'class' => 'hidden-frame-form x2-button highlight'));
echo CHtml::link(Yii::t('actions', 'View Full Edit Page'), array('update', 'id' => $model->id), array('style' => 'float:right;display:none;', 'target' => '_parent', 'class' => 'x2-button hidden-frame-form'));
echo '</div>';
?>
            </div>
            </div>
                <?php 
$this->endWidget();
?>
                <?php 
if (!empty($model->associationType) && is_numeric($model->associationId) && !is_null(X2Model::getAssociationModel($model->associationType, $model->associationId)) && ($publisher == 'false' || !$publisher)) {
    ?>
                <div id="recordBody" class="form">
コード例 #6
0
ファイル: _viewTopicReply.php プロジェクト: tymiles003/X2CRM
            </div>
            <div class="img-box user-avatar">
                <?php 
echo Profile::renderFullSizeAvatar($data->getAuthorId(), 45);
?>
            </div>
        </div>
        <div class='topic-text'>
            <div class='topic-timestamp-text'>
                <?php 
echo Yii::t('topics', 'Posted {datetime}.', array('{datetime}' => Formatter::formatDateTime($data->createDate, 'medium')));
?>
            </div>
            <br>
            <?php 
echo Formatter::convertLineBreaks(x2base::convertUrls($data->text));
?>
            <div class='topic-timestamp-text'>
                <br>
                <?php 
if ($data->isEdited()) {
    echo Yii::t('topics', 'Edited by {user} - {datetime}.', array('{user}' => User::getUserLinks($data->updatedBy, false, true), '{datetime}' => Formatter::formatDateTime($data->lastUpdated, 'medium')));
}
?>
            </div>
        </div>

    </div>
    <div class='topic-footer'>
            <?php 
if (count($data->attachments) > 0) {