|
- <?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
- );
- }
-
- }
|