annotate sites/all/modules/semanticviews/semanticviews.theme.inc @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2 /**
danielebarchiesi@4 3 * @file semanticviews.theme.inc
danielebarchiesi@4 4 * TODO: Enter file description here.
danielebarchiesi@4 5 */
danielebarchiesi@4 6
danielebarchiesi@4 7 /**
danielebarchiesi@4 8 * Preprocess theme function to print a single record from a row, with fields
danielebarchiesi@4 9 */
danielebarchiesi@4 10 function template_preprocess_semanticviews_view_fields(&$vars) {
danielebarchiesi@4 11 $view = $vars['view'];
danielebarchiesi@4 12
danielebarchiesi@4 13 // Loop through the fields for this view.
danielebarchiesi@4 14 $vars['fields'] = array(); // ensure it's at least an empty array.
danielebarchiesi@4 15 foreach ($view->field as $id => $field) {
danielebarchiesi@4 16 // render this even if set to exclude so it can be used elsewhere.
danielebarchiesi@4 17 $field_output = $view->field[$id]->theme($vars['row']);
danielebarchiesi@4 18 $empty = $field_output !== 0 && empty($field_output);
danielebarchiesi@4 19 if (empty($field->options['exclude']) && !(($vars['options']['skip_blank'] || $field->options['hide_empty']) && $empty)) {
danielebarchiesi@4 20 $object = new stdClass();
danielebarchiesi@4 21
danielebarchiesi@4 22 $object->content = $field_output;
danielebarchiesi@4 23 if (isset($view->field[$id]->field_alias) && isset($vars['row']->{$view->field[$id]->field_alias})) {
danielebarchiesi@4 24 $object->raw = $vars['row']->{$view->field[$id]->field_alias};
danielebarchiesi@4 25 }
danielebarchiesi@4 26 else {
danielebarchiesi@4 27 $object->raw = NULL; // make sure it exists to reduce NOTICE
danielebarchiesi@4 28 }
danielebarchiesi@4 29
danielebarchiesi@4 30 $object->handler = &$view->field[$id];
danielebarchiesi@4 31
danielebarchiesi@4 32 $semantic_html = $vars['options']['semantic_html'][$id];
danielebarchiesi@4 33
danielebarchiesi@4 34 // Field content
danielebarchiesi@4 35 $object->element_type = check_plain($semantic_html['element_type']);
danielebarchiesi@4 36 $object->attributes = array();
danielebarchiesi@4 37 if ($semantic_html['class']) {
danielebarchiesi@4 38 $object->attributes['class'] = $semantic_html['class'];
danielebarchiesi@4 39 }
danielebarchiesi@4 40
danielebarchiesi@4 41 // Field label
danielebarchiesi@4 42 $object->label = check_plain($view->field[$id]->label());
danielebarchiesi@4 43 if (!empty($object->label)) {
danielebarchiesi@4 44 $object->label_element_type = check_plain($semantic_html['label_element_type']);
danielebarchiesi@4 45 $object->label_attributes = array();
danielebarchiesi@4 46 if ($semantic_html['label_class']) {
danielebarchiesi@4 47 $object->label_attributes['class'] = $semantic_html['label_class'];
danielebarchiesi@4 48 }
danielebarchiesi@4 49 }
danielebarchiesi@4 50
danielebarchiesi@4 51 $vars['fields'][$id] = $object;
danielebarchiesi@4 52 }
danielebarchiesi@4 53 }
danielebarchiesi@4 54
danielebarchiesi@4 55 }
danielebarchiesi@4 56
danielebarchiesi@4 57 /**
danielebarchiesi@4 58 * Display the simple view of rows one after another
danielebarchiesi@4 59 */
danielebarchiesi@4 60 function template_preprocess_semanticviews_view_unformatted(&$vars) {
danielebarchiesi@4 61 $view = $vars['view'];
danielebarchiesi@4 62
danielebarchiesi@4 63 $vars['group_element'] = check_plain($vars['options']['group']['element_type']);
danielebarchiesi@4 64 $vars['group_attributes'] = array();
danielebarchiesi@4 65 if ($vars['options']['group']['class']) {
danielebarchiesi@4 66 $vars['group_attributes']['class'] = $vars['options']['group']['class'];
danielebarchiesi@4 67 }
danielebarchiesi@4 68
danielebarchiesi@4 69 $vars['list_element'] = check_plain($vars['options']['list']['element_type']);
danielebarchiesi@4 70 $vars['list_attributes'] = array();
danielebarchiesi@4 71 if ($vars['options']['list']['class']) {
danielebarchiesi@4 72 $vars['list_attributes']['class'] = $vars['options']['list']['class'];
danielebarchiesi@4 73 }
danielebarchiesi@4 74
danielebarchiesi@4 75 // TODO: set a default or handle empty value.
danielebarchiesi@4 76 $vars['row_element'] = check_plain($vars['options']['row']['element_type']);
danielebarchiesi@4 77 $last_every_nth = $vars['options']['row']['last_every_nth'];
danielebarchiesi@4 78
danielebarchiesi@4 79 $vars['row_attributes'] = array();
danielebarchiesi@4 80
danielebarchiesi@4 81 // Set up striping class array.
danielebarchiesi@4 82 $stripes = array();
danielebarchiesi@4 83 if (trim($vars['options']['row']['striping_classes'])) {
danielebarchiesi@4 84 $stripes = explode(' ', trim($vars['options']['row']['striping_classes']));
danielebarchiesi@4 85 }
danielebarchiesi@4 86 $striping = count($stripes);
danielebarchiesi@4 87
danielebarchiesi@4 88 // Get alias tokens.
danielebarchiesi@4 89 $tokens = semanticviews_get_alias_tokens($view);
danielebarchiesi@4 90
danielebarchiesi@4 91 foreach ($vars['rows'] as $id => $row) {
danielebarchiesi@4 92 // Get token replacements.
danielebarchiesi@4 93 $replacements = semanticviews_get_token_replacements($view->result[$id], $tokens);
danielebarchiesi@4 94 // Add replacement for the row number.
danielebarchiesi@4 95 $replacements['#'] = $id;
danielebarchiesi@4 96
danielebarchiesi@4 97 $vars['row_attributes'][$id] = array();
danielebarchiesi@4 98 $classes = array();
danielebarchiesi@4 99 if ($vars['options']['row']['class']) {
danielebarchiesi@4 100 $classes[] = strtr($vars['options']['row']['class'], $replacements);
danielebarchiesi@4 101 }
danielebarchiesi@4 102 if ($vars['options']['row']['first_class']) {
danielebarchiesi@4 103 // The FIRST class attribute can be used in two ways. When the "last every
danielebarchiesi@4 104 // nth" option is specified, the FIRST attribute is added to the class in
danielebarchiesi@4 105 // those intervals. This could be useful for grid designs where the first
danielebarchiesi@4 106 // unit in a row needs a zero width margin.
danielebarchiesi@4 107 if (($last_every_nth && $id % $last_every_nth == 0) ||
danielebarchiesi@4 108 // Otherwise when last every nth is not set, the FIRST class is added
danielebarchiesi@4 109 // to the first row in the pager set.
danielebarchiesi@4 110 (!$last_every_nth && $id == 0)) {
danielebarchiesi@4 111 $classes[] = strtr($vars['options']['row']['first_class'], $replacements);
danielebarchiesi@4 112 }
danielebarchiesi@4 113 }
danielebarchiesi@4 114 if ($vars['options']['row']['last_class']) {
danielebarchiesi@4 115 // The LAST class attribute can be used in two ways. When the "last every
danielebarchiesi@4 116 // nth" option is specified, the LAST attribute is added to the class in
danielebarchiesi@4 117 // those intervals. This could be useful for grid designs where the last
danielebarchiesi@4 118 // unit in a row needs a zero width margin.
danielebarchiesi@4 119 if (($last_every_nth && ($id + 1) % $last_every_nth == 0) ||
danielebarchiesi@4 120 // Otherwise when last every nth is not set, the LAST class is added
danielebarchiesi@4 121 // to the last row in the pager set.
danielebarchiesi@4 122 (!$last_every_nth && ($id + 1) == count($vars['rows']))) {
danielebarchiesi@4 123 $classes[] = strtr($vars['options']['row']['last_class'], $replacements);
danielebarchiesi@4 124 }
danielebarchiesi@4 125 }
danielebarchiesi@4 126
danielebarchiesi@4 127 if ($striping) {
danielebarchiesi@4 128 $classes[] = strtr($stripes[$id % $striping], $replacements);
danielebarchiesi@4 129 }
danielebarchiesi@4 130
danielebarchiesi@4 131 if (!empty($classes)) {
danielebarchiesi@4 132 $vars['row_attributes'][$id]['class'] = implode(' ', $classes);
danielebarchiesi@4 133 }
danielebarchiesi@4 134 }
danielebarchiesi@4 135 }