Example #1
0
    /**
     * Static function to display form for the field type
     * @param string $name
     * @param string $value
     * @param string $css
     * @return html for the form containing the field
     */
    public static function display_field($name, $value = '', $css = '')
    {
        $current_user = $_SESSION["do_user"]->iduser;
        $do_user = new User();
        $active_users = $do_user->get_active_users();
        $active_users_but_me = array();
        foreach ($active_users as $key => $users) {
            if ($users["iduser"] == $current_user) {
                continue;
            }
            $active_users_but_me[] = $users["user_name"] . '(' . $users["firstname"] . ' ' . $users["lastname"] . ')';
        }
        $mention_users_json = json_encode($active_users_but_me);
        echo '<textarea class="' . $css . '" name="' . $name . '" id="' . $name . '" rows="7">' . $value . '</textarea>';
        echo "\n" . '<script>
			$("#' . $name . '").autogrow({onInitialize: true});
			$(document).ready(function() { 
				var mentionUsers = \'' . $mention_users_json . '\' ;
				$(\'#' . $name . '\').textcomplete([
					{ // emoji strategy
						match: /\\B:([\\-+\\w]*)$/,
						search: function (term, callback) {
							callback($.map(emojies, function (emoji) {
								return emoji.indexOf(term) === 0 ? emoji : null;
							}));
						},
						template: function (value) {
							return \'<img width="20" height="20" src="/themes/images/emoji-pngs/\' + value + \'.png"></img>\' + value;
						},
						replace: function (value) {
							return \':\' + value + \': \';
						},
						index: 1
					},
					{ // mentions strategy
						mentions : $.parseJSON(mentionUsers),
						match: /\\B@(\\w*)$/,
						search: function (term, callback) {
							callback($.map(this.mentions, function (mention) {
								return mention.indexOf(term) === 0 ? mention : null;
							}));
						},
						index: 1,
						replace: function (mention) {
							var mentionedUserName = mention.split(\'(\') ;
							return \'@\' + mentionedUserName[0] + \' \';
						}
					}
				]); 
			});
			
		</script>' . "\n";
    }
Example #2
0
 /**
  * add feed for the mentioned notes
  * @param integer $idnotes
  * @param string $note_content
  * @param integer $related_module_id
  * @param integer $sqcrm_record_id
  */
 public function add_mentions_feed($idnotes, $note_content, $related_module_id, $sqcrm_record_id)
 {
     if ($idnotes > 0) {
         $mentioned_feed_receiptents = array();
         preg_match_all("/(^|[^@\\w])@(\\w{1,15})\\b/im", $note_content, $mentioned_users);
         if (is_array($mentioned_users) && array_key_exists(2, $mentioned_users) && count($mentioned_users[2]) > 0) {
             $do_user = new \User();
             $active_users = $do_user->get_active_users();
             $current_user = 0;
             $active_users_key_as_username = array();
             foreach ($active_users as $key => $users) {
                 if ($users["iduser"] == $current_user) {
                     continue;
                 }
                 $active_users_key_as_username[$users["user_name"]] = array("iduser" => $users["iduser"], "firstname" => $users["firstname"], "lastname" => $users["lastname"], "email" => $users["email"]);
             }
             foreach ($mentioned_users[2] as $key => $val) {
                 if (array_key_exists($val, $active_users_key_as_username)) {
                     $mentioned_feed_receiptents[] = $active_users_key_as_username[$val["iduser"]];
                 }
             }
             if (is_array($mentioned_feed_receiptents) && count($mentioned_feed_receiptents) > 0) {
                 $do_feed_queue = new \LiveFeedQueue();
                 $do_crm_entity = new \CRMEntity();
                 $do_module = new \Module();
                 $do_module->getId($related_module_id);
                 $identifier = $do_crm_entity->get_entity_identifier($sqcrm_record_id, $do_module->name);
                 $related_identifier_data = array("related_identifier" => '', "related_identifier_idrecord" => $idnotes, "related_identifier_idmodule" => 8);
                 $do_feed_queue->add_feed_queue($sqcrm_record_id, $related_module_id, $identifier, 'note_mention', $mentioned_feed_receiptents, $related_identifier_data);
             }
         }
     }
 }