static function generate_summary($activity, $target = null) { if (!$target && $activity->target) { try { $target = midcom::get('dbfactory')->get_object_by_guid($activity->target); $reflector = new midcom_helper_reflector($target); $class_label = $reflector->get_class_label(); $target_label = "{$class_label} " . $reflector->get_object_label($target); } catch (midcom_error $e) { $target_label = $activity->target; } } switch ($activity->verb) { case 'http://activitystrea.ms/schema/1.0/post': $verb = 'saved'; break; case 'http://community-equity.org/schema/1.0/delete': $verb = 'deleted'; break; case 'http://community-equity.org/schema/1.0/clone': $verb = 'cloned'; break; default: // TODO: Check if the originating component can provide this return ''; } try { $actor = new midcom_core_user($activity->actor); return sprintf(midcom::get('i18n')->get_string('%s ' . $verb . ' %s', 'midcom.helper.activitystream'), $actor->name, $target_label); } catch (midcom_error $e) { return sprintf(midcom::get('i18n')->get_string('%s was ' . $verb, 'midcom.helper.activitystream'), $target_label); } }
/** * Get the MgdSchema root classes * * @return array containing class name and translated name */ public static function get_root_classes() { static $root_classes = array(); // Return cached results if (!empty($root_classes)) { return $root_classes; } // Initialize the returnable array $root_classes = array(); // Get the classes $classes = midcom_helper_reflector_tree::get_root_classes(); // Get the translated name foreach ($classes as $class) { $ref = new midcom_helper_reflector($class); $root_classes[$class] = $ref->get_class_label(); } asort($root_classes); return $root_classes; }
/** * @dataProvider providerGet_class_label */ public function testGet_class_label($classname, $label) { $reflector = new midcom_helper_reflector($classname); $this->assertEquals($label, $reflector->get_class_label()); }
/** * Binds the a toolbar to a DBA object. This will append a number of globally available * toolbar options. For example, expect Metadata- and Version Control-related options * to be added. * * This call is available through convenience functions throughout the framework: The * toolbar main class has a mapping for it (midcom_helper_toolbar::bind_to($object)) * and object toolbars created by this service will automatically be bound to the * specified object. * * Repeated bind calls are intercepted, you can only bind a toolbar to a single object. * * @see midcom_helper_toolbar::bind_to() * @see create_object_toolbar() * @param &$toolbar */ function bind_toolbar_to_object(&$toolbar, &$object) { if (array_key_exists('midcom_services_toolbars_bound_to_object', $toolbar->customdata)) { // We already processed this toolbar, skipping further adds. return; } else { $toolbar->customdata['midcom_services_toolbars_bound_to_object'] = true; } $prefix = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX); if (!$prefix) { debug_add("Toolbar for object {$object->guid} was called before topic prefix was available, skipping global items.", MIDCOM_LOG_WARN); return; } $reflector = new midcom_helper_reflector($object); $this->_view_toolbar_label = $reflector->get_class_label(); if ($GLOBALS['midcom_config']['metadata_approval'] && $object->can_do('midcom:approve')) { $metadata = midcom_helper_metadata::retrieve($object); if ($metadata && $metadata->is_approved()) { $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "{$prefix}__ais/folder/unapprove/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('unapprove', 'midcom'), MIDCOM_TOOLBAR_HELPTEXT => midcom::get('i18n')->get_string('approved', 'midcom'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/page-approved.png', MIDCOM_TOOLBAR_POST => true, MIDCOM_TOOLBAR_POST_HIDDENARGS => array('guid' => $object->guid, 'return_to' => $_SERVER['REQUEST_URI']), MIDCOM_TOOLBAR_ACCESSKEY => 'u')); } else { $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "{$prefix}__ais/folder/approve/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('approve', 'midcom'), MIDCOM_TOOLBAR_HELPTEXT => midcom::get('i18n')->get_string('unapproved', 'midcom'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/page-notapproved.png', MIDCOM_TOOLBAR_POST => true, MIDCOM_TOOLBAR_POST_HIDDENARGS => array('guid' => $object->guid, 'return_to' => $_SERVER['REQUEST_URI']), MIDCOM_TOOLBAR_ACCESSKEY => 'a')); } } if ($object->can_do('midgard:update')) { $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "{$prefix}__ais/folder/metadata/{$object->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('edit metadata', 'midcom.admin.folder'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/metadata.png', MIDCOM_TOOLBAR_ACCESSKEY => 'm')); $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "{$prefix}__ais/folder/move/{$object->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('move', 'midcom.admin.folder'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/save-as.png', MIDCOM_TOOLBAR_ENABLED => is_a($object, 'midcom_db_article'))); $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => midcom_connection::get_url('self') . "__mfa/asgard/object/open/{$object->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('manage object', 'midgard.admin.asgard'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/properties.png', MIDCOM_TOOLBAR_ENABLED => midcom::get('auth')->can_user_do('midgard.admin.asgard:access', null, 'midgard_admin_asgard_plugin', 'midgard.admin.asgard') && midcom::get('auth')->can_user_do('midgard.admin.asgard:manage_objects', null, 'midgard_admin_asgard_plugin'))); } if ($GLOBALS['midcom_config']['midcom_services_rcs_enable'] && $object->can_do('midgard:update') && $object->_use_rcs) { $toolbar->add_item(array(MIDCOM_TOOLBAR_URL => "{$prefix}__ais/rcs/{$object->guid}/", MIDCOM_TOOLBAR_LABEL => midcom::get('i18n')->get_string('show history', 'no.bergfald.rcs'), MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/history.png', MIDCOM_TOOLBAR_ACCESSKEY => 'v')); } }