Example #1
0
 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);
     }
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * @dataProvider providerGet_class_label
  */
 public function testGet_class_label($classname, $label)
 {
     $reflector = new midcom_helper_reflector($classname);
     $this->assertEquals($label, $reflector->get_class_label());
 }
Example #4
0
 /**
  * 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'));
     }
 }