0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 1620 Просмотров
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Доброго времени суток.

Решил завязать сайт с профилем Google+. Для этого реши сделать обычный контакт через com_contact.
Но возник вопрос - как разделить запрос выводящий поля "Название ссылки A + URL ссылки A" от остальных таких же полей.
Код: php
            <?php
   foreach(range('a', 'e') as $char) :// letters 'a' to 'e'
   $link = $this->contact->params->get('link'.$char);
   $label = $this->contact->params->get('link'.$char.'_name');

   if( ! $link) :
       continue;
   endif;

   // Add 'http://' if not present
   $link = (0 === strpos($link, 'http'))? $link : 'http://'.$link;

   // If no label is present, take the link
   $label = ($label)? $label : $link;
   ?>
<li>
<a target="_blank" href="<?php echo $link; ?>">
   <?php echo $label;  ?>
</a>
</li>
<?php endforeach; ?>







Для "URL ссылки A" нужно добавить rel="me" к <a target="_blank" href="<?php echo $link; ?>"> .
Но как при этом не затронуть остальные урлы ?

Спасибо.
« Последнее редактирование: 21.06.2012, 16:10:08 от ViktorMah »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Изменения default_links в com_contact
« Ответ #1 : 21.06.2012, 01:56:48 »
Код: php-brief
<?php
   foreach(range('a', 'e') as $char) :// letters 'a' to 'e'
   $link = $this->contact->params->get('link'.$char);
   $label = $this->contact->params->get('link'.$char.'_name');

   if( ! $link) :
       continue;
   endif;

   // Add 'http://' if not present
   $link = (0 === strpos($link, 'http'))? $link : 'http://'.$link;

   // If no label is present, take the link
   $label = ($label)? $label : $link;
   ?>
<li>
<a href="<?php echo $link; ?>" <?php if ($char=='a') echo 'rel="me" target="_blank" '; ?>>
   <?php echo $label;  ?>
</a>
</li>
<?php endforeach; ?>
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Re: Изменения default_links в com_contact
« Ответ #2 : 21.06.2012, 03:13:31 »
До чегоже всё просто оказалось.
Спасибо.
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
И ещё один вопросик по тойже  теме.
Шаблон статьи - "Автор выводится ссылкой" нужно к этой ссылке добавить - rel="author"
Код: php
<dd class="createdby">
<?php $author = $this->item->created_by_alias ? $this->item->created_by_alias : $this->item->author; ?>
<?php if (!empty($this->item->contactid) && $params->get('link_author') == true): ?>
<?php
$needle = 'index.php?option=com_contact&view=contact&id=' . $this->item->contactid;
$item = JSite::getMenu()->getItems('link', $needle, true);
$cntlink = !empty($item)? $needle . '&Itemid=' . $item->id : $needle;
?>
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', JHtml::_('link', JRoute::_($cntlink), $author)); ?>
<?php else: ?>
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', $author); ?>
<?php endif; ?>
</dd>
Держать в статьях внешнюю ссылку, пусть даже на Google, как-то не очень хочется
Спасибо
« Последнее редактирование: 21.06.2012, 04:10:35 от ViktorMah »
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Я понимаю, что rel="author" нужно вывести в

Код: php
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY', JHtml::_('link', JRoute::_($cntlink), $author)); ?>

а для этого необходимо переработать

Код: php
$needle = 'index.php?option=com_contact&view=contact&id=' . $this->item->contactid;

Но знаний да и фантазии не хватает, чтобы понять КАК  :'(
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Попробуй заменить вывод ссылки. К примеру так:
Код: php-brief
<?php echo '<a href="'.JRoute::_($cntlink).'" title="'.$author.'" rel="author">'.JText::_('COM_CONTENT_WRITTEN_BY').$author.'</a>'; ?>
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Спасибо, работает почти на все сто.
За исключением маленького огреха - %s перед именем автора.

Ваш вариант выводит фразу - Автор: %sИмяАвтора единой ссылкой.
я позволил себе немного изменить структуру

Код: php
<?php echo JText::_('COM_CONTENT_WRITTEN_BY').'<a href="'.JRoute::_($cntlink).'" title="'.$author.'" rel="author">'.$author.'</a>'; ?>
Так получилось полное соответствие структуры - Автор:=обычный текст, а имя автора ссылка

Но %s от этого не пропал. Запрятан он где-то здесь   JText::_('COM_CONTENT_WRITTEN_BY').      так как HTML код получается такой
Код: html4strict

<dd class="createdby">
Автор: %s
<a rel="author" title="Autor " href="/autor">Autor </a>
</dd>

*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Так замените вместо JText::_('COM_CONTENT_WRITTEN_BY') словом автор
или ищите в папке language определение текстового значения 'COM_CONTENT_WRITTEN_BY' и поменяйте как вам нужно
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Спасибо вам огромное Poznakomlus  :D :D :D
Совсем позабыл о том, что часто в языковых файлах применяют %S(по умолчанию на этом месте выводится переменная)
Удалил в language\ru-RU\ru-RU.com_content.ini строка 55
Код
Было
COM_CONTENT_WRITTEN_BY="Автор: %s"

стало
COM_CONTENT_WRITTEN_BY="Автор: "

На этом всё - привязка профиля Google+ к автору статей в Joomla используя страницу "КОНТАКТ пользователя"=страница Автора(Профиль) в компоненте КОНТАКТЫ прошла успешно.
 *DRINK*
« Последнее редактирование: 21.06.2012, 16:14:41 от ViktorMah »
*

ViktorMah

  • Захожу иногда
  • 253
  • 30 / 0
Вспомнил, что забыл поделиться как выводил ещё и даты создания/модификации/публикации
Всё в том же файле название_шаблона/html/com_content/article/default.php
находим блок:
Код: php
<?php if ($params->get('show_create_date')) : ?>
<dd class="create">
<?php echo JText::sprintf('COM_CONTENT_CREATED_DATE_ON', JHtml::_('date',$this->item->created, JText::_('DATE_FORMAT_LC2'))); ?>
</dd>
<?php endif; ?>
<?php if ($params->get('show_modify_date')) : ?>
<dd class="modified">
<?php echo JText::sprintf('COM_CONTENT_LAST_UPDATED', JHtml::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?>
</dd>
<?php endif; ?>
<?php if ($params->get('show_publish_date')) : ?>
<dd class="published">
<?php echo JText::sprintf('COM_CONTENT_PUBLISHED_DATE', JHtml::_('date',$this->item->publish_up, JText::_('DATE_FORMAT_LC2'))); ?>
</dd>
<?php endif; ?>

и заменил на:

Код: php
<?php if ($params->get('show_create_date')) : ?>
<dd class="create">
<?php echo JText::_('COM_CONTENT_CREATED_DATE_ON'). '<span itemprop="dateCreated">' . JHtml::_('date',$this->item->created, JText::_('DATE_FORMAT_LC2')). '</span>'; ?>
</dd>
<?php endif; ?>
<?php if ($params->get('show_modify_date')) : ?>
<dd class="modified">
<?php echo JText::_('COM_CONTENT_LAST_UPDATED'). '<span itemprop="dateModified">' . JHtml::_('date',$this->item->modified, JText::_('DATE_FORMAT_LC2')). '</span>'; ?>
</dd>
<?php endif; ?>
<?php if ($params->get('show_publish_date')) : ?>
<dd class="published">
<?php echo JText::_('COM_CONTENT_PUBLISHED_DATE'). '<span itemprop="datePublished">' . JHtml::_('date',$this->item->publish_up, JText::_('DATE_FORMAT_LC2')). '</span>'; ?>
</dd>
<?php endif; ?>
и также вносим правку в языковой переменной COM_CONTENT_CREATED_DATE_ON , COM_CONTENT_LAST_UPDATED , COM_CONTENT_PUBLISHED_DATE и  убираем %s

Спасибо вам огромное Poznakomlus
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Как в Joomla 2.5 автоматом удалять пользователей, не активировавшихся?

Автор pH43

Ответов: 2
Просмотров: 2821
Последний ответ 01.06.2020, 17:16:26
от pH43
В Google Chrome некорректно работает админка

Автор Dorotar

Ответов: 1
Просмотров: 945
Последний ответ 09.02.2020, 10:49:15
от Dorotar
[Баг - не решено] Копировать пункт в другое меню с тем же алиасом?

Автор ELLE

Ответов: 104
Просмотров: 18039
Последний ответ 14.05.2019, 15:06:50
от voland
JoomShoping решено

Автор igor_kozovyi4

Ответов: 0
Просмотров: 1058
Последний ответ 08.12.2018, 23:06:25
от igor_kozovyi4
Форма обратной связи с присвоением номеров обращений

Автор PeterGriffin

Ответов: 3
Просмотров: 1692
Последний ответ 08.12.2017, 14:32:22
от forregg4