private function task_item(ProjectTask $task) {
		return array(
			"id" => $task->getId(),
			"title" => clean($task->getObjectName()),
			"parent" => $task->getParentId(),
			"milestone" => $task->getMilestoneId(),
			"assignedTo" => $task->getAssignedTo()? $task->getAssignedToName():'',
			"completed" => $task->isCompleted(),
			"completedBy" => $task->getCompletedByName(),
			"isLate" => $task->isLate(),
			"daysLate" => $task->getLateInDays(),
			"priority" => $task->getPriority(),
			"percentCompleted" => $task->getPercentCompleted(),
			"duedate" => ($task->getDueDate() ? $task->getDueDate()->getTimestamp() : '0'),
			"order" => $task->getOrder()
		);
	}
 /**
  * Task has been assigned to the user
  *
  * @param ProjectTask $task
  * @return boolean
  * @throws NotifierConnectionError
  */
 function taskAssigned(ProjectTask $task)
 {
     if ($task->isCompleted()) {
         return true;
         // task has been already completed...
     }
     if (!$task->getAssignedTo() instanceof Contact) {
         return true;
         // not assigned to user
     }
     if (!is_valid_email($task->getAssignedTo()->getEmailAddress())) {
         return true;
     }
     tpl_assign('task_assigned', $task);
     $locale = $task->getAssignedTo()->getLocale();
     Localization::instance()->loadSettings($locale, ROOT . '/language');
     tpl_assign('title', $task->getObjectName());
     tpl_assign('by', $task->getAssignedBy()->getObjectName());
     tpl_assign('asigned', $task->getAssignedTo()->getObjectName());
     $text = "";
     if (config_option("wysiwyg_tasks")) {
         $text = purify_html(nl2br($task->getDescription()));
     } else {
         $text = escape_html_whitespace($task->getDescription());
     }
     tpl_assign('description', $text);
     //descripction
     tpl_assign('description_title', lang("new task assigned to you desc", $task->getObjectName(), $task->getAssignedBy()->getObjectName()));
     //description_title
     //priority
     if ($task->getPriority()) {
         if ($task->getPriority() >= ProjectTasks::PRIORITY_URGENT) {
             $priorityColor = "#FF0000";
             $priority = lang('urgent priority');
         } else {
             if ($task->getPriority() >= ProjectTasks::PRIORITY_HIGH) {
                 $priorityColor = "#FF9088";
                 $priority = lang('high priority');
             } else {
                 if ($task->getPriority() <= ProjectTasks::PRIORITY_LOW) {
                     $priorityColor = "white";
                     $priority = lang('low priority');
                 } else {
                     $priorityColor = "#DAE3F0";
                     $priority = lang('normal priority');
                 }
             }
         }
         tpl_assign('priority', array($priority, $priorityColor));
     }
     //ALL SUBSCRIBERS
     if ($task->getSubscribers()) {
         $subscribers = $task->getSubscribers();
         $string_subscriber = '';
         $total_s = count($subscribers);
         $c = 0;
         foreach ($subscribers as $subscriber) {
             $c++;
             if ($c == $total_s && $total_s > 1) {
                 $string_subscriber .= lang('and');
             } else {
                 if ($c > 1) {
                     $string_subscriber .= ", ";
                 }
             }
             $string_subscriber .= $subscriber->getFirstName();
             if ($subscriber->getSurname() != "") {
                 $string_subscriber .= " " . $subscriber->getSurname();
             }
         }
         tpl_assign('subscribers', $string_subscriber);
         // subscribers
     }
     //context
     $contexts = array();
     $members = $task->getMembers();
     if (count($members) > 0) {
         foreach ($members as $member) {
             $dim = $member->getDimension();
             if ($dim->getIsManageable()) {
                 if ($dim->getCode() == "customer_project" || $dim->getCode() == "customers") {
                     $obj_type = ObjectTypes::findById($member->getObjectTypeId());
                     if ($obj_type instanceof ObjectType) {
                         $contexts[$dim->getCode()][$obj_type->getName()][] = '<span style="' . get_workspace_css_properties($member->getMemberColor()) . '">' . $member->getName() . '</span>';
                     }
                 } else {
                     $contexts[$dim->getCode()][] = '<span style="' . get_workspace_css_properties($member->getMemberColor()) . '">' . $member->getName() . '</span>';
                 }
             }
         }
     }
     tpl_assign('contexts', $contexts);
     //workspaces
     //start date, due date or start
     if ($task->getStartDate() instanceof DateTimeValue) {
         $date = Localization::instance()->formatDescriptiveDate($task->getStartDate(), $task->getAssignedTo()->getTimezone());
         $time = Localization::instance()->formatTime($task->getStartDate(), $task->getAssignedTo()->getTimezone());
         if ($time > 0) {
             $date .= " " . $time;
         }
         tpl_assign('start_date', $date);
         //start_date
     }
     if ($task->getDueDate() instanceof DateTimeValue) {
         $date = Localization::instance()->formatDescriptiveDate($task->getDueDate(), $task->getAssignedTo()->getTimezone());
         $time = Localization::instance()->formatTime($task->getDueDate(), $task->getAssignedTo()->getTimezone());
         if ($time > 0) {
             $date .= " " . $time;
         }
         tpl_assign('due_date', $date);
         //due_date
     }
     $attachments = array();
     try {
         $content = FileRepository::getBackend()->getFileContent(owner_company()->getPictureFile());
         if ($content) {
             $file_path = ROOT . "/tmp/logo_empresa.png";
             $handle = fopen($file_path, 'wb');
             if ($handle) {
                 fwrite($handle, $content);
                 fclose($handle);
                 $attachments['logo'] = array('cid' => gen_id() . substr($task->getAssignedTo()->getEmailAddress(), strpos($task->getAssignedTo()->getEmailAddress(), '@')), 'path' => $file_path, 'type' => 'image/png', 'disposition' => 'inline', 'name' => 'logo_empresa.png');
                 tpl_assign('attachments', $attachments);
                 // attachments
             }
         }
     } catch (FileNotInRepositoryError $e) {
         unset($attachments['logo']);
     }
     tpl_assign('attachments', $attachments);
     // attachments
     self::queueEmail(array(self::prepareEmailAddress($task->getAssignedTo()->getEmailAddress(), $task->getAssignedTo()->getObjectName())), null, null, self::prepareEmailAddress($task->getUpdatedBy()->getEmailAddress(), $task->getUpdatedByDisplayName()), lang('new task assigned to you', $task->getObjectName()), tpl_fetch(get_template_path('task_assigned', 'notifier')), 'text/html', '8bit', $attachments);
     // send
     $locale = logged_user() instanceof Contact ? logged_user()->getLocale() : DEFAULT_LOCALIZATION;
     Localization::instance()->loadSettings($locale, ROOT . '/language');
 }
 private function task_item(ProjectTask $task)
 {
     $isCurrentProject = active_project() instanceof Project && $task->getProjectId() == active_project()->getId();
     return array("id" => $task->getId(), "title" => clean($task->getObjectName()), "parent" => $task->getParentId(), "milestone" => $task->getMilestoneId(), "assignedTo" => $task->getAssignedTo() ? $task->getAssignedToName() : '', "workspaces" => $isCurrentProject ? '' : $task->getWorkspacesNamesCSV(logged_user()->getWorkspacesQuery()), "workspaceids" => $isCurrentProject ? '' : $task->getWorkspacesIdsCSV(logged_user()->getWorkspacesQuery()), "workspacecolors" => $isCurrentProject ? '' : $task->getWorkspaceColorsCSV(logged_user()->getWorkspacesQuery()), "completed" => $task->isCompleted(), "completedBy" => $task->getCompletedByName(), "isLate" => $task->isLate(), "daysLate" => $task->getLateInDays(), "priority" => $task->getPriority(), "duedate" => $task->getDueDate() ? $task->getDueDate()->getTimestamp() : '0', "order" => $task->getOrder());
 }
 /**
  * Task has been assigned to the user
  *
  * @param ProjectTask $task
  * @return boolean
  * @throws NotifierConnectionError
  */
 function taskAssigned(ProjectTask $task)
 {
     if ($task->isCompleted()) {
         return true;
         // task has been already completed...
     }
     // if
     if (!$task->getAssignedTo() instanceof User) {
         return true;
         // not assigned to user
     }
     // if
     if ($task->getCreatedBy() instanceof User) {
         $from = self::prepareEmailAddress($task->getCreatedBy()->getEmail(), $task->getCreatedByDisplayName());
     } else {
         $from = self::prepareEmailAddress(logged_user()->getEmail(), logged_user()->getDisplayName());
     }
     // if
     tpl_assign('task_assigned', $task);
     return self::sendEmail(self::prepareEmailAddress($task->getAssignedTo()->getEmail(), $task->getAssignedTo()->getDisplayName()), $from, $task->getProject()->getName() . ' - ' . lang('task assigned to you') . ' - ' . $task->getObjectName(), tpl_fetch(get_template_path('task_assigned', 'notifier'), 'html', ''));
     // send
 }
 /**
  * Task has been assigned to the user
  *
  * @param ProjectTask $task
  * @return boolean
  * @throws NotifierConnectionError
  */
 function taskAssigned(ProjectTask $task)
 {
     if ($task->isCompleted()) {
         return true;
         // task has been already completed...
     }
     // if
     if (!$task->getAssignedTo() instanceof User) {
         return true;
         // not assigned to user
     }
     // if
     /* Checks for assigned to user, to call SMS API */
     if ($task->getAssignedTo() instanceof User) {
         $user = $task->getAssignedTo();
         $phone_num = Users::getPhoneNumberCustomProperty($user->getObjectId());
         $sms_obj = new SmsController();
         $sms_obj->prepareAssignSms($user->getDisplayName(), $task->getTitle(), get_class($task));
         $sms_obj->sendSms($phone_num);
     } else {
         if ($task->getAssignedTo() instanceof Company) {
             // Skipping implementation until business requirement is clear
         }
     }
     // GET WS COLOR
     $workspace_color = $task->getWorkspaceColorsCSV(logged_user()->getWorkspacesQuery());
     tpl_assign('task_assigned', $task);
     tpl_assign('workspace_color', $workspace_color);
     $locale = $task->getAssignedTo()->getLocale();
     Localization::instance()->loadSettings($locale, ROOT . '/language');
     if ($task->getDueDate() instanceof DateTimeValue) {
         $date = Localization::instance()->formatDescriptiveDate($task->getDueDate(), $task->getAssignedTo()->getTimezone());
         tpl_assign('date', $date);
     }
     self::queueEmail(array(self::prepareEmailAddress($task->getAssignedTo()->getEmail(), $task->getAssignedTo()->getDisplayName())), self::prepareEmailAddress($task->getUpdatedBy()->getEmail(), $task->getUpdatedByDisplayName()), lang('task assigned to you', $task->getTitle(), $task->getProject() instanceof Project ? $task->getProject()->getName() : ''), tpl_fetch(get_template_path('task_assigned', 'notifier')));
     // send
     $locale = logged_user() instanceof User ? logged_user()->getLocale() : DEFAULT_LOCALIZATION;
     Localization::instance()->loadSettings($locale, ROOT . '/language');
 }