/** * Return tag names as array for specific object * * @access public * @param ProjectDataObject $object * @param string $manager_class * @return array */ function getTagNamesByObject(ProjectDataObject $object, $manager_class) { $rows = DB::executeAll('SELECT `tag` FROM ' . self::instance()->getTableName(true) . ' WHERE `rel_object_id` = ? AND `rel_object_manager` = ? ORDER BY `tag`', $object->getId(), $manager_class); if (!is_array($rows)) { return null; } $tags = array(); foreach ($rows as $row) { $tags[] = $row['tag']; } return $tags; }
/** * Clear subscriptions by object * * @param ProjectDataObject $message * @return boolean */ static function clearByObject(ProjectDataObject $object) { return ObjectSubscriptions::delete('`object_id` = ' . DB::escape($object->getId()) . ' AND `object_manager` = ' . DB::escape(get_class($object->manager()))); }
static function clearByObjectAndUser(ProjectDataObject $object, User $user, $include_subscribers = false) { if ($include_subscribers) { $usercond = '(`user_id` = ' . DB::escape($user->getId()) . ' OR `user_id` = 0)'; } else { $usercond = '`user_id` = ' . DB::escape($user->getId()); } return ObjectReminders::delete('`object_id` = ' . DB::escape($object->getId()) . ' AND `object_manager` = ' . DB::escape(get_class($object->manager())) . " AND {$usercond}"); }
function giveAccessToObject(ProjectDataObject $object) { $ou = new ObjectUserPermission(); $ou->setObjectId($object->getId()); $ou->setObjectManager($object->getObjectManagerName()); $ou->setUserId($this->getId()); $ou->setReadPermission(true); $ou->setWritePermission(false); $ou->save(); }
/** * Creates a button that shows an object picker to link the object given by $object with the one selected in * the it. * * @param ProjectDataObject $object */ function render_link_to_object($object, $text = null, $reload = false) { require_javascript("og/ObjectPicker.js"); $id = $object->getId(); $manager = get_class($object->manager()); if ($text == null) { $text = lang('link object'); } $reload_param = $reload ? '&reload=1' : ''; $result = ''; $result .= '<a href="#" class="link-ico ico-add" onclick="og.ObjectPicker.show(function (data) {' . 'if (data) {' . 'var objects = \'\';' . 'for (var i=0; i < data.length; i++) {' . 'if (objects != \'\') objects += \',\';' . 'objects += data[i].data.manager + \':\' + data[i].data.object_id;' . '}' . ' og.openLink(\'' . get_url("object", "link_object") . '&object_id=' . $id . '&manager=' . $manager . $reload_param . '&objects=\' + objects' . ($reload ? ',{callback: function(){og.redrawLinkedObjects(' . $object->getId() . ', \'' . get_class($object->manager()) . '\')}}' : '') . ');' . '}' . '})" id="object_linker">'; $result .= $text; $result .= '</a>'; return $result; }