- Друзья:
- Drupal cook book |
- Танцы с Друпалом |
- Уберкарт.ру |
- Сетегном |
- Карикатуры |
Links 2,3,4 (не Рамштайн)
- strict warning: Declaration of views_handler_field_user_name::init() should be compatible with views_handler_field_user::init(&$view, $data) in /var/www/shvabrashvabr.ru/sites/all/modules/views/modules/user/views_handler_field_user_name.inc on line 61.
- strict warning: Declaration of views_handler_argument_many_to_one::init() should be compatible with views_handler_argument::init(&$view, $options) in /var/www/shvabrashvabr.ru/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc on line 169.
Posted февраля 3rd, 2009 by zaraza
Хочу, чтобы под каждым сообщением была такая штука:
Поэтому мне очень не понравилась переменная $Links...но чую — что-то нужно делать подругому..
Отправляемся в template.php, чтобы добыть переменные:
Голосование:
/*
* Голосование для ноды
*/
function XXXXXthemeXXXXX_vote_up_down_widget_alt($cid, $type) {
global $user;
drupal_add_css(drupal_get_path('module', 'vote_up_down') .'/vote_up_down.css');
drupal_add_js(drupal_get_path('module', 'vote_up_down') .'/ajax_vote_up_down.js');
if (user_access('view up/down votes')) {
$output = '';
$output .= theme('vote_up_down_points_alt', $cid, $type);
$output .= '';
$output .= '';
if (user_access('use vote up/down') && ($user->uid || variable_get('vote_up_down_anonymous_vote', 0))) {
$criteria = array('content_type' => $type, 'content_id' => $cid, 'uid' => _vote_up_down_get_uid());
$user_vote = votingapi_select_single_vote_value($criteria);
if ($user_vote > 0) {
$class = 'vote-up-act';
$class2 = 'vote-down-inact';
}
else if ($user_vote < 0) {
$class = 'vote-up-inact';
$class2 = 'vote-down-act';
}
else {
$class = 'vote-up-inact';
$class2 = 'vote-down-inact';
}
$output .= ''. l('', "vote_up_down/$type/$cid/1", array('class' => $class, 'title' => t('Vote up')), drupal_get_destination(), NULL, FALSE, TRUE) .'';
$output .= ''. l('', "vote_up_down/$type/$cid/-1", array('class' => $class2, 'title' => t('Vote down')), drupal_get_destination(), NULL, FALSE, TRUE) .'';
}
else {
$output .= '';
$output .= '';
}
$output .= '';
return $output;
}
}
function XXXXXthemeXXXXX_vote_up_down_points_alt($cid, $type) {
$criteria = array('content_type' => $type, 'content_id' => $cid, 'value_type' => 'points', 'tag' => variable_get('vote_up_down_tag', 'vote'), 'function' => 'sum');
$vote_result = votingapi_select_single_result_value($criteria);
if ($vote_result) {
$output = ''. $vote_result .'';
}
else {
$output = '0';
}
return $output;
}
Ещё часть переменных изменяем в темплейт.пхп
(верхняя часть: до $Links гордо с###ена отсюда:www.hotel-prog.ru):
/******************************************************
* Переопределение переменных для вывода материала (ноды)
******************************************************/
function XXXXXthemeXXXXX_preprocess_node(&$variables,$hook) {
//drupal_set_message(''.print_r($variables,1).'');
/*
* Если это не вывод ноды и материал не помещается полностью в вывод,
* то убираем ссылку на добавление комментария, так как
* не прочитав материал целиком, не логично давать коментировать :)
*/
if($variables['page']==0 && isset($variables['node']->links['node_read_more'])) {
unset($variables['node']->links['comment_add']);
}
/*
* Если это тизер и есть линк на node_read_more
* то формируем свою ссылку XXXXXthemeXXXXX_node_read_more
*/
if(isset($variables['node']->links['node_read_more']) && $variables['teaser']==1){
$variables['XXXXXthemeXXXXX_node_read_more']=l(
' » '.$variables['node']->links['node_read_more']['title'],
$variables['node']->links['node_read_more']['href'],
array('attributes'=>array(
'title'=>$variables['node']->links['node_read_more']['attributes']['title'],
'class'=>'node-more-read')
)
);
/*
* Убираем лишнии параграф (теги из тизера)
*/
$variables['content']=preg_replace('#\\s*(.*?)\s*\<\/p\>#si','\\1',$variables['node']->teaser);
}
/*
* Формируем дополнительные переменные, которые мы будем использовать в node.tpl.php вместо переменной links
*/
/******* User - date ********/
$variables['stamp_date']=$variables['date'];
$variables['stamp_user']=$variables['name'];
/******* Blog ********/
$variables['blog_url'] = 'blog/'.$uid;
$variables['blog_url'] = drupal_get_path_alias($blog_url);
$variables['stamp_blog'] = ' |Блог|';
/******* TAG Cloud ********/
$variables['stamp_tags'] = '';
$variables['stamp_tags'] .= '';
$variables['stamp_tags'] .= $terms;
$variables['stamp_tags'] .= '';
$variables['stamp_tags'] .= '';
}
Остальные переменные у меня остались жить в фале node.tpl.php - верхняя часть:
<?php
/******* Comments ********/
$stamp_comments = '— ';
$stamp_comments .= $comment_count;
$stamp_comments .= '('.comment_num_new($node->nid).')';
$stamp_comments .= '';
/******* Vote ********/
$stamp_vote = '';
$stamp_vote .= theme("vote_up_down_widget_alt", $node->nid, 'node');
$stamp_vote .= '';
/******* TAG Cloud ********/
$stamp_tags = '';
$stamp_tags .= '';
$stamp_tags .= $terms;
$stamp_tags .= '';
$stamp_tags .= '';
/******* Unpublished ********/
if ($unpublished) $stamp_unpublished = '' .t('Unpublished') .'';
/******* STAMP ********/
$node_stamp = '';
$node_stamp .= $stamp_vote;
$node_stamp .= '';
$node_stamp .= $stamp_tags;
$node_stamp .= $stamp_date;
$node_stamp .= ' — ';
$node_stamp .= $stamp_user;
$node_stamp .= $stamp_blog;
$node_stamp .= $stamp_comments;
$node_stamp .= $stamp_unpublished;
$node_stamp .= '';
$node_stamp .= '';
Формируем ссылку по принципу:
Коллективные блог → Название,
а если коллективного блога нет, тогда:
Автор → Название
/******* TITLE -> URL ********/
if(isset($node->og_groups)){
foreach($node->og_groups as $k) {
$gid = $k;
}
$group_url = "node/" . $gid;
$group_url = drupal_get_path_alias($group_url);}
if ($page == 0):
$node_title = '';
if(isset($og_links)):
$node_title .= '';
$node_title .= $node->og_groups_both[$gid];
$node_title .= '';
else:
$node_title .= $name;
endif;
$node_title .= '→';
$node_title .= '';
$node_title .= $title;
$node_title .= '';
$node_title .= '';
endif;
?>
и соответственно основа файла node.tpl.php:
nid; ?>" class="blog node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
<?php if ($picture) print $picture; ?>
<?php print $node_title ?>
<?php print $content .$XXXXXthemeXXXXX_node_read_more;?>
<?php print $node_stamp ?>
К сожалению моих знаний не хватает, чтобы перенести все переменные в template.php. Буду благодарен за советы как это сделать, . Оно конечно работает и так, но хочется, чтобы всё было "правильно".
Внешний вид контента на данный момент у меня такой: http://linux-way.ru/upload/all.gif (просто нарезка без особого оформления)
ПС: Ромке за проделаную работу респектище!!!
Комментарии
Ничего не понятно! Какие строки на что заменять, куда именно добавлять. А выложите просто изменённые файлы пожалуйста! Очень надо! Ромка, автор темы!
И глупый вопрос: css для того вида нужно выложить?
Думаю это может показаться интересным посетителям :))