public function __construct(Release $release, $forceDisplay = false)
 {
     $this->addComponent(new Anchor($release->getID()));
     $link = new Link(null, $release->getCompleteName());
     $title = new Title($link);
     $title->setClass("title");
     $this->addComponent($title);
     if ($release->isReleased() || $forceDisplay) {
         $this->setClass("released");
         $link->setUrl(new Url());
         $link->setOnClick("show('" . $release->getID() . "');return(false)");
         $releaseContent = new SimpleBlockComponent();
         $releaseContent->setID($release->getID());
         $releaseContent->setClass("content");
         $this->addComponent($releaseContent);
         $previewImage = null;
         if ($release->getPreviewUrl() !== null) {
             try {
                 $pUrl = $release->getPreviewUrl()->toString();
                 $previewImage = new AutoFloatImage($pUrl);
                 $previewImage->setClass("previewImage");
                 $description = getimagesize($pUrl);
                 $width = $description[0];
                 if ($width < 150) {
                     $previewImage->makeRightFloating();
                 }
             } catch (ErrorException $ex) {
                 $previewImage = Debug::createWarningTag("Preview introuvable");
             }
         }
         $releaseContent->addComponent($previewImage);
         $localizedName = new SimpleBlockComponent();
         $localizedName->setClass("localizedName");
         if ($release->getLocalizedTitle() !== null) {
             $localizedName->addComponent(new Title("Nom de l'épisode FR"));
             $localizedName->addComponent($release->getLocalizedTitle());
         }
         $releaseContent->addComponent($localizedName);
         $originalName = new SimpleBlockComponent();
         $originalName->setClass("originalName");
         if ($release->getOriginalTitle() !== null) {
             $originalName->addComponent(new Title("Nom original"));
             $originalName->addComponent($release->getOriginalTitle());
         }
         $releaseContent->addComponent($originalName);
         $synopsis = new SimpleBlockComponent();
         $synopsis->setClass("synopsis");
         if ($release->getSynopsis() !== null) {
             $synopsis->addComponent(new Title("Synopsis"));
             $synopsis->addComponent(Format::convertTextToHtml($release->getSynopsis()));
         }
         $releaseContent->addComponent($synopsis);
         $comment = new SimpleBlockComponent();
         $comment->setClass("comment");
         if ($release->getComment() !== null) {
             $comment->addComponent($release->getComment());
         }
         $releaseContent->addComponent($comment);
         $staff = new SimpleBlockComponent();
         $staff->setClass("staff");
         $members = $release->getStaffMembers();
         if (!empty($members)) {
             $staff->addComponent(new Title("Staff"));
             $strings = array();
             foreach ($members as $member) {
                 $string = $member->getPseudo();
                 $roles = $release->getAssignmentFor($member->getID())->getRoles();
                 if (!empty($roles)) {
                     $strings2 = array();
                     foreach ($roles as $role) {
                         $strings2[] = $role->getName();
                     }
                     $string .= " : " . Format::arrayToString($strings2);
                 }
                 $strings[] = $string;
             }
             $staff->addComponent(format::arrayToString($strings, " | "));
         }
         $releaseContent->addComponent($staff);
         if ($release->isLicensed()) {
             $this->fillWithLicenseData($releaseContent, $release);
         } else {
             $this->fillWithDownloadData($releaseContent, $release);
         }
         $releaseContent->addComponent(new Pin());
         $url = new Url();
         $vars = $url->getQueryVars();
         if (!isset($vars['show']) || !(strcmp($vars['show'], "*") == 0 || preg_match("#(,|^)" . preg_quote($release->getID()) . "(,|\$)#", $vars['show']) > 0)) {
             $releaseContent->addComponent("<script type='text/javascript'>show('" . $release->getID() . "');</script>");
         }
     } else {
         $this->setClass("notReleased");
         $link->setUrl(new Url());
         $link->addComponent(" - Non disponible");
     }
 }