Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод в карточку товара кнопки редактировать и SKU как ссылка


Recommended Posts

Добрый день!

Моя цель вывести в карточке товара кнопку "Редактировать товар" - что уже сделал и кнопку-ссылку SKU (так как sku у меня это ссылки на товары на сайтах поставщиков), я собрал вот такую конструкцию

Спойлер

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Edit product button for product for Tech store</name>
	<code>edit-button-fron-end</code>
	<version>1.0</version>
	<author>Alexander Khvorov</author>
	<link>https://baconagency.ru</link>

	<file path="catalog/language/en-gb/product/product.php">
		<operation>
			<search><![CDATA[$_['error_rating']             = 'Warning: Please select a review rating!';]]></search>
			<add position="after">
				<![CDATA[// Edit product button
		$_['text_button_edit'] = 'Edit Product';
				]]>
				<![CDATA[// Product link
		$_['product_vendor_link'] = 'Vendor link';
				]]>
			</add>
		</operation>
	</file>
		<file path="catalog/language/ru-ru/product/product.php">
		<operation>
			<search><![CDATA[$_['error_rating']                            = 'Пожалуйста поставьте оценку!';]]></search>
			<add position="after">
				<![CDATA[// Edit product button
		$_['text_button_edit'] = 'Редактировать товар';
				]]>
								<![CDATA[// Product link
		$_['product_vendor_link'] = 'Ссылка на товар у поставщика';
				]]>
			</add>
		</operation>
	</file>

	<file path="catalog/controller/product/product.php">
		<operation>
			<search><![CDATA[$product_info = $this->model_catalog_product->getProduct($product_id);]]></search>
			<add position="after">
				<![CDATA[
				$data['button_edit_product'] = $this->language->get('text_button_edit');
				$data['product_vendor_link'] = $this->language->get('product_vendor_link');

				]]>
			</add>
		</operation>
				<operation>
			<search><![CDATA[$data['model'] = $product_info['model'];]]></search>
			<add position="after">
				<![CDATA[
				$data['sku'] = $product_info['sku'];
				]]>
			</add>
		</operation>
		<operation>
        	<search><![CDATA[if ($product_info) {]]></search>
        	<add position="after">
        		<![CDATA[
					if(!empty($this->session->data['user_id']) && !empty($this->session->data['token'])){
						$data['edit_product'] = '<a href="'.$this->url->linkEditProduct('catalog/product/edit', 'token=' . $this->session->data['token'].'&product_id='.$product_id, 'true').'" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['button_edit_product'].'</a>';
						$data['vendor_link'] = '<a href="" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['product_vendor_link'].'</a>';
					}

         		]]>
     		</add>
      	</operation>
   </file>

   <file path="system/library/url.php">
		<operation>
        	<search><![CDATA[public function link($route, $args = '', $secure = false) {]]></search>
         	<add position="before">
         	<![CDATA[public function linkEditProduct($route, $args = '', $secure = false) {
		if ($this->ssl && $secure) {
			$url = $this->ssl . 'admin/index.php?route=' . $route;
		} else {
			$url = $this->url . 'admin/index.php?route=' . $route;
		}

		if ($args) {
			if (is_array($args)) {
				$url .= '&amp;' . http_build_query($args);
			} else {
				$url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));
			}

						return $url;
					}
		}
         		]]>
         	</add>
		</operation>
	</file>

	<file path="catalog/view/theme/oct_techstore/template/product/product.tpl">
		<operation>
        	<search><![CDATA[<?php if ($disable_buy == 0) { ?>]]></search>
        	<add position="before" offset="1">
        	<![CDATA[<?php if(!empty($edit_product)){echo $edit_product; } ?>]]>
        	<![CDATA[<?php if(!empty($vendor_link)){echo $vendor_link; } ?>]]>
        	</add>
		</operation>
	</file>
</modification>

 

И единственное что не могу доделать - это ссылку вот в этом участке  - $data['vendor_link'] = '<a href="" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['product_vendor_link'].'</a>';

 

Уже перебрал море вариантов и раз 50 положил сайт )))

 

Помогите пожалуйста дописать кусочек.

Надіслати
Поділитися на інших сайтах


$data['vendor_link'] = '<a href="" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['product_vendor_link'].'</a>';

 

$data['vendor_link'] = '<a href="'.$data['product_vendor_link'].'" target="_blank" class="btn btn-warning btn-lg btn-block"></a>';
Надіслати
Поділитися на інших сайтах

13 минут назад, AlexDW сказал:

$data['vendor_link'] = '<a href="" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['product_vendor_link'].'</a>';

 


$data['vendor_link'] = '<a href="'.$data['product_vendor_link'].'" target="_blank" class="btn btn-warning btn-lg btn-block"></a>';

Такая конструкция просто поместит  текст "Ссылка на товар у поставщика", а мне нужно разместить туда sku, то есть что-то вроде -

$data['vendor_link'] = '<a href="'.$data['sku'].'" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['product_vendor_link'].'</a>';

но такая конструкция вызывает undefined index

Змінено користувачем khvoroffski
Надіслати
Поділитися на інших сайтах


4 минуты назад, AlexDW сказал:

так сделайте по-человечески - вывод в шаблоне, а через контроллер саму ссылку

А не понимаю как в шаблоне выводить только админу, так бы сделал просто через if admin (условно)

 

В шаблоне выводится вот так: 

<li class="product-info-li main-product-sku"><span><?php echo $text_sku; ?></span> <?php if ($oct_advanced_options_settings_data['allow_sku']) { ?><strong id="main-product-sku" style="font-weight: normal;" <?php if ($tech_pr_micro == "on") { ?> itemprop="sku"<?php } ?>><?php echo $sku; ?></strong><?php } else { ?><?php echo $sku; ?><?php } ?></li>

Я скрыл вывод вот так

	<file path="catalog/view/theme/oct_techstore/template/product/product.tpl">
		<operation>
                <search position="replace">
                <![CDATA[<li class="product-info-li main-product-sku"><span><?php echo $text_sku; ?></span> <?php if ($oct_advanced_options_settings_data['allow_sku']) { ?><strong id="main-product-sku" style="font-weight: normal;" <?php if ($tech_pr_micro == "on") { ?> itemprop="sku"<?php } ?>><?php echo $sku; ?></strong><?php } else { ?><?php echo $sku; ?><?php } ?></li>]]>
             </search>
                <add>
                <![CDATA[]]>
             </add>
            </operation>
	</file>

наверное можно как-то просто обернуть в if(....и скрывать от посетителей, но как я не знаю(т.к. с опенкартом плохо знаком), поэтому и выдумываю схемы ))

Надіслати
Поділитися на інших сайтах


Сделал:

Спойлер

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Edit product button for product for Tech store</name>
	<code>edit-button-fron-end</code>
	<version>1.0</version>
	<author>Alexander Khvorov</author>
	<link>https://baconagency.ru</link>

	<file path="catalog/language/en-gb/product/product.php">
		<operation>
			<search><![CDATA[$_['error_rating']             = 'Warning: Please select a review rating!';]]></search>
			<add position="after">
				<![CDATA[// Edit product button
		$_['text_button_edit'] = 'Edit Product';
				]]>
				<![CDATA[// Product link
		$_['product_vendor_link'] = 'Vendor link';
				]]>
			</add>
		</operation>
	</file>
		<file path="catalog/language/ru-ru/product/product.php">
		<operation>
			<search><![CDATA[$_['error_rating']                            = 'Пожалуйста поставьте оценку!';]]></search>
			<add position="after">
				<![CDATA[// Edit product button
		$_['text_button_edit'] = 'Редактировать товар';
				]]>
								<![CDATA[// Product link
		$_['product_vendor_link'] = 'Ссылка на товар у поставщика';
				]]>
			</add>
		</operation>
	</file>

	<file path="catalog/controller/product/product.php">
		<operation>
			<search><![CDATA[$product_info = $this->model_catalog_product->getProduct($product_id);]]></search>
			<add position="after">
				<![CDATA[
				$data['button_edit_product'] = $this->language->get('text_button_edit');
				$data['product_vendor_link'] = $this->language->get('product_vendor_link');

				]]>
			</add>
		</operation>
				<operation>
			<search><![CDATA[$data['model'] = $product_info['model'];]]></search>
			<add position="after">
				<![CDATA[
				$data['sku'] = $product_info['sku'];
				]]>
			</add>
		</operation>
				<operation>
        	<search><![CDATA[$data['points'] = $product_info['points'];]]></search>
        	<add position="after">
        		<![CDATA[
					if(!empty($this->session->data['user_id']) && !empty($this->session->data['token'])){
				$data['vendor_link'] = '<a href="'.$data['sku'].'" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['product_vendor_link'].'</a>';
					}

         		]]>
     		</add>
      	</operation>
		<operation>
        	<search><![CDATA[if ($product_info) {]]></search>
        	<add position="after">
        		<![CDATA[
					if(!empty($this->session->data['user_id']) && !empty($this->session->data['token'])){
						$data['edit_product'] = '<a href="'.$this->url->linkEditProduct('catalog/product/edit', 'token=' . $this->session->data['token'].'&product_id='.$product_id, 'true').'" target="_blank" class="btn btn-warning btn-lg btn-block">'.$data['button_edit_product'].'</a>';
					}

         		]]>
     		</add>
      	</operation>
   </file>

   <file path="system/library/url.php">
		<operation>
        	<search><![CDATA[public function link($route, $args = '', $secure = false) {]]></search>
         	<add position="before">
         	<![CDATA[public function linkEditProduct($route, $args = '', $secure = false) {
		if ($this->ssl && $secure) {
			$url = $this->ssl . 'admin/index.php?route=' . $route;
		} else {
			$url = $this->url . 'admin/index.php?route=' . $route;
		}

		if ($args) {
			if (is_array($args)) {
				$url .= '&amp;' . http_build_query($args);
			} else {
				$url .= str_replace('&', '&amp;', '&' . ltrim($args, '&'));
			}

						return $url;
					}
		}
         		]]>
         	</add>
		</operation>
	</file>

	<file path="catalog/view/theme/oct_techstore/template/product/product.tpl">
		<operation>
        	<search><![CDATA[<?php if ($disable_buy == 0) { ?>]]></search>
        	<add position="before" offset="1">
        	<![CDATA[<?php if(!empty($edit_product)){echo $edit_product; } ?>]]>
        	<![CDATA[<?php if(!empty($vendor_link)){echo $vendor_link; } ?>]]>
        	</add>
		</operation>
	</file>
</modification>

 

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.