public function __construct(Dossier $dossier)
 {
     $this->setClass('dossier');
     $this->addComponent(new Title($dossier->getTitle(), 2));
     $author = $dossier->getAuthor();
     if ($author instanceof TeamMember) {
         $author = $author->getPseudo();
     }
     $timestamp = strftime("%d/%m/%Y", $dossier->getTimestamp());
     $subtitle = $timestamp . " par " . $author;
     $this->addComponent(new Title($subtitle, 4));
     $content = new SimpleBlockComponent();
     $content->setClass('content');
     $content->setContent(Format::convertTextToHtml($dossier->getContent()));
     $content->setContentPinned(true);
     $this->addComponent($content);
     $id = $dossier->getCommentID();
     $comment = new SimpleTextComponent();
     $comment->setClass('comment');
     $comment->setContent('~ <a href="http://commentaires.zerofansub.net/t' . $id . '.htm" target="_blank">Commentaires</a> - <a href="http://commentaires.zerofansub.net/posting.php?mode=reply&t=' . $id . '" target="_blank">Ajouter un commentaire</a> ~');
     $this->addComponent($comment);
 }
 private function fillWithDownloadData($releaseContent, $release)
 {
     $fileList = new SimpleListComponent();
     $fileList->setClass("fileList");
     $ddlLinks = new GroupedLinks(new Image("images/icones/ddl.png"));
     $ddlLinks->setClass("ddlLinks");
     $megauploadLinks = new GroupedLinks(new Image("images/icones/megaup.jpg"));
     $megauploadLinks->setClass("megauploadLinks");
     $freeLinks = new GroupedLinks(new Image("images/icones/free.jpg"));
     $freeLinks->setClass("freeLinks");
     $rapidShareLinks = new GroupedLinks(new Image("images/icones/rapidshare.jpg"));
     $rapidShareLinks->setClass("rapidShareLinks");
     $mediaFireLinks = new GroupedLinks(new Image("images/icones/mediafire.jpg", "Mediafire"));
     $mediaFireLinks->setClass("mediaFireLinks");
     $torrentLinks = new GroupedLinks(new Link($release->getTorrentUrl(), new Image("images/icones/torrent.png")));
     $torrentLinks->setClass("torrentLink");
     $fileDescriptors = $release->getFileDescriptors();
     $index = 1;
     foreach ($fileDescriptors as $descriptor) {
         $description = new SimpleTextComponent();
         $path = $descriptor->getFilePath();
         $name = basename($path);
         if (empty($name)) {
             $name = Debug::createWarningTag("aucun fichier renseigné");
         }
         $description->addLine($name);
         $url = "ddl/" . $path;
         $size = "Taille : ";
         try {
             $size .= Format::formatSize(filesize($url));
         } catch (Exception $e) {
             $size .= Debug::createWarningTag("inconnue");
         }
         $size .= " ";
         $description->addComponent($size);
         if ($descriptor->getCRC() !== null) {
             $description->addComponent("CRC : " . $descriptor->getCRC() . " ");
         }
         $id = null;
         if ($release->getProject()->isDoujin()) {
             $pages = "";
             if ($descriptor->getPageNumber() != null) {
                 $n = $descriptor->getPageNumber();
                 $pages = $n . " page" . ($n > 1 ? "s" : null) . " ";
             }
             $description->addComponent($pages);
         } else {
             $array = array();
             if ($descriptor->getVideoCodec() !== null) {
                 $array[] = $descriptor->getVideoCodec()->getName();
                 if ($id == null) {
                     $id = $descriptor->getVideoCodec()->getName();
                 }
             }
             if ($descriptor->getSoundCodec() !== null) {
                 $array[] = $descriptor->getSoundCodec()->getName();
                 if ($id == null) {
                     $id = $descriptor->getSoundCodec()->getName();
                 }
             }
             if ($descriptor->getContainerCodec() !== null) {
                 $array[] = $descriptor->getContainerCodec()->getName();
                 if ($id == null) {
                     $id = $descriptor->getContainerCodec()->getName();
                 }
             }
             $codecs = "";
             if (!empty($array)) {
                 $codecs = "Codecs : " . implode(" ", $array) . " ";
             }
             $description->addComponent($codecs);
         }
         if ($descriptor->getReleaseSource() !== null) {
             $description->addComponent("Source : " . $descriptor->getReleaseSource() . " ");
         }
         if ($descriptor->getID() != null) {
             $id = $descriptor->getID();
         } else {
             if ($id == null) {
                 $id = $index;
             }
         }
         $index++;
         if ($descriptor->getComment() !== null) {
             $description->addLine();
             $comment = new SimpleBlockComponent();
             $comment->setClass("comment");
             $comment->setContent($descriptor->getComment());
             $description->addComponent($comment);
         }
         $description->addLine();
         $description->addLine();
         $fileList->addcomponent($description);
         $linkName = count($fileDescriptors) == 1 ? "Télécharger" : $id;
         $ddlLinks->addLink(new Link($url, $linkName));
         if ($descriptor->getMegauploadUrl() !== null) {
             $megauploadLinks->addLink(new Link($descriptor->getMegauploadUrl(), $linkName));
         }
         if ($descriptor->getFreeUrl() !== null) {
             $freeLinks->addLink(new Link($descriptor->getFreeUrl(), $linkName));
         }
         if ($descriptor->getRapidShareUrl() !== null) {
             $rapidShareLinks->addLink(new Link($descriptor->getRapidShareUrl(), $linkName));
         }
         if ($descriptor->getMediaFireUrl() !== null) {
             $mediaFireLinks->addLink(new Link($descriptor->getMediaFireUrl(), $linkName));
         }
         if ($descriptor->getTorrentUrl() !== null) {
             $torrentLinks->addLink(new Link($descriptor->getTorrentUrl(), $linkName));
         }
     }
     $releaseContent->addComponent(new title("Fichiers"));
     $releaseContent->addComponent($fileList);
     $releaseContent->addComponent(new title("Téléchargements"));
     $list = new SimpleListComponent();
     $list->setClass("linkList");
     $list->addcomponent($ddlLinks);
     if (!$megauploadLinks->isEmpty()) {
         // MU links removed because MU down
         //$list->addComponent($megauploadLinks);
     }
     if (!$freeLinks->isEmpty()) {
         $list->addComponent($freeLinks);
     }
     if (!$rapidShareLinks->isEmpty()) {
         $list->addComponent($rapidShareLinks);
     }
     if (!$mediaFireLinks->isEmpty()) {
         $list->addComponent($mediaFireLinks);
     }
     $list->addComponent($torrentLinks);
     $list->addComponent(new XdccLink());
     $streamingsLinks = new GroupedLinks(new Image("images/icones/streaming.png"));
     $streamingsLinks->setClass("streamingsLinks");
     foreach ($release->getStreamings() as $link) {
         $streamingsLinks->addLink($link);
     }
     if (!$streamingsLinks->isEmpty()) {
         $list->addComponent($streamingsLinks);
     }
     $bonusLinks = new GroupedLinks(new Image("images/icones/bonus.png"));
     $bonusLinks->setClass("bonusLinks");
     foreach ($release->getBonuses() as $link) {
         $bonusLinks->addLink($link);
     }
     if (!$bonusLinks->isEmpty()) {
         $list->addComponent($bonusLinks);
     }
     $releaseContent->addComponent($list);
 }
Exemplo n.º 3
0
<?php

$page = PageContent::getInstance();
$page->addComponent(new Title("XDCC", 1));
$message = new SimpleTextComponent();
$message->setClass("xdcc");
$page->addComponent($message);
$message->addComponent("Pour télécharger un fichier, aller sur le chan IRC (");
$ircLink = Link::newWindowLink("irc://irc.fansub-irc.eu/zero", "Lien du Channel");
$message->addComponent($ircLink);
$message->addLine(") et tapez la commande :");
$message->addLine();
$message->addLine("<code>/msg [Zero]Rin xdcc send <i>NUMERO</i></code>");
$message->addLine();
$message->addLine("ou <code><i>NUMERO</i></code> doit être remplacé par le numéro du paquet (voir liste ci-dessous).");
$message->addLine();
$message->addLine();
$message->addLine("<iframe src='xdcc_list' width='100%' height='600' frameborder='0'><p>Your browser does not support iframes.</p></iframe>");
 public function addComponent($member)
 {
     if (!$member instanceof TeamMember) {
         throw new Exception('The given element is not a member.');
     }
     $list = new SimpleListComponent();
     $list->setClass("member");
     parent::addComponent($list);
     $image = $member->getImage();
     if ($image->getUrl() != null) {
         $list->addComponent($image);
     }
     $pseudo = $member->getPseudo();
     $list->addComponent("<b>" . $pseudo . "</b>");
     $roles = $member->getRoles();
     $description = "<b>Rôle(s) :</b> ";
     if (!empty($roles)) {
         $isFirst = true;
         foreach ($roles as $role) {
             if ($isFirst) {
                 $description .= ucfirst($role->getName());
                 $isFirst = false;
             } else {
                 $description .= ', ' . $role->getName();
             }
         }
     } else {
         $description .= "Aucun";
     }
     $list->addComponent($description);
     $firstName = $member->getFirstName();
     if ($firstName !== null) {
         $list->addComponent("<b>Prénom :</b> " . $firstName);
     }
     $age = $member->getAge();
     if ($age !== null) {
         if (is_numeric($age)) {
             if ($age > 1000) {
                 $age = time() - $age;
                 $age /= 60 * 60 * 24 * 365.25;
                 $age = floor($age);
             }
             $age = $age . " ans";
         }
         $list->addComponent("<b>Âge :</b> " . $age);
     }
     $location = $member->getLocation();
     if ($location !== null) {
         $list->addComponent("<b>Lieu :</b> " . $location);
     }
     $mail = $member->getMail();
     if ($mail !== null) {
         $wrap = new SimpleTextComponent("<b>Contact :</b> ");
         $wrap->addComponent(new MailLink($mail));
         $list->addComponent($wrap);
     }
     $website = $member->getWebsite();
     if ($website !== null) {
         $wrap = new SimpleTextComponent("<b>Site Web :</b> ");
         $wrap->addComponent($website);
         $list->addComponent($wrap);
     }
 }
    public function __construct(News $news)
    {
        $this->setClass("news");
        $title = new Title($news->getTitle(), 2);
        $title->setClass("title");
        $newsUrl = $news->getUrl();
        $this->addComponent(new Link($newsUrl, $title));
        $subtitle = new Title(null, 4);
        $subtitle->setClass("subtitle");
        $time = "Préparée";
        $timestamp = $news->getPublicationTime();
        if ($timestamp !== null) {
            $time = strftime("%d/%m/%Y", $timestamp);
        }
        $subtitle->addComponent($time);
        if (count($news->getAuthors()) > 0) {
            $s = "";
            foreach ($news->getAuthors() as $author) {
                $s .= ", " . $author;
            }
            $subtitle->addComponent(" par " . substr($s, 2));
        }
        $this->addComponent($subtitle);
        $message = new SimpleTextComponent(Format::convertTextToHtml($news->getMessage()));
        $message->setClass("message");
        $message->setContentPinned(true);
        $this->addComponent($message);
        if ($news->isReleasing()) {
            $releases = array();
            foreach ($news->getReleasing() as $release) {
                if ($release instanceof Project) {
                    $pid = $release->getID();
                    if (!array_key_exists($pid, $releases)) {
                        $releases[$pid] = array();
                    } else {
                        // project already listed
                    }
                } else {
                    if ($release instanceof Release) {
                        $pid = $release->getProject()->getID();
                        if (!array_key_exists($pid, $releases)) {
                            $releases[$pid] = array();
                        } else {
                            // array already exists, continue
                        }
                        array_push($releases[$pid], $release->getID());
                    } else {
                        throw new Exception($release . " is not a release nor a project.");
                    }
                }
            }
            $content = '';
            foreach ($releases as $pid => $ids) {
                if (empty($ids)) {
                    $content .= '[release=' . $pid . '|*][/release]';
                } else {
                    $content .= '[release=' . $pid . '|' . implode(",", $ids) . '][/release]';
                }
                $content .= "\n";
            }
            $releasing = new SimpleTextComponent(Format::convertTextToHtml($content));
            $releasing->setLegend('Sorties');
            $releasing->setClass("releases");
            $this->addComponent($releasing);
        }
        $commentId = $news->getCommentID();
        if ($commentId !== null) {
            $commentAccess = new SimpleTextComponent();
            $commentAccess->setClass("comment");
            $commentAccess->addComponent("~ ");
            $commentAccess->addComponent(Link::newWindowLink(new Url("http://commentaires.zerofansub.net/t" . $commentId . ".htm"), "Commentaires"));
            $commentAccess->addComponent(" - ");
            $commentAccess->addComponent(Link::newWindowLink(new Url("http://commentaires.zerofansub.net/posting.php?mode=reply&t=" . $commentId), "Ajouter un commentaire"));
            $commentAccess->addComponent(" ~");
            $this->addComponent($commentAccess);
        }
        $twitterTitle = $news->getTwitterTitle();
        if ($twitterTitle == null) {
            $twitterTitle = "[Zero] " . $news->getTitle();
        }
        $twitterPart = new SimpleTextComponent();
        $twitterPart->setClass("twitter");
        $twitterButton = '<a href="https://twitter.com/share" class="twitter-share-button" data-url="' . $newsUrl->toFullString() . '" data-text="' . $twitterTitle . '" data-via="zero_fansub" data-lang="fr">Tweeter</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>';
        $twitterPart->addComponent($twitterButton);
        $this->addComponent($twitterPart);
        $googlePart = new SimpleTextComponent();
        $googlePart->setClass("google");
        $googleButton = '<div class="g-plusone" data-href="' . $newsUrl->toFullString() . '" data-size="medium"></div>';
        $googlePart->addComponent($googleButton);
        $this->addComponent($googlePart);
        $this->setMetaData('itemscope');
        $this->setMetaData('itemtype', 'http://schema.org/Product');
        $title->setMetaData('itemprop', 'name');
        $message->setMetaData('itemprop', 'description');
        $c = $message->getComponent(0);
        $c = preg_replace('#<img #', '<img itemprop="image"', $c);
        $message->setComponent(0, $c);
        $facebookPart = new SimpleTextComponent();
        $facebookPart->setClass("facebook");
        $facebookButton = '<div class="fb-like" data-href="' . $newsUrl->toFullString() . '" data-send="false" data-layout="button_count" data-width="90" data-show-faces="true"></div>';
        $facebookPart->addComponent($facebookButton);
        $this->addComponent($facebookPart);
    }
 public function __construct(Project $project, $forceDisplay = false)
 {
     $image = new Image('images/series/' . $project->getID() . '.jpg');
     $image->setClass('projectPicture');
     $this->addComponent($image);
     $this->addComponent(new Title("Informations générales", 2));
     if ($project->hasExternalSource()) {
         $subtitle = new Title("Source : ", 4);
         $subtitle->addComponent($project->getExternalSource());
         $this->addComponent($subtitle);
     }
     $array = array(array("Titre Original", $project->getOriginalName()), array("Site officiel", $project->getOfficialWebsite()), array("Année de production", $project->getAiringYear()), array("Studio", $project->getStudio()), array("Auteur", $project->getAuthor()), array("Genre", $project->getGenre()), array("Synopsis", $project->getSynopsis()), array("Coproduction", $project->getCoproduction()), array("Vosta", $project->getVosta()));
     $infos = new SimpleTextComponent();
     $infos->setClass('projectInfos');
     foreach ($array as $data) {
         if ($data[1] !== null) {
             $text = new SimpleTextComponent("<b>" . $data[0] . "</b> ");
             $text->addComponent($data[1]);
             $infos->addLine($text);
         }
     }
     $this->addComponent($infos);
     if ($project->getComment() !== null) {
         $this->addComponent("<p></p>");
         $this->addComponent(new Title("Commentaire", 2));
         $this->addComponent(Format::convertTextToHtml($project->getComment()));
     }
     $this->addComponent("<p></p>");
     $link = Link::newWindowLink("http://zero.xooit.fr/t471-Liens-morts.htm", "Signaler un lien mort");
     $link->setClass('deadLinks');
     $this->addComponent($link);
     $this->addComponent("<p></p>");
     $this->addComponent(new Title($project->isDoujin() ? "Chapitres" : "Épisodes", 2));
     $releases = Release::getAllReleasesForProject($project->getID());
     usort($releases, array('Release', 'idSorter'));
     $list = new SimpleListComponent();
     $list->setClass("releaseList");
     foreach ($releases as $release) {
         $list->addComponent(new ReleaseComponent($release, $forceDisplay));
     }
     $this->addComponent($list);
     $linkedProjects = Project::getProjectsLinkedTo($project);
     if (!empty($linkedProjects)) {
         $this->addComponent("<p></p>");
         $this->addComponent(new Title("Voir aussi", 2));
         $list = new ProjectList();
         foreach ($linkedProjects as $link) {
             $list->addProject($link);
         }
         $list->sortByNames();
         $list = new ProjectListComponent($list);
         $list->useImage(true);
         $this->addComponent($list);
     }
     foreach ($project->getBonuses() as $bonus) {
         $this->addComponent("<p></p>");
         $this->addComponent(new Title("Bonus : " . $bonus->getTitle(), 2));
         $this->addComponent($bonus->getContent());
     }
     $groups = ProjectGroup::getGroupsForProject($project);
     foreach ($groups as $group) {
         foreach ($group->getBonuses() as $bonus) {
             $this->addComponent("<p></p>");
             $this->addComponent(new Title("Bonus : " . $bonus->getTitle(), 2));
             $this->addComponent($bonus->getContent());
         }
     }
     $this->addComponent("<p></p>");
     $url = $project->getDiscussionUrl();
     if ($url == null) {
         $url = new Url("http://zero.xooit.fr/posting.php?mode=reply&t=120");
     }
     $link = Link::newWindowLink($url, new Image("images/interface/avis.png", "Donne ton avis sur le forum !"));
     $link->setClass('discussionLink');
     $this->addComponent($link);
 }
Exemplo n.º 7
0
<?php

$page = PageContent::getInstance();
$page->addComponent(new Title("Signaler un bug", 1));
$admin = TeamMember::getMemberByPseudo("sazaju HITOKAGE");
$serverInfo = function ($id) {
    return isset($_SERVER[$id]) ? $_SERVER[$id] : 'inconnue';
};
$text = "\n\n\nLe site étant en plein raffinage, il est possible que vous tombiez sur des bogues (ou bug) au cours de votre navigation. Si tel est le cas, vous retomberez généralement sur cette page. Par conséquent, si vous vous trouvez ici sans trop savoir pourquoi, c'est probablement parce que vous venez de tomber sur un de ces bogues. Pour nous le signaler, plusieurs moyens sont à votre disposition :\n\n[url=https://github.com/Sazaju/Zero-Fansub-website/issues]Enregistrer un bug sur GitHub[/url]\n\n[mail=" . $admin->getMail() . "]Envoyer un mail à l'administrateur Web[/mail]\n\nLa première solution est de loin la meilleure, car en plus d'avertir les administrateurs, le problème est enregistré et peut donc être suivi efficacement. Néanmoins, si vous ne savez pas comment utiliser ce système, la seconde option vous permet d'envoyer directement un mail aux admins. De préférence utilisez la première solution, n'utilisez la seconde que si vraiment vous avez des soucis avec la première.\n\nSoyez sûrs de donner le maximum de détails, en particulier l'adresse actuelle de la page, la page ou vous étiez juste avant le bogue, votre navigateur et sa version (ou au moins dire si vous l'avez mis à jour récemment), et les plugins ou programmes que vous auriez installé qui vous semble être une cause potentielle du problème (gestionnaire de scripts, antivirus, ...).\n\nEn voici quelques unes, vous pouvez les recopier et les compléter :\n[left][list]\n[item]adresse actuelle : [urlk=current|full][/urlk][/item]\n[item]adresse précédente : [urlk=referer|full][/urlk][/item]\n[item]infos navigateur : " . $serverInfo('HTTP_USER_AGENT') . "[/item]\n[/list][/left]";
$content = new SimpleTextComponent();
$content->setClass("bug");
$content->setContent(Format::convertTextToHtml($text));
$page->addComponent($content);
?>