Bachir Soussi Chiadmi 1bc61b12ad first import
2015-04-08 11:40:19 +02:00

340 lines
10 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Override or insert variables into the html template.
*
* @param $vars
* An array of variables to pass to the theme template.
*/
function popsu_preprocess_html(&$vars) {
//drupal_add_css('/sites/default/themes/popsu/css/css3/css3.css', array('group' => CSS_THEME + 1,'every_page' =>TRUE));
//drupal_add_css('/sites/default/themes/popsu/css/css3/css3_graphics.css', array('group' => CSS_THEME + 2,'every_page' =>TRUE));
// give <body> tag a unique class depending on PATHs
$path_alias = strtolower(drupal_clean_css_identifier(drupal_get_path_alias($_GET['q'])));
if ($path_alias == 'node') {
$vars['classes_array'][] = '';
}
else {
$vars['classes_array'][] = 'path-'. $path_alias;
}
// Add to the array of body classes
// layout classes
$vars['classes_array'][] = 'layout-'. (!empty($vars['page']['sidebar_first']) ? 'first-main' : 'main') . (!empty($vars['page']['sidebar_second']) ? '-second' : '');
}
/**
* Override or insert variables into the page template.
*
* @param $vars
* An array of variables to pass to the theme template.
*/
function popsu_preprocess_page(&$vars) {
// Render manager menu tree from main-menu
//$menu_tree = menu_tree('menu-manager-menu');
//$vars['menu_manager_menu_tree'] = render($menu_tree);
$menu_tree = menu_tree_all_data('menu-manager-menu');
$vars['menu_manager_menu_tree'] = menu_tree_output($menu_tree);
}
/**
* Override or insert variables into the node templates.
*
* @param $vars
* An array of variables to pass to the theme template.
*/
function popsu_preprocess_node(&$vars) {
$vars['classes_array'][] = $vars['zebra'];
if ($vars['view_mode'] == 'full') {
$vars['classes_array'][] = 'node-full';
}
// Add node-type-page template suggestion
if ($vars['page']) {
$vars['theme_hook_suggestions'][] = 'node__'. $vars['node']->type .'_page';
$vars['theme_hook_suggestions'][] = 'node__'. $vars['node']->type .'-'. $vars['node']->nid .'_page';
}
else {
$vars['theme_hook_suggestions'][] = 'node__'. $vars['node']->type .'_teaser';
$vars['theme_hook_suggestions'][] = 'node__'. $vars['node']->nid;
}
}
/**
* Preprocess variables for region.tpl.php
*
* Prepare the values passed to the theme_region function to be passed into a
* pluggable template engine. Uses the region name to generate a template file
* suggestions. If none are found, the default region.tpl.php is used.
*
* @see region.tpl.php
*/
function popsu_preprocess_region(&$vars) {
// Sidebar region template suggestion.
if (strpos($vars['region'], 'sidebar_') === 0) {
$vars['theme_hook_suggestions'][] = 'region__sidebar';
$vars['theme_hook_suggestions'][] = 'region__' . $vars['region'];
}
}
/**
* Override or insert variables into the block templates.
*
* @param $vars
* An array of variables to pass to the theme template.
*/
function popsu_preprocess_block(&$vars) {
$block = $vars['block'];
// First/last block position
$vars['position'] = ($vars['block_id'] == 1) ? 'first' : '';
if ($vars['block_id'] == count(block_list($block->region))) {
$vars['position'] = ($vars['position']) ? '' : 'last';
}
}
/**
* Override or insert variables into the comment templates.
*
* @param $vars
* An array of variables to pass to the theme template.
*/
function popsu_preprocess_comment(&$vars) {
// Add odd/even classes to comments classes_array
static $comment_odd = TRUE;
$vars['classes_array'][] = $comment_odd ? 'odd' : 'even';
$comment_odd = !$comment_odd;
}
function popsu_form_element($variables) {
$element = &$variables['element'];
// This is also used in the installer, pre-database setup.
$t = get_t();
// This function is invoked as theme wrapper, but the rendered form element
// may not necessarily have been processed by form_builder().
$element += array(
'#title_display' => 'before',
);
// Add element #id for #type 'item'.
if (isset($element['#markup']) && !empty($element['#id'])) {
$attributes['id'] = $element['#id'];
}
// Add element's #type and #name as class to aid with JS/CSS selectors.
$attributes['class'] = array('form-item');
$error = form_get_error($element);
if (!empty($error) ) {
$attributes['class'][] = 'error';
}
if (!empty($element['#type'])) {
$attributes['class'][] = 'form-type-' . strtr($element['#type'], '_', '-');
}
if (!empty($element['#name'])) {
$attributes['class'][] = 'form-item-' . strtr($element['#name'], array(' ' => '-', '_' => '-', '[' => '-', ']' => ''));
}
// Add a class for disabled elements to facilitate cross-browser styling.
if (!empty($element['#attributes']['disabled'])) {
$attributes['class'][] = 'form-disabled';
}
$output = '<div' . drupal_attributes($attributes) . '>' . "\n";
// If #title is not set, we don't display any label or required marker.
if (!isset($element['#title'])) {
$element['#title_display'] = 'none';
}
$prefix = isset($element['#field_prefix']) ? '<span class="field-prefix">' . $element['#field_prefix'] . '</span> ' : '';
$suffix = isset($element['#field_suffix']) ? ' <span class="field-suffix">' . $element['#field_suffix'] . '</span>' : '';
switch ($element['#title_display']) {
case 'before':
case 'invisible':
$output .= ' ' . theme('form_element_label', $variables);
$output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
break;
case 'after':
$output .= ' ' . $prefix . $element['#children'] . $suffix;
$output .= ' ' . theme('form_element_label', $variables) . "\n";
break;
case 'none':
case 'attribute':
// Output no label and no required marker, only the children.
$output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
break;
}
if (!empty($element['#description'])) {
$output .= '<div class="description">' . $element['#description'] . "</div>\n";
} else if( !empty($error) ) {
$output .= '<div class="description">' . $error . '</div><!--/.description-->';
}
$output .= "</div>\n";
return $output;
}
function popsu_pager($variables) {
$tags = $variables['tags'];
$element = $variables['element'];
$parameters = $variables['parameters'];
$quantity = $variables['quantity'];
global $pager_page_array, $pager_total;
// Calculate various markers within this pager piece:
// Middle is used to "center" pages around the current page.
$pager_middle = ceil($quantity / 2);
// current is the page we are currently paged to
$pager_current = $pager_page_array[$element] + 1;
// first is the first page listed by this pager piece (re quantity)
$pager_first = $pager_current - $pager_middle + 1;
// last is the last page listed by this pager piece (re quantity)
$pager_last = $pager_current + $quantity - $pager_middle;
// max is the maximum page number
$pager_max = $pager_total[$element];
// End of marker calculations.
// Prepare for generation loop.
$i = $pager_first;
if ($pager_last > $pager_max) {
// Adjust "center" if at end of query.
$i = $i + ($pager_max - $pager_last);
$pager_last = $pager_max;
}
if ($i <= 0) {
// Adjust "center" if at start of query.
$pager_last = $pager_last + (1 - $i);
$i = 1;
}
// End of generation loop preparation.
$li_first = theme('pager_first', array('text' => (isset($tags[0]) ? $tags[0] : t('« first')), 'element' => $element, 'parameters' => $parameters));
$li_previous = theme('pager_previous', array('text' => (isset($tags[1]) ? $tags[1] : t(' previous')), 'element' => $element, 'interval' => 1, 'parameters' => $parameters));
$li_next = theme('pager_next', array('text' => (isset($tags[3]) ? $tags[3] : t('next ')), 'element' => $element, 'interval' => 1, 'parameters' => $parameters));
$li_last = theme('pager_last', array('text' => (isset($tags[4]) ? $tags[4] : t('last »')), 'element' => $element, 'parameters' => $parameters));
if ($pager_total[$element] > 1) {
if ($li_first) {
$items[] = array(
'class' => array('pager-first'),
'data' => $li_first,
);
}
if ($li_previous) {
$items[] = array(
'class' => array('pager-previous'),
'data' => $li_previous,
);
}
// When there is more than one page, create the pager list.
if ($i != $pager_max) {
if ($i > 1) {
$items[] = array(
'class' => array('pager-ellipsis'),
'data' => '<a onclick="return false;" href="#">…</a>',
);
}
// Now generate the actual pager piece.
for (; $i <= $pager_last && $i <= $pager_max; $i++) {
if ($i < $pager_current) {
$items[] = array(
'class' => array('pager-item'),
'data' => theme('pager_previous', array('text' => $i, 'element' => $element, 'interval' => ($pager_current - $i), 'parameters' => $parameters)),
);
}
if ($i == $pager_current) {
$items[] = array(
'class' => array('pager-current active'),
'data' => "<a href=\"#\">$i</a>",
);
}
if ($i > $pager_current) {
$items[] = array(
'class' => array('pager-item'),
'data' => theme('pager_next', array('text' => $i, 'element' => $element, 'interval' => ($i - $pager_current), 'parameters' => $parameters)),
);
}
}
if ($i < $pager_max) {
$items[] = array(
'class' => array('pager-ellipsis disabled'),
'data' => '<a onclick="return false;" href="#">…</a>',
);
}
}
// End generation.
if ($li_next) {
$items[] = array(
'class' => array('pager-next'),
'data' => $li_next,
);
}
if ($li_last) {
$items[] = array(
'class' => array('pager-last'),
'data' => $li_last,
);
}
return '<div class="pagination pagination-centered">'.theme('item_list', array(
'items' => $items,
)).'</div>';
}
}
function popsu_menu_link($v) {
$atts = &$v['element']['#attributes']; //alias
if( isset($atts['class'])
&& in_array('active-trail',$atts['class']) ) {
$atts['class'][] = 'active';
}
/* rcuny - patch pour nid dans les menus */
$nid = $v['element']['#href'];
if ($nid != "") {
$nid = substr($nid, 5);
if (is_numeric($nid)) {
$atts['class'][] = 'nid-' . $nid;
}
}
return theme_menu_link($v);
}
/**
* Implementation of CKEditor default height (http://groups.drupal.org/node/170324)
*/
function popsu_wysiwyg_editor_settings_alter(&$settings, $context) {
if($context['profile']->editor == 'ckeditor') {
$settings['height'] = 300;
}
}