arteleku_skin/template.php
2017-12-15 01:06:00 +01:00

465 lines
19 KiB
PHP

<?php
//theme_date_display_range
function arteleku_skin_date_display_range($variables){
//dpm($variables);
$date1 = $variables['date1'];
$date2 = $variables['date2'];
$formato = $variables['dates']['format'];
$timezone = $variables['timezone'];
$fecha1 = new DateObject($date1, $timezone, $formato);
$fecha2 = new DateObject($date2, $timezone, $formato);
$fromYear = ($fecha1->hasGranularity(array('year'))) ? $fecha1->toArray() : null;
$toYear = ($fecha2->hasGranularity(array('year'))) ? $fecha2->toArray() : null;
if(($fromYear !=null) && ($toYear != null)){
if($fromYear['year']== $toYear['year'] && $formato != 'H:i'){
$formato = variable_get('date_format_corto_sin_ano', 'm/d');
$date1 = $fecha1->format($formato);
}
}
$attributes_start = $variables['attributes_start'];
$attributes_end = $variables['attributes_end'];
// Wrap the result with the attributes.
return t('!start-date - !end-date', array(
'!start-date' => '<span class="date-display-start"' . drupal_attributes($attributes_start) . '>' . $date1 . '</span>',
'!end-date' => '<span class="date-display-end"' . drupal_attributes($attributes_end) . '>' . $date2 . $timezone . '</span>',
));
//return "fhsdf";
}
function arteleku_skin_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'search_block_form') {
$form['search_block_form']['#title'] = t('Search'); // Change the text on the label element
$form['search_block_form']['#title_display'] = 'invisible'; // Toggle label visibilty
$form['search_block_form']['#size'] = 20; // define size of the textfield
$form['search_block_form']['#default_value'] = t('Search'); // Set a default value for the textfield
$form['search_block_form']['#weight'] = 10;
$form['search_block_form']['#attributes'] = array('class' => array('search-form-input'));
$form['actions']['submit']['#value'] = t('GO!'); // Change the text on the submit button
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/search-button.png');
$form['actions']['#weight'] = 0;
$form['actions']['#attributes'] = array('class' => array('search-form-lupa'));
// Add extra attributes to the text box
$form['search_block_form']['#attributes']['onblur'] = "if (this.value == '') {this.value = 'Search';}";
$form['search_block_form']['#attributes']['onfocus'] = "if (this.value == 'Search') {this.value = '';}";
// Prevent user from searching the default text
$form['#attributes']['onsubmit'] = "if(this.search_block_form.value=='Search'){ alert('Please enter a search'); return false; }";
// Alternative (HTML5) placeholder attribute instead of using the javascript
$form['search_block_form']['#attributes']['placeholder'] = t('Search');
}elseif ($form_id == 'apachesolr_panels_search_block') {
$form['apachesolr_panels_search_block']['#title'] = t('Search'); // Change the text on the label element
$form['apachesolr_panels_search_block']['#title_display'] = 'invisible'; // Toggle label visibilty
$form['apachesolr_panels_search_block']['#size'] = 20; // define size of the textfield
$form['apachesolr_panels_search_block']['#default_value'] = t('Search'); // Set a default value for the textfield
$form['apachesolr_panels_search_block']['#weight'] = 10;
$form['apachesolr_panels_search_block']['#attributes'] = array('class' => array('search-form-input'));
//$form['actions']['submit']['#value'] = t('GO!'); // Change the text on the submit button
$form['actions']['submit'] = array('#type' => 'image_button', '#src' => base_path() . path_to_theme() . '/images/search-button.png');
$form['actions']['#weight'] = 0;
$form['actions']['#attributes'] = array('class' => array('search-form-lupa'));
// Add extra attributes to the text box
$form['apachesolr_panels_search_block']['#attributes']['onblur'] = "if (this.value == '') {this.value = 'Search';}";
$form['apachesolr_panels_search_block']['#attributes']['onfocus'] = "if (this.value == 'Search') {this.value = '';}";
// Prevent user from searching the default text
// $form['#attributes']['onsubmit'] = "if(this.search_block_form.value=='Search'){ alert('Please enter a search'); return false; }";
// Alternative (HTML5) placeholder attribute instead of using the javascript
$form['apachesolr_panels_search_block']['#attributes']['placeholder'] = t('Search');
}elseif ($form_id == 'registration_form'){
// dpm($form);
$form['who_message']['#access'] = false;
// $form[]
}
}
function arteleku_skin_menu_local_tasks(&$variables) {
//OCultamos las etiquetas de administración para los usuarios que son de tipo suscriptor.
global $user;
$roles = $user->roles;
if (in_array('suscriptor',$roles)){
return;
}
else{
$output = '';
if (!empty($variables['primary'])) {
$variables['primary']['#prefix'] = '<h2 class="element-invisible">' . t('Primary tabs') . '</h2>';
$variables['primary']['#prefix'] .= '<ul class="tabs primary">';
$variables['primary']['#suffix'] = '</ul>';
$output .= drupal_render($variables['primary']);
}
if (!empty($variables['secondary'])) {
$variables['secondary']['#prefix'] = '<h2 class="element-invisible">' . t('Secondary tabs') . '</h2>';
$variables['secondary']['#prefix'] .= '<ul class="tabs secondary">';
$variables['secondary']['#suffix'] = '</ul>';
$output .= drupal_render($variables['secondary']);
}
}
return $output;
}
function arteleku_skin_more_link(&$variables){
return '<div class="more-link">' . l(t('+'), $variables['url'], array('attributes' => array('title' => $variables['title']))) . '</div>';
}
function arteleku_skin_preprocess_galleria_container(&$vars) {
// Each Galleria instance gets a unique id
$galleria_id = &drupal_static('galleria_id', 0);
$vars['id'] = ++$galleria_id;
// Load the used option set
if (!empty($vars['settings']['optionset'])) {
$optionset = galleria_optionset_load($vars['settings']['optionset']);
}
if (empty($optionset)) {
// Fall back to 'default' option set
$optionset = galleria_optionset_load('default');
}
// Attach Galleria JavaScript
galleria_add_js($galleria_id, $optionset);
// Prepare image elements
$items = $vars['items'];
$vars['items'] = array();
$thumb_style = empty($optionset['imagestyle_thumb']) ? 'galleria_thumb' : $optionset['imagestyle_thumb'];
foreach ($items as $delta => $item) {
// Stop errors for empty URI. See issue [#1319268] for details.
if (empty($item['#item']['uri'])) {
continue;
}
$f = file_load($item['#item']['fid']);
$r = file_view($f, $thumb_style, NULL);
$r2 = file_view($f, $optionset['imagestyle_normal'], NULL);
$r['galleria'] = array(
'path' => $r2['file']['#path'],
'options' => array(
'html' => TRUE,
'attributes' => array(
'rel' => $r2['file']['#path'],
)
)
);
$vars['items'][$delta] = $r;
}
}
/**
*
*/
/**
* Create the calendar date box.
*/
function arteleku_skin_preprocess_calendar_datebox(&$vars) {
$date = $vars['date'];
$view = $vars['view'];
$vars['day'] = intval(substr($date, 8, 2));
$force_view_url = !empty($view->date_info->block) ? TRUE : FALSE;
$month_path = calendar_granularity_path($view, 'month');
$year_path = calendar_granularity_path($view, 'year');
$day_path = calendar_granularity_path($view, 'day');
//dpm($day_path);
$day_path="agenda";
$vars['url'] = str_replace(array($month_path, $year_path), $day_path, date_pager_url($view, NULL, $date, $force_view_url));
$vars['link'] = !empty($day_path) ? l($vars['day'], $vars['url']) : $vars['day'];
$vars['granularity'] = $view->date_info->granularity;
$vars['mini'] = !empty($view->date_info->mini);
if ($vars['mini']) {
if (!empty($vars['selected'])) {
$vars['class'] = 'mini-day-on';
}
else {
$vars['class'] = 'mini-day-off';
}
}
else {
$vars['class'] = 'day';
}
}
function arteleku_skin_preprocess_search_results(&$vars) {
drupal_add_js(drupal_get_path('theme', 'arteleku_skin') .'/js/jquery.masonry.js', 'file');
drupal_add_js(drupal_get_path('theme', 'arteleku_skin') .'/js/search.js', 'file');
}
/**
* Theme handler for registration links.
*
* @param array $variables
* Contains the label and path for the link.
*/
function arteleku_skin_registration_link($variables) {
$output = '';
$registration_label = $variables['label'];
$registration_path = $variables['path'];
$output .= l($registration_label, $registration_path, array( 'attributes' => array('class'=>'register-link')));
return $output;
}
/**
* Theme function for unified login page.
*
* @ingroup themable
*/
function arteleku_skin_lt_unified_login_page($variables) {
$login_form = $variables['login_form'];
$register_form = $variables['register_form'];
$active_form = $variables['active_form'];
$output = '';
$output .= '<div class="toboggan-unified ' . $active_form . '">';
// Create the initial message and links that people can click on.
$output .= '<div id="login-message"><h3>' . t('You are not logged in.') . '</h3></div>';
$output .= '<div id="login-wrapper">';
$output .= '<div id="login-links">';
$output .= l(t('I have an account'), 'user/login', array('attributes' => array('class' => array('login-link'), 'id' => 'login-link')));
$output .= ' ';
$output .= l(t('I want to create an account'), 'user/register', array('attributes' => array('class' => array('login-link'), 'id' => 'register-link')));
$output .= '</div>';
// Add the login and registration forms in.
$output .= '<div id="login-form">' . $login_form . '</div>';
$output .= '<div id="register-form">' . $register_form . '</div>';
$output .= '</div>';
$output .= '</div>';
return $output;
}
function arteleku_skin_feed_icon($url) {
//$icon_url = '/' . drupal_get_path('theme', 'yourthemename') . '/images/feed.png';
// if ($image = '<img src="'. $icon_url . '" alt="'. t('RSS feed') .'" />') {
return '<a class="podcast-icon" href="'. check_url($url['url']) .'"><span class="element-invisible">Podcast</span></a>';
// return "kjdshfksdjhfdskjhfkjdshfkjsd";
//}
}
/**
* Implements template_preprocess_HOOK().
*/
function arteleku_skin_preprocess_islandora_basic_collection_grid(&$variables){
global $base_url;
global $base_path;
$islandora_object = $variables['islandora_object'];
//dpm("Templates");
try {
$dc = $islandora_object['DC']->content;
$dc_object = DublinCore::importFromXMLString($dc);
}
catch (Exception $e) {
drupal_set_message(t('Error retrieving object %s %t', array('%s' => $islandora_object->id, '%t' => $e->getMessage())), 'error', FALSE);
}
if (isset($islandora_object['MODS'])) {
$mods=$islandora_object['MODS']->content;
$mods_object = Mods::importFromXMLString($mods);
//dpm($mods_object);
$variables['mods_array'] = isset($mods_object) ? theme("mods_object", array('mods' => $mods_object)) : array();
$mods_array = isset($mods_object) ? theme("mods_object", array('mods' => $mods_object)) : array();
$variables['islandora_mods_array'] = $mods_object;
}
$page_number = (empty($_GET['page'])) ? 0 : $_GET['page'];
$page_size = (empty($_GET['pagesize'])) ? variable_get('islandora_basic_collection_page_size', '40') : $_GET['pagesize'];
$results = $variables['collection_results'];
$total_count = count($results);
//dpm($total_count);
$variables['islandora_dublin_core'] = isset($dc_object) ? $dc_object : array();
$variables['islandora_object_label'] = $islandora_object->label;
$display = (empty($_GET['display'])) ? 'list' : $_GET['display'];
if ($display == 'grid') {
$variables['theme_hook_suggestions'][] = 'islandora_basic_collection_grid__' . str_replace(':', '_', $islandora_object->id);
}
else {
$variables['theme_hook_suggestions'][] = 'islandora_basic_collection__' . str_replace(':', '_', $islandora_object->id);
}
if (isset($islandora_object['OBJ'])) {
$full_size_url = url("islandora/object/{$islandora_object->id}/datastram/OBJ/view");
$params = array(
'title' => $islandora_object->label,
'path' => $full_size_url);
$variables['islandora_full_img'] = theme('image', $params);
}
if (isset($islandora_object['TN'])) {
$full_size_url = url("islandora/objects/{$islandora_object->id}/datastream/TN/view");
$params = array(
'title' => $islandora_object->label,
'path' => $full_size_url);
$variables['islandora_thumbnail_img'] = theme('image', $params);
}
if (isset($islandora_object['MEDIUM_SIZE'])) {
$full_size_url = url("islandora/object/{$islandora_object->id}/datastream/MEDIUM_SIZE/view");
$params = array(
'title' => $islandora_object->label,
'path' => $full_size_url);
$variables['islandora_medium_img'] = theme('params', $params);
}
$associated_objects_array_mods = array();
foreach ($results as $result) {
$pid = $result['object']['value'];
$fc_object = islandora_object_load($pid);
if (!is_object($fc_object)) {
// NULL object so don't show in collection view.
continue;
}
$associated_objects_array_mods[$pid]['object'] = $fc_object;
//dpm($fc_object['MODS']->content);
try {
if (!isset($fc_object['MODS'])){continue;}
$mods = $fc_object['MODS']->content;
$mods_object = Mods::importFromXMLString($mods);
$associated_objects_array_mods[$pid]['mods_array'] = theme('mods_object', array('mods' => $mods_object));
}
catch (Exception $e) {
drupal_set_message(t('Error retrieving object %s %t', array('%s' => $islandora_object->id, '%t' => $e->getMessage())), 'error', FALSE);
}
$object_url = 'islandora/object/' . $pid;
$title = $associated_objects_array_mods[$pid]['mods_array']['titleInfo'];//$result['title']['value'];
if(isset($associated_objects_array_mods[$pid]['mods_array']['part'])){
$part = "";
if (!empty($mods_object->mods['part'])){
$l_item = _islandora_get_localized($mods_object->mods['part']);
$part = theme("modselement__part", array('element' => $l_item, 'title' => TRUE));
}
$title = $associated_objects_array_mods[$pid]['mods_array']['titleInfo'] . ' ' . $part;
}
$associated_objects_array_mods[$pid]['pid'] = $pid;
$associated_objects_array_mods[$pid]['path'] = $object_url;
$associated_objects_array_mods[$pid]['title'] = $title;
$associated_objects_array_mods[$pid]['class'] = drupal_strtolower(preg_replace('/[^A-Za-z0-9]/', '-', $pid));
if (isset($fc_object['TN'])) {
$thumbnail_img = theme('image', array('path' => "$object_url/datastream/TN/view"));
}
else {
$image_path = drupal_get_path('module', 'islandora');
$thumbnail_img = theme('image', array('path' => "$image_path/images/folder.png"));
}
$associated_objects_array_mods[$pid]['thumbnail'] = $thumbnail_img;
$associated_objects_array_mods[$pid]['title_link'] = l($title, $object_url, array('html' => TRUE, 'attributes' => array('title' => $title)));
$associated_objects_array_mods[$pid]['thumb_link'] = l($thumbnail_img, $object_url, array('html' => TRUE, 'attributes' => array('title' => $title)));
}
$variables['associated_objects_array_mods'] = $associated_objects_array_mods;
}
function arteleku_skin_preprocess_islandora_pdf(&$variables) {
$object = $variables['islandora_object'];
if (isset($object['OBJ']) && $object['OBJ']->mimetype == 'application/pdf') {
$dsid = 'OBJ';
}
else {
$dsid = 'PDF';
}
$file_url = url("islandora/object/{$object->id}/datastream/$dsid/view", array('absolute' => TRUE));
$variables['viewer_url'] = url( '../sites/all/libraries/pdfjs/web/viewer.html', array('absolute' => TRUE, 'query' => array('file' => $file_url)));
}
function arteleku_skin_preprocess_islandora_solr_wrapper(&$variables){
//dpm(print_r($variables, true));
}
function arteleku_skin_preprocess_islandora_solr(&$variables) {
// dpm(print_r($variables, true));
$associated_objects_array_mods = array();
$results = $variables['results'];
foreach ($results as $result) {
$pid = $result['PID'];
$fc_object = islandora_object_load($pid);
if (!is_object($fc_object)) {
// NULL object so don't show in collection view.
continue;
}
$associated_objects_array_mods[$pid]['object'] = $fc_object;
try {
if (!isset($fc_object['MODS'])){continue;}
$mods = $fc_object['MODS']->content;
$mods_object = Mods::importFromXMLString($mods);
$associated_objects_array_mods[$pid]['mods_array'] = theme('mods_object', array('mods' => $mods_object));
}
catch (Exception $e) {
drupal_set_message(t('Error retrieving object %s %t', array('%s' => $islandora_object->id, '%t' => $e->getMessage())), 'error', FALSE);
}
$object_url = 'islandora/object/' . $pid;
$title = $associated_objects_array_mods[$pid]['mods_array']['titleInfo'];//$result['title']['value'];
if(isset($associated_objects_array_mods[$pid]['mods_array']['part'])){
$part = "";
if (!empty($mods_object->mods['part'])){
$l_item = _islandora_get_localized($mods_object->mods['part']);
$part = theme("modselement__part", array('element' => $l_item, 'title' => TRUE));
}
$title = $associated_objects_array_mods[$pid]['mods_array']['titleInfo'] . ' ' . $part;
}
$associated_objects_array_mods[$pid]['pid'] = $pid;
$associated_objects_array_mods[$pid]['path'] = $object_url;
$associated_objects_array_mods[$pid]['title'] = $title;
$associated_objects_array_mods[$pid]['class'] = drupal_strtolower(preg_replace('/[^A-Za-z0-9]/', '-', $pid));
if (isset($fc_object['TN'])) {
$thumbnail_img = theme('image', array('path' => "$object_url/datastream/TN/view"));
}
else {
$image_path = drupal_get_path('module', 'islandora');
$thumbnail_img = theme('image', array('path' => "$image_path/images/folder.png"));
}
$associated_objects_array_mods[$pid]['thumbnail'] = $thumbnail_img;
$associated_objects_array_mods[$pid]['title_link'] = l($title, $object_url, array('html' => TRUE, 'attributes' => array('title' => $title)));
$associated_objects_array_mods[$pid]['thumb_link'] = l($thumbnail_img, $object_url, array('html' => TRUE, 'attributes' => array('title' => $title)));
}
$variables['associated_objects_array_mods'] = $associated_objects_array_mods;
}
function arteleku_skin_preprocess_page(&$variables)
{
// dvm($variables);
}