Jump to content


Photo
- - - - -

При импорте не применяется свойство Add Protocol "Yes" в элементе Link

импорт

Best Answer SmetDenis , 31 March 2015 - 07:22

Импорт сохраняет данные на сайте в формате "как есть", т.е обходит валидаторы элементов, коих огромное количество.

На мой взгляд тут два решения
- Во время импорта проверять наличие "http://"
- Либо в шаблоне перед выводом в шаблоне добавлять "http://"

Т.к вы уже импортировали контент то проще воспользоваться вторым методом.

В файле media\zoo\elements\link\tmpl\link.php
Вместо строки

echo '<a href="'.JRoute::_($this->get('value', '')).'" title="'.$this->getTitle().'" '.$target.' '. $rel .'>'.$this->getText().'</a>';
Использовать
$url = $this->get('value', '');
if (strpos($url, 'http:') !== 0) {
    $url = 'http://' . $url;
}
echo '<a href="' . $url . '" title="'.$this->getTitle().'" '.$target.' '. $rel .'>'.$this->getText().'</a>';
Go to the full post


  • This topic is locked This topic is locked
1 reply to this topic

#1 Antonio

Antonio
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 69
  • topics: 26

Posted 29 March 2015 - 00:57

Добрый день.

 

Нашел проблему. Не знаю, можно ли это считать багом...

 

Произвожу импорт csv по средствам JBZoo. В файле есть столбик "Сайт" для наших партнеров, я его указываю в формате partnersite.com (без http и без www). Импорт передает эту ячейку из файла как есть, не добавляя автоматом http:// согласно свойству Add Protocol элемента Link в редакторе элементов.

 

Т.е. если после импорта заглянуть в Итем, то будет в строке "Сайт" partnersite.com

 

В итоге получается во фронт-енде линк вида mysite.com/partnersite.com, что ведет на страницу 404, а не на сайт партнера)))


  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 31 March 2015 - 07:22   Best Answer

Импорт сохраняет данные на сайте в формате "как есть", т.е обходит валидаторы элементов, коих огромное количество.

На мой взгляд тут два решения
- Во время импорта проверять наличие "http://"
- Либо в шаблоне перед выводом в шаблоне добавлять "http://"

Т.к вы уже импортировали контент то проще воспользоваться вторым методом.

В файле media\zoo\elements\link\tmpl\link.php
Вместо строки
echo '<a href="'.JRoute::_($this->get('value', '')).'" title="'.$this->getTitle().'" '.$target.' '. $rel .'>'.$this->getText().'</a>';
Использовать
$url = $this->get('value', '');
if (strpos($url, 'http:') !== 0) {
    $url = 'http://' . $url;
}
echo '<a href="' . $url . '" title="'.$this->getTitle().'" '.$target.' '. $rel .'>'.$this->getText().'</a>';

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.






Click to return to top of page in style!