PHP/Example of overriding the default behavior of the class to display data in html

Материал из Laximo
Перейти к: навигация, поиск
На этой странице были произведены изменения, не отмеченные для перевода.

Другие языки:
English • ‎русский

Пример переопределения стандартного поведения классов отображения данных в html

Типовая задача, требующая решения - интеграция с интернет-магазином.
Для этого в списке деталей переопределяется функция DrawDetailCellValue - отображающая содержимое ячейки таблицы деталей,
которая, в случае отображения колонки cart, вставляет свою ссылку на добавление детали в корзину.
Для остальных колонок используется алгоритм отображения по умолчанию.

В указанном примере используется интеграция с VirtueMart через специальное представление,
проверяющее наличие детали в интернет-магазине VirtueMart, и, при отсутствии, регистрирующее ее непосредственно перед добавлением.

class GuayaquilDetailsListEx extends GuayaquilDetailsList
{
	function DrawJavaScript()
	{
		$this->AppendJavaScript(JPATH_SITE.DS.'components'.DS.'com_guayaquil'.DS.'views'.DS.'jquery.colorbox.js');
		$this->AppendCSS(JPATH_SITE.DS.'components'.DS.'com_guayaquil'.DS.'views'.DS.'colorbox.css');
 
$html = '<script type="text/javascript"> ';
		$html .= 'jQuery.noConflict(); ';
		$html .= 'jQuery(document).ready(function($){ ';
		$html .= '$(\'a.g_cart\').colorbox(); ';
		$html .= '}); ';
		$html .= '</script> ';
 
$html .= parent::DrawJavaScript();
 
return $html;
	}
 
function DrawDetailCellValue($detail, $column, $visibility, $replacement, $haschild, $isArray)
	{
		// Если это колонка с кнопкой "добавить в корзину", переопределяем ее содержимое
		if ($column == 'cart')
		{
		$link = 'index2.php?option=com_guayaquil&no_html&view=addtocart&r='
                .strtr(base64_encode('o@'.$this->getProperty($detail, 'oem', $isArray)
                .'|n@'.$this->getProperty($detail, 'name', $isArray).'|p@'.$this->getProperty($detail, 'price', $isArray)), '+/', '-_');
 
			return '<a class="g_cart" href="'.$link.'">
                               <img class="g_addtocart" src="'.$this->cartimage.'" width="22" height="22"></a>';
		}
 
// Используем для всех остальных колонок стандартное форматирование
		return parent::DrawDetailCellValue($detail, $column, $visibility, $replacement, $haschild, $isArray);
	}
}

Смотри так же

Функции веб-сервисов Laximo

Общая информация

Принципы работы Безопасность Локализация каталогов Обновление каталогов Обработка ошибок Подключение сервиса
Laximo.OEM Поиск каталога ListCatalogs,GetCatalogInfo
Поиск автомобиля FindVehicleByVIN,FindVehicleByFrame, GetWizard2, GetWizardNextStep2, FindVehicleByWizard2, GetVehicleInfo, ExecCustomOperation
Поиск узла ListUnits, ListCategories, GetFilterByUnit, GetUnitInfo
Поиск деталей в узле ListDetailByUnit, ListImageMapByUnit, GetFilterByDetail
Быстрый поиск деталей ListQuickGroup, ListQuickDetail
Laximo.Aftermarket Поиск деталей FindOEM, FindReplacements, FindDetail, FindOEMCorrection
Производитель ManufacturerInfo, ListManufacturer
Библиотеки и примеры использования веб-сервисов Laximo
PHP
Скачать
PHP-библиотеку
Примеры использования библиотеки Изменение поведения и внешнего вида элементов каталогов
GuayaquilExtender
Пример переопределения стандартного поведения классов отображения данных в html
Пример получения кроссов с LaximoAftermarket
Работа с каталогами на примере отображения списка каталогов
Скачать библиотеку ASP.NET ASP.NET Guayaquil library
Варианты внедрения сервисов Laximo в 1С

Связанные категории