/**
  * Initialize this content type
  *
  * register content type in bp-moderation (needs to be done at every pageload)
  *
  * If this content type needed to place some hooks no matter if it was active or not
  * this would be the right place, instead hooks needed only when it is active
  * are in bpMod_ContentType_BlogPostExample::init()
  *
  * @return bool if successfully initialized
  */
 function bootstrap()
 {
     //check if bpModeration exists, especially the method to register content types that will be used just below
     if (!method_exists('bpModeration', 'register_content_type')) {
         return false;
     }
     // internal slug used by bp-moderation to differentiate between content types (alfanumeric and underscore only)
     $slug = 'blog_post_example';
     // this is how content of this type get called in the backend
     $label = __('Blog post example', 'your-text-domain');
     //callbacks are used when some information/operation is needed, see documentation of each one
     $callbacks = array('info' => array(__CLASS__, 'info'), 'init' => array(__CLASS__, 'init'), 'edit' => array(__CLASS__, 'edit'), 'delete' => array(__CLASS__, 'delete'));
     //bp-moderation can automatically put the flag button in activities generated from this content type, but needs to know what is their activity type
     $activity_types = array('new_blog_post');
     //register this content type in bp-moderation
     return bpModeration::register_content_type($slug, $label, $callbacks, $activity_types);
 }