<?php
/** Custom submissions grid for TotalContest Pro 2.6.2 (TCT override)
 *  Выводит гарантированные поля: field_job_name, field_city, field_media_name, field_photo, field_link_to_the_job
 */
! defined('ABSPATH') && exit();

/* ---------- helpers ---------- */
function tct_field($id, $key){
    $v = get_post_meta($id, $key, true);
    return is_string($v) ? trim($v) : $v;
}
function tct_thumb_url($id){
    // 1) field_photo: ID вложения или URL
    $meta = tct_field($id, 'field_photo');
    if ($meta){
        if (ctype_digit((string)$meta) && get_post_type((int)$meta)==='attachment'){
            $u = wp_get_attachment_image_url((int)$meta, 'medium_large');
            if ($u) return $u;
        } elseif (filter_var($meta, FILTER_VALIDATE_URL)){
            return $meta;
        }
    }
    // 2) миниатюра записи
    $u = get_the_post_thumbnail_url($id, 'medium_large');
    if ($u) return $u;
    // 3) первая картинка из контента
    $html = get_post_field('post_content', $id);
    if ($html && preg_match('/<img[^>]+src=["\']([^"\']+)/i', $html, $m)){
        return $m[1];
    }
    return '';
}

/* ---------- стандартные переменные TC ---------- */
include $this->getPath('views/shared/header.php');

$layoutType      = $contest->getSettingsItem('design.layout.type');
$submissionsRows = $contest->getSubmissionsRows();
$filterBy        = $contest->getFilterByItems();
$sortBy          = $contest->getSortByItems();
$sortDirections  = $contest->getSortDirectionItems();
$pages           = $contest->getPaginationItems();
$previousPage    = $contest->getPreviousPagePaginationItem();
$nextPage        = $contest->getNextPagePaginationItem();
?>
<!-- TCT submissions override -->
<div class="totalcontest-submissions">
    <div class="totalcontest-submissions-toolbar" totalcontest-mobile-scrollable>
        <div class="totalcontest-submissions-toolbar-items">
            <?php if (!empty($filterBy) && count($filterBy) > 1): ?>
                <div class="totalcontest-submissions-toolbar-item totalcontest-submissions-toolbar-filter">
                    <span class="totalcontest-submissions-toolbar-title"><?php esc_html_e('Filter by', 'totalcontest'); ?></span>
                    <?php echo $contest->renderComponent('form/selector', ['items' => $filterBy, 'name' => 'filterBy']); ?>
                </div>
            <?php endif; ?>
            <?php if (!empty($sortBy) && count($sortBy) > 1): ?>
                <div class="totalcontest-submissions-toolbar-item totalcontest-submissions-toolbar-sort-by">
                    <span class="totalcontest-submissions-toolbar-title"><?php esc_html_e('Sort by', 'totalcontest'); ?></span>
                    <?php echo $contest->renderComponent('form/selector', ['items' => $sortBy, 'name' => 'sortBy']); ?>
                </div>
            <?php endif; ?>
            <?php if (!empty($sortDirections) && count($sortDirections) > 1): ?>
                <div class="totalcontest-submissions-toolbar-item totalcontest-submissions-toolbar-sort-direction">
                    <span class="totalcontest-submissions-toolbar-title"><?php esc_html_e('Direction', 'totalcontest'); ?></span>
                    <?php echo $contest->renderComponent('form/selector', ['items' => $sortDirections, 'name' => 'sortDirection']); ?>
                </div>
            <?php endif; ?>
        </div>
    </div>

    <div class="totalcontest-submissions-items tct-grid">
        <?php foreach ($submissionsRows as $row): ?>
            <?php foreach ($row as $submission):
                $id    = $submission->getId();
                $job   = tct_field($id, 'field_job_name');
                $city  = tct_field($id, 'field_city');
                $media = tct_field($id, 'field_media_name');
                $link  = tct_field($id, 'field_link_to_the_job');
                $thumb = tct_thumb_url($id);
            ?>
            <article class="totalcontest-submissions-item tct-card" data-id="<?php echo (int)$id; ?>">
                <?php if ($thumb): ?>
                    <a class="tct-card-thumb" href="<?php echo esc_url(get_permalink($id)); ?>">
                        <img src="<?php echo esc_url($thumb); ?>" alt="">
                    </a>
                <?php endif; ?>

                <h3 class="totalcontest-submissions-item-title tct-card-title">
                    <a href="<?php echo esc_url(get_permalink($id)); ?>">
                        <?php echo esc_html($job ?: get_the_title($id)); ?>
                    </a>
                </h3>

                <div class="tct-meta">
                    <?php if ($media): ?>
                        <div><span class="tct-meta-label">СМИ:</span> <?php echo esc_html($media); ?></div>
                    <?php endif; ?>
                    <?php if ($city): ?>
                        <div><span class="tct-meta-label">Город:</span> <?php echo esc_html($city); ?></div>
                    <?php endif; ?>
                    <?php if ($link): ?>
                        <div><span class="tct-meta-label">Ссылка:</span> <a href="<?php echo esc_url($link); ?>" target="_blank" rel="noopener">перейти</a></div>
                    <?php endif; ?>
                </div>
            </article>
            <?php endforeach; ?>
        <?php endforeach; ?>
    </div>

    <?php if (!empty($pages) && count($pages) > 1): ?>
        <div class="totalcontest-pagination">
            <?php if ($previousPage): ?>
                <a class="totalcontest-pagination-item" href="<?php echo esc_attr($previousPage['url']); ?>">
                    <?php esc_html_e('Previous', 'totalcontest'); ?>
                </a>
            <?php endif; ?>
            <?php foreach ($pages as $page): ?>
                <?php if ($page['current']): ?>
                    <span class="totalcontest-pagination-item current"><?php echo esc_html($page['label']); ?></span>
                <?php else: ?>
                    <a class="totalcontest-pagination-item" href="<?php echo esc_attr($page['url']); ?>">
                        <?php echo esc_html($page['label']); ?>
                    </a>
                <?php endif; ?>
            <?php endforeach; ?>
            <?php if ($nextPage): ?>
                <a class="totalcontest-pagination-item" href="<?php echo esc_attr($nextPage['url']); ?>">
                    <?php esc_html_e('Next', 'totalcontest'); ?>
                </a>
            <?php endif; ?>
        </div>
    <?php endif; ?>
</div>

<style>
.totalcontest-submissions .tct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.totalcontest-submissions .tct-card{display:grid;gap:10px;border:1px solid #e5e7eb;border-radius:12px;padding:14px}
.totalcontest-submissions .tct-card-thumb img{width:100%;height:auto;object-fit:cover;border-radius:8px;display:block}
.totalcontest-submissions .tct-card-title,
.totalcontest-submissions .tct-card-title *{display:block;overflow:visible;white-space:normal;max-height:none;-webkit-line-clamp:unset;text-overflow:clip}
.totalcontest-submissions .tct-meta{font-size:13px;color:#475569;display:flex;flex-direction:column;gap:4px}
.totalcontest-submissions .tct-meta .tct-meta-label{color:#64748b;margin-right:6px}
</style>

<?php include $this->getPath('views/shared/footer.php'); ?>
