<?php

namespace Modules;

class CLocation extends ContentType {

    public $keys = array(
        'NAME' => 'name',
        'TOWN' => 'town'
    );
    public $values;
    protected $layout;
    protected $layouts = array(
        'toc' => 'view_in_toc',
        'only_name' => 'view_only_name',
        'humble_two_liner' => 'view_small_in_two_lines',
        'one_liner' => 'view_all_in_one_line',
        'collected_header' => 'only_town',
        'collected_entry' => 'only_name_as_link',
        'town' => 'town'
    );
    
    function __construct($keys,$config) {
        
        parent::__construct($keys,$config);
    }


    
    function view_in_toc() {
        $v = (object) $this->values;
        return sprintf("<div class=\"location\"><a href=\"/%s\"><h3>%s</h3></a><span>%s</span></div>",
                       $this->href,
                       $v->name,
                       $v->town
        );
    }
    function view_only_name() {
        $v = (object) $this->values;
        return sprintf("<div class=\"location\"><a href=\"/%s\"><span>%s</span></a></div>",
                       $this->href,
                       $v->name
        );
    }
    function view_all_in_one_line() {
        $v = (object) $this->values;
        return sprintf("<div class=\"location\">"
                       ."<span class=\"town\">%s</span>,&nbsp;"
                       ."<span class=\"venue-name\"><a href=\"/%s\">%s</a></span>"
                       ."</div>",
                       $v->town,
                       $this->href,
                       $v->name
        );
    }
    function view_small_in_two_lines() {
        $v = (object) $this->values;
        return sprintf("<div class=\"location\">"
                       ."<h6 class=\"town\">%s</h6>"
                       ."<span class=\"venue-name\"><a href=\"/%s\">%s</a></span>"
                       ."</div>",
                       $v->town,
                       $this->href,
                       $v->name
        );
    }

    function only_name_as_link() {
        $v = (object) $this->values;
        return sprintf("<h5><a href=\"/%s\">%s</a></h5>",
                       $this->href,
                       $v->name
        );
    }
    function only_town() {
        $v = (object) $this->values;
        return sprintf("<h2>%s</h2>",$v->town);
    }
    function town() {
        $v = (object) $this->values;
        return $v->town;
    }

}