Beispiel #1
0
    public function toString()
    {
        $radix = $this->getBuilderParamManager()->getParam('radix');
        $board = $this->getParamManager()->getParam('board');
        $controller_method = $this->getBuilderParamManager()->getParam('controller_method', 'thread');
        $thread_id = $this->getBuilderParamManager()->getParam('thread_id', 0);
        $form = $this->getForm();
        if ($thread_id > 0) {
            echo $form->open(['enctype' => 'multipart/form-data', 'onsubmit' => 'fuel_set_csrf_token(this);', 'action' => $radix->shortname . '/submit', 'id' => 'postform']);
            echo $form->hidden('csrf_token', $this->getSecurity()->getCsrfToken());
            echo $form->hidden('id', 'postform');
            echo isset($backend_vars['last_limit']) ? $form->hidden('reply_last_limit', $backend_vars['last_limit']) : '';
        }
        ?>

        <div class="content">
        <?php 
        foreach ($board as $key => $post) {
            if (isset($post['op'])) {
                $op_bulk = $post['op'];
                $op = new Comment($this->getContext(), $op_bulk);
                $op->setControllerMethod($controller_method);
                if ($op_bulk->media !== null) {
                    $op_media = new Media($this->getContext(), $op_bulk);
                } else {
                    $op_media = null;
                }
                ?>
            <div id="<?php 
                echo $op->num;
                ?>
">
                <?php 
                if ($op_media !== null) {
                    ?>
                    <?php 
                    if ($op_media->getMediaStatus($this->getRequest()) !== 'banned') {
                        ?>
                    <span><?php 
                        echo _i('File:') . ' ' . ByteSize::formatBinary($op_media->media_size, 0) . ', ' . $op_media->media_w . 'x' . $op_media->media_h . ', ' . $op_media->getMediaFilenameProcessed();
                        ?>
 <?php 
                        echo '<!-- ' . substr($op_media->media_hash, 0, -2) . '-->';
                        ?>
</span>
                        <?php 
                        if (!$op->radix->hide_thumbnails || $this->getAuth()->hasAccess('maccess.mod')) {
                            ?>
                            [<a href="<?php 
                            echo $this->getUri()->create($op->radix->shortname . '/search/image/' . $op_media->getSafeMediaHash());
                            ?>
"><?php 
                            echo _i('View Same');
                            ?>
</a>]
                            [<a href="http://google.com/searchbyimage?image_url=<?php 
                            echo $op_media->getThumbLink($this->getRequest());
                            ?>
">Google</a>]
                            [<a href="http://iqdb.org/?url=<?php 
                            echo $op_media->getThumbLink($this->getRequest());
                            ?>
">iqdb</a>]
                            [<a href="http://saucenao.com/search.php?url=<?php 
                            echo $op_media->getThumbLink($this->getRequest());
                            ?>
">SauceNAO</a>]
                        <?php 
                        }
                        ?>
                    <br />
                    <?php 
                    }
                    ?>
                    <?php 
                    if ($op_media->getMediaStatus($this->getRequest()) === 'banned') {
                        ?>
                        <img src="<?php 
                        echo $this->getAssetManager()->getAssetLink('images/banned-image.png');
                        ?>
" width="150" height="150" class="thumb"/>
                    <?php 
                    } elseif ($op_media->getMediaStatus($this->getRequest()) !== 'normal') {
                        ?>
                        <a href="<?php 
                        echo $op_media->getMediaLink($this->getRequest()) ? $op_media->getMediaLink($this->getRequest()) : $op_media->getRemoteMediaLink($this->getRequest());
                        ?>
" rel="noreferrer">
                            <img src="<?php 
                        echo $this->getAssetManager()->getAssetLink('images/missing-image.jpg');
                        ?>
" width="150" height="150" class="thumb"/>
                        </a>
                    <?php 
                    } else {
                        ?>
                        <a href="<?php 
                        echo $op_media->getMediaLink($this->getRequest()) ? $op_media->getMediaLink($this->getRequest()) : $op_media->getRemoteMediaLink($this->getRequest());
                        ?>
" rel="noreferrer">
                            <?php 
                        if (!$this->getAuth()->hasAccess('maccess.mod') && $op_media->spoiler) {
                            ?>
                            <img src="<?php 
                            echo $this->getAssetManager()->getAssetLink('images/spoiler.png');
                            ?>
" width="100" height="100" class="thumb" alt="[SPOILER]" />
                            <?php 
                        } else {
                            ?>
                            <img src="<?php 
                            echo $op_media->getThumbLink($this->getRequest());
                            ?>
" width="<?php 
                            echo $op_media->preview_w;
                            ?>
" height="<?php 
                            echo $op_media->preview_h;
                            ?>
" class="thumb" alt="<?php 
                            echo $op->num;
                            ?>
" />
                            <?php 
                        }
                        ?>
                        </a>
                    <?php 
                    }
                    ?>
                <?php 
                }
                ?>

                <label>
                    <input type="checkbox" name="delete[]" value="<?php 
                echo $op->doc_id;
                ?>
" />
                    <span class="filetitle"><?php 
                echo $op->getTitleProcessed();
                ?>
</span>
                    <span class="postername<?php 
                echo $op->capcode == 'M' ? ' mod' : '';
                echo $op->capcode == 'A' ? ' admin' : '';
                echo $op->capcode == 'D' ? ' developer' : '';
                ?>
"><?php 
                echo $op->email && $op->email !== 'noko' ? '<a href="mailto:' . rawurlencode($op->email) . '">' . $op->getNameProcessed() . '</a>' : $op->getNameProcessed();
                ?>
</span>
                    <span class="postertrip<?php 
                echo $op->capcode == 'M' ? ' mod' : '';
                echo $op->capcode == 'A' ? ' admin' : '';
                echo $op->capcode == 'D' ? ' developer' : '';
                ?>
"><?php 
                echo $op->getTripProcessed();
                ?>
</span>
                    <span class="poster_hash"><?php 
                if ($op->getPosterHashProcessed()) {
                    ?>
ID:<?php 
                    echo $op->getPosterHashProcessed();
                }
                ?>
</span>
                    <?php 
                if ($op->capcode == 'M') {
                    ?>
                        <span class="postername mod">## <?php 
                    echo _i('Mod');
                    ?>
</span>
                    <?php 
                }
                ?>
                    <?php 
                if ($op->capcode == 'A') {
                    ?>
                        <span class="postername admin">## <?php 
                    echo _i('Admin');
                    ?>
</span>
                    <?php 
                }
                ?>
                    <?php 
                if ($op->capcode == 'D') {
                    ?>
                        <span class="postername admin">## <?php 
                    echo _i('Developer');
                    ?>
</span>
                    <?php 
                }
                ?>
                    <?php 
                echo gmdate('D d M H:i:s Y', $op->getOriginalTimestamp());
                ?>
                    <?php 
                if ($op->poster_country !== null) {
                    ?>
<span class="poster_country"><span title="<?php 
                    echo e($op->poster_country_name);
                    ?>
" class="flag flag-<?php 
                    echo strtolower($op->poster_country);
                    ?>
"></span></span><?php 
                }
                ?>
                </label>

                <?php 
                if ($thread_id == 0) {
                    ?>
                    <a class="js" href="<?php 
                    echo $this->getUri()->create(array($op->radix->shortname, $controller_method, $op->num)) . '#' . $op->num;
                    ?>
">No.<?php 
                    echo $op->num;
                    ?>
</a>
                <?php 
                } else {
                    ?>
                    <a class="js" href="<?php 
                    echo $this->getUri()->create(array($op->radix->shortname, $controller_method, $op->num)) . '#' . $op->num;
                    ?>
">No.</a><a class="js" href="javascript:replyQuote('>><?php 
                    echo $op->num;
                    ?>
\n')"><?php 
                    echo $op->num;
                    ?>
</a>
                <?php 
                }
                ?>

                <?php 
                if (isset($op_media) && $op_media->spoiler == 1) {
                    ?>
<img class="inline" src="<?php 
                    echo $this->getAssetManager()->getAssetLink('images/icons/spoiler-icon.png');
                    ?>
" alt="[SPOILER]" title="<?php 
                    echo _i('The image in this post has been marked spoiler.');
                    ?>
"><?php 
                }
                ?>
                <?php 
                if ($op->deleted == 1 && $op->timestamp_expired == 0) {
                    ?>
<img class="inline" src="<?php 
                    echo $this->getAssetManager()->getAssetLink('images/icons/file-delete-icon.png');
                    ?>
" alt="[DELETED]" title="<?php 
                    echo _i('This thread was prematurely deleted.');
                    ?>
"><?php 
                }
                ?>
                <?php 
                if ($op->deleted == 1 && $op->timestamp_expired != 0) {
                    ?>
<img class="inline" src="<?php 
                    echo $this->getAssetManager()->getAssetLink('images/icons/file-delete-icon.png');
                    ?>
" alt="[DELETED]" title="<?php 
                    echo _i('This thread was deleted on %s.', gmdate('M d, Y \\a\\t H:i:s e', $op->timestamp_expired));
                    ?>
"><?php 
                }
                ?>
                <?php 
                if ($op->sticky == 1) {
                    ?>
<img class="inline" src="<?php 
                    echo $this->getAssetManager()->getAssetLink('images/icons/sticky-icon.png');
                    ?>
" alt="[STICKY]" title="<?php 
                    echo _i('This thread has been stickied.');
                    ?>
"><?php 
                }
                ?>
                <?php 
                if ($op->locked == 1) {
                    ?>
<img class="inline" src="<?php 
                    echo $this->getAssetManager()->getAssetLink('images/icons/locked-icon.png');
                    ?>
" alt="[LOCKED]" title="<?php 
                    echo _i('This thread has been locked.');
                    ?>
"><?php 
                }
                ?>

                [<a href="<?php 
                echo $this->getUri()->create(array($op->radix->shortname, 'thread', $op->num));
                ?>
"><?php 
                echo _i('Reply');
                ?>
</a>]
                <?php 
                if (isset($post['omitted']) && $post['omitted'] > 50) {
                    ?>
 [<a href="<?php 
                    echo $this->getUri()->create($op->radix->shortname . '/last/50/' . $op->num);
                    ?>
"><?php 
                    echo _i('Last 50');
                    ?>
</a>]<?php 
                }
                ?>
                <?php 
                if ($op->radix->archive) {
                    ?>
 [<a href="//boards.4chan.org/<?php 
                    echo $op->radix->shortname . '/thread/' . $op->num;
                    ?>
"><?php 
                    echo _i('Original');
                    ?>
</a>]<?php 
                }
                ?>

                <div class="quoted-by" style="display: <?php 
                echo $op->getBacklinks() ? 'block' : 'none';
                ?>
">
                    <?php 
                echo _i('Quoted By:');
                ?>
 <?php 
                echo $op->getBacklinks() ? implode(' ', $op->getBacklinks()) : '';
                ?>
                </div>

                <blockquote><p><?php 
                echo $op->getCommentProcessed();
                ?>
</p></blockquote>
                <?php 
                if (isset($post['omitted']) && $post['omitted'] > 0) {
                    ?>
                <span class="omitted">
                    <?php 
                    if (isset($post['images_omitted']) && $post['images_omitted'] > 0) {
                        ?>
                    <?php 
                        echo $post['omitted'] + $post['images_omitted'] . ' ' . _n('post', 'posts', $post['omitted'] + $post['images_omitted']);
                        ?>
                    <?php 
                        echo ' ' . _n('omitted', 'omitted', $post['omitted'] + $post['images_omitted']);
                        ?>
.
                    <?php 
                    } else {
                        ?>
                    <?php 
                        echo $post['omitted'] . ' ' . _n('post', 'posts', $post['omitted']);
                        ?>
                    <?php 
                        echo ' ' . _n('omitted', 'omitted', $post['omitted'] + $post['images_omitted']);
                        ?>
.
                    <?php 
                    }
                    ?>
                </span>
                <?php 
                }
                ?>
            </div>
            <?php 
            }
            ?>

            <?php 
            if (isset($post['posts'])) {
                $post_counter = 0;
                $image_counter = 0;
                $board_comment_view = $this->getBuilder()->createPartial('post', 'board_comment');
                // reusable Comment object not to create one every loop
                $comment = new Comment($this->getContext());
                $comment->setControllerMethod($controller_method);
                $media_obj = new Media($this->getContext());
                foreach ($post['posts'] as $p) {
                    /** @var CommentBulk $p */
                    $post_counter++;
                    if ($p->media !== null) {
                        $image_counter++;
                    }
                    $comment->setBulk($p);
                    // set the $media to null and leave the Media object in existence
                    if ($p->media !== null) {
                        $media_obj->setBulk($p);
                        $media = $media_obj;
                    } else {
                        $media = null;
                    }
                    $board_comment_view->getParamManager()->setParams(['p' => $comment, 'p_media' => $media, 'modifiers' => $this->getBuilderParamManager()->getParam('modifiers', false), 'post_counter' => $post_counter, 'image_counter' => $image_counter]);
                    // refreshes the string
                    $board_comment_view->doBuild();
                    echo $board_comment_view->build();
                    // remove extra strings from the objects
                    $board_comment_view->clearBuilt();
                    $p->comment->clean();
                    if ($p->media !== null) {
                        $p->media->clean();
                    }
                }
            }
            ?>

            <?php 
            if ($thread_id > 0) {
                ?>
            <?php 
                echo $this->getBuilder()->isPartial('tools_reply_box') ? $this->getBuilder()->getPartial('tools_reply_box')->build() : '';
                ?>
            <?php 
            }
            ?>

            <br class="newthr" />
            <hr />
        <?php 
        }
        ?>
        </div>

        <?php 
        if ($thread_id > 0) {
            echo $form->close();
        }
        ?>
    <?php 
    }