Пишу сюда, но тема комплексная

Прислано: Rossini

пт, 19/09/2008 - 11:41

Другие статьи по теме:

Задача: чтобы сделать четыре скругленных угла у пункта меню, надо добавить еще два пустых тега ins или span.

Условно говоря, мы имеем следующий html-код для меню:

<ul id="primary">
    <li class="menu-1-2-2">
       <a href="/node/1>item one</a>
    </li>
  </ul>

Чтобы добавить круглые углы надо сделать так:

<ul id="primary">
  <li class="menu-1-2-2">
   <ins>
     <ins>
       <a href="/node/1>item one</a>
     </ins>
    </ins>
  </li>
 </ul>

Так, как же добавить два этих пустых тэга ins в page.php.tpl, если там видим только следующее:

<?php print theme('links'), $primary_links) ?>

Как добавить туда тэги ins ?

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Химический Али в пт, 19/09/2008 - 12:00.

зайдите к теме лебедеву, в техногрете последняя статья по вашей теме


Опубликовано Rossini в пт, 19/09/2008 - 12:15.

Я не разбираюсь в php. Я знаю про эту статью. Я не знаю как поправить php этот код:

<?php print theme('links'), $primary_links) ?>


Опубликовано Ромка в пт, 19/09/2008 - 12:46.

Строчка

<?php print theme('links'), $primary_links) ?>

Означает, что Друпал последовательно попытается вызвать одну из функций:

  • ИМЯ_ТЕМЫ_links();
  • phptemplate_links();
  • theme_links();

Если первой функции нет, то ищется вторая, если второй нет, то берется третья.

Первая или вторая ищутся в template.php темы, третья — функция ядра. Возьми функцию theme_links скопируй ее в свой template.php либо под именем ИМЯ_ТЕМЫ_links, либо под именем phptemplate_links и добавляй в нее нужный хтмл-код.


Опубликовано Rossini в пт, 19/09/2008 - 13:02.

Так, ну а если я в файле page.tpl.php меняю

<?php print theme('links'), $primary_links) ?>

на такой код, как:
<? php if (count($primary_links)) : ?>
<ul id="primary">
	<?php foreach ($primary_links as $link) : ?>
		<li><?php print $link?></li>
	<?php endforeach; ?>
</ul>
<?php endif; ?>

Прямолинейно, правда, но зато понятно, куда пустые вспомогательные теги вставлять.
Как, проканает?


Опубликовано olk в пт, 19/09/2008 - 13:41.

Можно , но не "кашерно", вы многих моментов можете этим кодом упустить :)
а что не уж то трудно как Ромка посоветовал ? функция то не очень сложная, помещаете в template.php вашей темы функцию

<?php
/**
 * Return a themed set of links.
 *
 * @param $links
 *   A keyed array of links to be themed.
 * @param $attributes
 *   A keyed array of attributes
 * @return
 *   A string containing an unordered list of links.
 */

function phptemplate_links($links$attributes = array('class' => 'links')) {
  
$output '';

  if (
count($links) > 0) {
    
$output '<ul'drupal_attributes($attributes) .'>';

    
$num_links count($links);
    
$i 1;

    foreach (
$links as $key => $link) {
      
$class $key;

      
// Automatically add a class to each link and also to each LI
      
if (isset($link['attributes']) && isset($link['attributes']['class'])) {
        
$link['attributes']['class'] .= ' ' $key;
      }
      else {
        
$link['attributes']['class'] = $key;
      }

      
// Add first and last classes to the list of links to help out themers.
      
$extra_class '';
      if (
$i == 1) {
        
$extra_class .= 'first ';
      }
      if (
$i == $num_links) {
        
$extra_class .= 'last ';
      }
      
$output .= '<li 'drupal_attributes(array('class' => $extra_class $class)) .'>';

      
// Is the title HTML?
      
$html = isset($link['html']) && $link['html'];

      
// Initialize fragment and query variables.
      
$link['query'] = isset($link['query']) ? $link['query'] : NULL;
      
$link['fragment'] = isset($link['fragment']) ? $link['fragment'] : NULL;

      if (isset(
$link['href'])) {
        
$output .= l($link['title'], $link['href'], $link['attributes'], $link['query'], $link['fragment'], FALSE$html);
      }
      else if (
$link['title']) {
        
//Some links are actually not links, but we wrap these in <span> for adding title and class attributes
        
if (!$html) {
          
$link['title'] = check_plain($link['title']);
        }
        
$output .= '<span'drupal_attributes($link['attributes']) .'>'$link['title'] .'</span>';
      }

      
$i++;
      
$output .= "</li>\n";
    }

    
$output .= '</ul>';
  }

  return 
$output;
}
?>

правите как вам надо, сбрасывете кэш и ву а ля


Опубликовано vitvas в ср, 12/11/2008 - 21:56.

2 olk: Подскажите, пожалуйста, А где/как в этом коде можно найти построение ссылки "Читать далее", и затем изменить текстовое отображение ссылки на графику?


Опубликовано Магомед в сб, 18/12/2010 - 06:42.

А как вызвать его page.tpl.php


Опубликовано Artu в ср, 16/03/2011 - 21:12.

Помогло то что написал Ромка 19/09/2008 - 14:46
Перед этим перешерстил кучу тем.
Нужно прочитать внимательно.

Там и вызов и переопределение.

Для 6-ки работает.