<?php

namespace Modules;

class CPublication extends ContentType {

    public $keys = array(
        'TITLE' => 'title',
        'ARTIST' => 'artist',
        'DATE' => 'date',
        'IMAGE' => 'img',
        'CATALOGUE' => 'cat',
        'PRICE' => 'price',
        'LINK' => 'link'
    );
    public $values;
    protected $layout;
    protected $layouts = array(
        'default' => 'view_in_toc',
        'toc' => 'view_in_toc'
    );
    
    function __construct($keys,$config) {

        parent::__construct($keys,$config);
    }

    
    function simple() {
        return sprintf("sdsd");
    }
    
    function affiliate_link($href) {
        $classes = ['affiliate'];
        $name = $href;
        if (stripos($href, 'bandcamp.com') !== false) {
            $classes[] = 'bandcamp';
            $name = 'Bandcamp';
        }
        return sprintf('<a href="%s" class="%s">%s</a>',
            $href,
            implode(" ",$classes),
            $name
        );
    }
    
    function view_in_toc() {
        $f3 = \Base::instance();
        $v = (object) $this->values;

        $img = new CachedImage($this->config['path'].$v->img);
        $img_html = sprintf('<img src="%s" alt="cover art" />', $img->get_src(1000));
        
        $ED = new ElementDispatcher();
        $buy_button = $v->price 
                    ? $ED->content_element([
                        'buy',
                        $v->cat .": ".$v->title,
                        $v->price])
                    : "";
        
        $affiliates = "";
        
        if (is_array($v->link)) {
            foreach ($v->link as $link) {
                $affiliates .= $this->affiliate_link($link);
            }
        } else {
            $affiliates .= $this->affiliate_link($v->link);
        }
        
        return sprintf(
        "<div class=\"contentTypeElement publication\">"
            ."<span class=\"catalogue\">%s</span>"
            ."<a href=\"/%s\">"
            ."%s"
            ."<div class=\"info\">"
            ."<h2>%s</h2><h3><span class=\"artist\">%s</span>%s</h3>"
            ."</div></a></div>%s %s",
                $v->cat,
                $this->href,
                $img_html,
                $v->title,
                $v->artist,
                $v->date ? '<span class="pubdate"> - '.$v->date.'</span>' : '' ,                                
                $buy_button,
                $affiliates
        );
    }

}