/**
  * @return array the array of link types and label
  */
 public static function getLinkTypes()
 {
     if (!isset(self::$link_types)) {
         require_once JPATH_ADMINISTRATOR . '/components/com_zoo/config.php';
         $applications = self::getZooApplications();
         $list = array();
         foreach ($applications as $application) {
             $types = $application->getTypes();
             foreach ($types as $type) {
                 $elements = $type->getElements();
                 foreach ($elements as $element) {
                     $sprocket_type = RokSprocket_Provider_Zoo_FieldProcessorFactory::getSprocketType($element->getElementType());
                     if ($sprocket_type == 'link') {
                         $key = 'link_field_' . $element->identifier;
                         $list[$key] = array();
                         $list[$key]['group'] = $application->id . '_' . $type->id;
                         $list[$key]['display'] = $element->config->name;
                     }
                 }
             }
         }
         self::sortTypes($list);
         self::$link_types = $list;
     }
     return self::$link_types;
 }