Создаю views'ы для вывода контента
После окончания работ над сайтом университета появилась довольна приличная куча вьюсов.
Основное их назначение - красиво попадать в табы от quick tabs. Есть ещё пара-тройка вспомогательных для "атипичных" подразделений учебного заведения.

Сдесь опишу парочку самых весёлых.
Простой views, который выбирает одно или более полей для вывода его в нужно табе quick tab'а. Данный пример формирует табик "О кафедре".
Сам вьюс:

Результат его работы:

Теперь рассмотрим более навороченный. Этот вьюс выводит сотрудников кафедры. Навороченность заключается в том, что в теме осуществляется перелопачивание вывода.
Сам вьюс:

Подробнее о полях. Первое содержит анонс, который выводится над списком людей кафедры. Выделенное поле собственно содержит список сотрудников.
Его вывод:

Таблица формируется из шаблона на базе nid сотрудника.
Происходит это следующим образом: в файле views-view-field.tpl.php произвожу вызов моей функции из template.php, которая кардинальным образом переопределят внешний вид. Использую в случаях, когда приатаченный вьюс уже не помогает.
<?php
// $Id: views-view-field.tpl.php,v 1.1 2008/05/16 22:22:32 merlinofchaos Exp $
/**
* This template is used to print a single field in a view. It is not
* actually used in default Views, as this is registered as a theme
* function which has better performance. For single overrides, the
* template is perfectly okay.
*
* Variables available:
* - $view: The view object
* - $field: The field handler object that can process the input
* - $row: The raw SQL result that can be used
* - $output: The processed output that will normally be used.
*
* When fetching output from the $row, this construct should be used:
* $data = $row->{$field->field_alias}
*
* The above will guarantee that you'll always get the correct data,
* regardless of any changes in the aliasing that might happen if
* the view is modified.
*/
if(!empty($field->content_field['field_name'])){
switch($field->content_field['field_name']){
case 'field_kafedra_sotrudniki_prepod':
if(!empty($field->field_values[$row->nid])){
$output=_batu_getEmployeeSotrudnikiKafedraDataById($field->field_values[$row->nid]);
}
break;
}
}
print $output;
?>
А вот и функция, которая формирует таблицу на базе массива nid'ов сотрудников.
<?php
function _batu_getEmployeeSotrudnikiKafedraDataById($aId,$bTitle=true,$bUrl=true){
global $base_url;
$out='';
// print_r($aId);
if(!empty($aId[0]['nid'])){
$out.='<div class="field-items">';
$out.='<table>';
$out.='<tr><th>Фамилия Имя Отчество</th><th>Учёное звание<br />Учёная степень</th><th>Телефон</th></tr>';
$zebra='even';
foreach($aId as $key=>$aValue){
if(!empty($aValue['nid'])){
$nId=$aValue['nid'];
if($zebra=='even'){
$zebra='odd';
}else{
$zebra='even';
}
$out.='<tr class="field-item '.$zebra.'">';
$employee=node_load($nId);
if(!empty($employee)){
if($bTitle){
$out.='<td>';
if($bUrl){
$out.='<a href="'.url('node/'.$nId).'">'.$employee->title.'</a>';
}else{
$out.=$employee->title;
}
$out.='</td>';
}
$out.='<td>';
// $out.=print_r($employee->taxonomy,true);
if(!empty($employee->taxonomy[8]->name)){
$out.=$employee->taxonomy[8]->name;
if(!empty($employee->taxonomy[11]->name)){
$out.='<br />';
}
}
if(!empty($employee->taxonomy[11]->name)){
$out.=$employee->taxonomy[11]->name;
}
$out.='</td><td>';
if(!empty($employee->field_employee_phone_work[0]['value'])){
$out.=$employee->field_employee_phone_work[0]['value'];
}
$out.='</td>';
// echo '<pre>';
// print_r($employee);
// print_r($row);
// print_r($field);
// echo '</pre>';
}
$out.='</tr>';
}
}
$out.='</table>';
$out.='</div>';
}
return $out;
}
?>
Устал. Допишу позже...




Обзор AgeStar NSB3AS1T NAS для 3.5" SATA HDD
Комментариев и оценок: 183
Обзор AgeStar NSB3AS1T NAS для 3.5" SATA HDD - сетевого хранилища на базе 3.5" SATA HDD с возможностью подключения по USB. 10/100 Mbit, SATA 3.5"
AgeStar FUBCP USB2.0 to IDE/SATA Adapter
Комментариев и оценок: 93
AgeStar FUBCP - подключение IDE или SATA 2.5",3.5" или 5.25" устройств через USB
Обзор жесткого диска HDD 2ТБ Western Digital WD20EARS
Комментариев и оценок: 73
Краткий обзор жесткого диска HDD 2ТБ Western Digital WD20EARS-00MVWB0 с фотографиями и тестами производительности.Многофункциональное устройство Canon LaserBase MF3228
Комментариев и оценок: 52
Многофункциональное устройство Canon LaserBase MF3228. Описание, впечатления от работы, ссылка на драйвера.
AgeStar SUB2O1 2.5" SATA External Enclosure
Комментариев и оценок: 51
Обзор с картинками и тестами AgeStar SUB201 - внешней USB коробки для 2.5" SATA винчестеров.