Jump to content


Photo
- - - - -

Условие публикации на странице тегов

tag

Best Answer Cheren-dow , 12 July 2016 - 15:38

IgorS, тип получить можно через 

$item->type; // это тип материала а не шаблона 

А узнать что это full можно через 

$task = $this->app->jbrequest->get('task');
if ($task == 'item') { // проверка на фулл

}

на странице категории task должен быть равен category - так вы можете узнать что это тизер.

Go to the full post


  • This topic is locked This topic is locked
7 replies to this topic

#1 IgorS

IgorS
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 33
  • topics: 7

Posted 04 July 2016 - 12:28

Здравствуйте!

 

В файле media/zoo/elements/link/tmpl/link.php произвожу проверку на вывод элемента в Категории или на странице Full (в карточке товара):

<?php
/**
 * @package   com_zoo
 * @author    YOOtheme http://www.yootheme.com
 * @copyright Copyright (C) YOOtheme GmbH
 * @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
 */

// no direct access
defined('_JEXEC') or die('Restricted access');

// init lightbox
if (!empty($rel)) {
	$rel = 'data-lightbox="' . $rel .'"';

	$this->app->document->addScript('assets:js/lightbox.js');
	$this->app->document->addStylesheet('assets:css/lightbox.css');
	$this->app->document->addScriptDeclaration("jQuery(function($) { $('[data-lightbox]').lightbox(); });");
}

$category_id = JRequest::getInt('category_id');
 
//Вывод на страницах категорий
if ($category_id != '0'){
	 echo '<a href="'.JRoute::_($this->get('value', '')).'" title="'.$this->getTitle().'" '.$target.' '. $rel .'><i class="uk-icon-file-pdf-o"></i></a>';
} else {
    // вывод в карточке товара
	echo '<a href="'.JRoute::_($this->get('value', '')).'" title="'.$this->getTitle().'" '.$target.' '. $rel .'><i class="uk-icon-download"></i>'.$this->getText().'</a>';
}

 Подскажите, пожалуйста, как в этот код добавить еще и проверку на вывод элемента Link на страницах тегов ("Материалы с меткой:")?

 

А лучше: как проверить тип материала (teaser, related, full)?

 

Спасибо!


Edited by IgorS, 04 July 2016 - 12:59.

  • 0

KidRepublic.ru - интернет-магазин детских товаров


#2 IgorS

IgorS
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 33
  • topics: 7

Posted 04 July 2016 - 14:34

Есть ли у кого-нибудь вариант решения задачи? Может, администраторы помогут?

Спасибо!


  • 0

KidRepublic.ru - интернет-магазин детских товаров


#3 IgorS

IgorS
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 33
  • topics: 7

Posted 05 July 2016 - 10:28

Up


  • 0

KidRepublic.ru - интернет-магазин детских товаров


#4 MOKEV

MOKEV
  • JBZoo User (rus)
  • User rate: 11.7
  • posts: 143
  • topics: 14

Posted 05 July 2016 - 11:39

Честно говоря не очень понятно, зачем вам проверять на вид шаблона. Разместите свой элемент в нужном шаблоне.

А если нужно условие на тип материала, то вот:

if (
            $item->type == 'название'
){
...;
}


  • 0

#5 IgorS

IgorS
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 33
  • topics: 7

Posted 05 July 2016 - 12:06

 

Честно говоря не очень понятно, зачем вам проверять на вид шаблона. Разместите свой элемент в нужном шаблоне.

А если нужно условие на тип материала, то вот:

if (
            $item->type == 'название'
){
...;
}

 

Evgeny_M, спасибо.

Попробую разместить в шаблоне.

 

А как получить (вызвать?) это свойство - тип материала - именно в элементе link?

Например, id категории получаю так: 

$category_id = JRequest::getInt('category_id');

Edited by IgorS, 05 July 2016 - 12:07.

  • 0

KidRepublic.ru - интернет-магазин детских товаров


#6 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 12 July 2016 - 14:16

IgorS, вы можете получить из реквеста только таск - это тизер или фулл с помощью:

$this->app->jbrequest->get('task'); 

для фулл это должно быть item а для категории, т.е списка или пустота или category. 


  • 1
Изображение
 

#7 IgorS

IgorS
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 33
  • topics: 7

Posted 12 July 2016 - 14:36

Cheren-dow, т.е. синтаксис/код должен выглядеть примерно так:

$item = $this->app->jbrequest->get('item');

if ($item->type == 'teaser') {
   echo ...;
}

else {...;}

Правильно?

 

(уже неделю зарекаюсь изучить работу с хелперами. ну, и php заняться вплотную :)  но ведь эти клиенты... (sweat)  чтоб им хорошо жилось!  :) )


Edited by IgorS, 12 July 2016 - 15:16.

  • 0

KidRepublic.ru - интернет-магазин детских товаров


#8 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 12 July 2016 - 15:38   Best Answer

IgorS, тип получить можно через 

$item->type; // это тип материала а не шаблона 

А узнать что это full можно через 

$task = $this->app->jbrequest->get('task');
if ($task == 'item') { // проверка на фулл

}

на странице категории task должен быть равен category - так вы можете узнать что это тизер.


  • 2
Изображение
 





Click to return to top of page in style!