Лучший Ответ SmetDenis , 03 November 2015 - 08:02
Немного переделал весь класс. Попробуйте Перейти к сообщению
Лучший Ответ SmetDenis , 03 November 2015 - 08:02
Немного переделал весь класс. Попробуйте Перейти к сообщению
Отправлено 21 October 2015 - 14:16
Всем привет!
Занимаюсь каталогом программ и у меня есть тривиальная, на первый взгляд, проблема.
Элемент ссылка не импортируется/экспортируется и не умеет включать анкоры с фронта.
А именно анкоры для меня важны. Будь то название разработчика и ссылка на его сайт, или кнопка (особенно если несколько) скачивания с пояснением что будет скачано (например сама программа, обновление к ней, локализация).
Хочу спросить, может кто решал эту задачу или знает рецепт?
Особенная проблема в том, некоторые разработчики меняют ссылки на новые версии файлов. А я работаю пакетно: спарсил набор данных (например: версия и ссылка/ссылки) и все обновляю импортом. А элемент Ссылка не умеет получать анкоры с CSV.
Как сделать нормальные кнопки с ссылками и анкорами?
Отправлено 22 October 2015 - 00:14
Пробовали поизвощаться с элементом download?
Он ведь позволяет прикреплять только локальные файлы. А у меня должны быть только ссылки на удаленные файлы.
Отправлено 27 October 2015 - 13:47
/** * @param $value * @param null $position * @return Item|void */ public function fromCSV($value, $position = null) { if (strpos($value, JBCSVItem::SEP_CELL) === false) { $text = ''; $link = $value; } else { list($link, $text) = explode(JBCSVItem::SEP_CELL, $value); } $this->_element->bindData(array( 'text' => $this->_getString($text), 'value' => $this->_getString($link), )); return $this->_item; }В импортируемом файле ссылка может выглядеть как
http://site.com/ либо http://site.com/|||Текст ссылки
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 29 October 2015 - 18:47
Работа со ссылкой происходит в этом классе
media\zoo\applications\jbuniversal\framework\elements\user\link.php
Попробуйте добавить функцию/** * @param $value * @param null $position * @return Item|void */ public function fromCSV($value, $position = null) { if (strpos($value, JBCSVItem::SEP_CELL) === false) { $text = ''; $link = $value; } else { list($link, $text) = explode(JBCSVItem::SEP_CELL, $value); } $this->_element->bindData(array( 'text' => $this->_getString($text), 'value' => $this->_getString($link), )); return $this->_item; }В импортируемом файле ссылка может выглядеть какhttp://site.com/ либо http://site.com/|||Текст ссылки
Добавил. При попытке экспорта (для того, сделать файл импорта) получаю ошибку:
Parse error: syntax error, unexpected 'public' (T_PUBLIC) in /*******************/public_html/media/zoo/applications/jbuniversal/framework/elements/user/link.php on line 40
И ошибка, когда добавил функцию в класс JBCSVItemUserLink
Parse error: syntax error, unexpected end of file, expecting function (T_FUNCTION) in /*************************/public_html/media/zoo/applications/jbuniversal/framework/elements/user/link.php on line 52
Сообщение отредактировал inte: 29 October 2015 - 18:54
Отправлено 30 October 2015 - 08:49
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 30 October 2015 - 10:42
Добавил. При попытке экспорта (для того, сделать файл импорта) получаю ошибку:
Parse error: syntax error, unexpected 'public' (T_PUBLIC) in /*******************/public_html/media/zoo/applications/jbuniversal/framework/elements/user/link.php on line 40И ошибка, когда добавил функцию в класс JBCSVItemUserLink
Parse error: syntax error, unexpected end of file, expecting function (T_FUNCTION) in /*************************/public_html/media/zoo/applications/jbuniversal/framework/elements/user/link.php on line 52
Код, при котором возникала последняя ошибка:
<?php /** * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component * * @package jbzoo * @version 2.x Pro * @author JBZoo App http://jbzoo.com * @copyright Copyright (C) JBZoo.com, All rights reserved. * @license http://jbzoo.com/license-pro.php JBZoo Licence * @coder Denis Smetannikov <denis@jbzoo.com> */ // no direct access defined('_JEXEC') or die('Restricted access'); /** * Class JBCSVItemUserLink */ class JBCSVItemUserLink extends JBCSVItem { /** * Export data to CSV cell * @return string */ public function toCSV() { foreach ($this->_item->elements[$this->_identifier] as $key => $self) { $this->_item->elements[$this->_identifier][$key] = isset($self['value']) ? array('value' => rtrim($self['value'], '/')) : null; } return parent::toCSV(); } public function fromCSV($value, $position = null) { if (strpos($value, JBCSVItem::SEP_CELL) === false) { $text = ''; $link = $value; } else { list($link, $text) = explode(JBCSVItem::SEP_CELL, $value); } $this->_element->bindData(array( 'text' => $this->_getString($text), 'value' => $this->_getString($link), )); }
Ошибка:
Parse error: syntax error, unexpected end of file, expecting function (T_FUNCTION) in /*************/public_html/media/zoo/applications/jbuniversal/framework/elements/user/link.php on line 47
Сообщение отредактировал inte: 30 October 2015 - 10:44
Отправлено 02 November 2015 - 13:25
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
Отправлено 02 November 2015 - 19:21
Да, действительно, пропущена... Спасибо большое!
Но после исправления ошибки, к сожалению не работает импорт ссылок вообще. Ни http://site.com/, ни http://site.com/|||Текст ссылки. Пустой элемент, даже если в нем что-то до этого хранилось.
Но было бы шикарно, если бы элемент можно было и экспортировать.
Отправлено 03 November 2015 - 08:02 Лучший Ответ
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.