<?php Hook::register('core_dimensions'); function core_dimensions_after_edit_profile($user, &$ignored) { $person_member = Members::findOne(array("conditions" => "`object_id` = (" . $user->getId() . ") AND `dimension_id` = (SELECT `id` FROM `" . TABLE_PREFIX . "dimensions` WHERE `code` = 'feng_persons')")); if ($person_member instanceof Member) { $person_member->setName($user->getObjectName()); $person_member->save(); evt_add("reload dimension tree", $person_member->getDimensionId()); } } function core_dimensions_after_add_to_members($object, &$ignored) { if ($object instanceof Report || $object instanceof Timeslot) { return; } // Add to persons and users dimensions $user_ids = array(); if (logged_user() instanceof Contact) { $user_ids[] = logged_user()->getId(); } if ($object instanceof ProjectTask) { /* @var $object ProjectTask */ if ($object->getAssignedById() > 0) { $user_ids[] = $object->getAssignedById(); } if ($object->getAssignedToContactId() > 0) { $user_ids[] = $object->getAssignedToContactId(); } }
<?php Hook::register("fengoffice"); /* List of available hooks: * * - render_page_actions: Called when drawing actions for an object's view. Call add_page_action to add actions. * - $object : ProjectDataObject, * Object that is being viewed. * - &$unused * * - render_page_header: Called when drawing the page header. * - $unused * - &$unused * * - render_page_footer: Called when drawing the page footer. * - $unused * - &$unused * * - render_getting_started: Add additional getting started help. * - $unused * - &$unused * * - render_object_properties: Called when drawing properties for an object's view. Echo the HTML to be drawn. * - $object : ProjectDataObject, * Object that is being viewed. * - &$unused * * - reminder_email: Called when an email reminder is being sent. * - $reminder : ObjectReminder, * - &$count : integer. Add to this number. * Count of reminders sent.
<?php Hook::register("workspaces"); function workspaces_total_task_timeslots_group_by_criterias($args, &$ret) { $wdimension = Dimensions::findByCode('workspaces'); $tdimension = Dimensions::findByCode('tags'); $ret[] = array('val' => 'dim_' . $wdimension->getId(), 'name' => $wdimension->getName()); $ret[] = array('val' => 'dim_' . $tdimension->getId(), 'name' => $tdimension->getName()); } function workspaces_custom_reports_additional_columns($args, &$ret) { $dimensions = Dimensions::findAll(array("conditions" => "code IN ('workspaces','tags')")); foreach ($dimensions as $dimension) { $doptions = $dimension->getOptions(true); if ($doptions && isset($doptions->useLangs) && $doptions->useLangs) { $name = lang($dimension->getCode()); } else { $name = $dimension->getName(); } $ret[] = array('id' => 'dim_' . $dimension->getId(), 'name' => $name, 'type' => DATA_TYPE_STRING); } } function workspaces_include_tasks_template($ignored, &$more_content_templates) { $more_content_templates[] = array('template' => 'groupby', 'controller' => 'task', 'plugin' => 'workspaces'); } function workspaces_override_object_color($object, &$color) { $ws_ot = ObjectTypes::findByName('workspace'); if (!$ws_ot instanceof ObjectType) {
<?php Hook::register('mail'); function mail_allowed_subscribers($object, &$contacts) { if ($object instanceof MailContent) { $person_dim = Dimensions::findByCode('feng_persons'); $person_dim_id = $person_dim instanceof Dimension ? $person_dim->getId() : "0"; $sql = "SELECT member_id FROM ".TABLE_PREFIX."object_members om INNER JOIN ".TABLE_PREFIX."members m ON m.id=om.member_id WHERE om.object_id = ".$object->getId()." AND om.is_optimization=0 AND m.dimension_id NOT IN (".$person_dim_id.")"; $member_ids_res = DB::executeAll($sql); $member_ids = array(); foreach ($member_ids_res as $row) { if (trim($row['member_id']) != "") $member_ids[] = $row['member_id']; } if (!$member_ids || count($member_ids) == 0) { $contacts = array(logged_user()); } } } function mail_delete_member($member){ DB::executeAll("UPDATE ".TABLE_PREFIX."mail_accounts SET member_id=0 WHERE member_id = '".$member->getId()."'"); }