Перейти к содержимому


Фотография
- - - - -

Убираем дубликат описание категории на 2 и следующих страницах

рецепт

Сообщений в теме: 14

#1 isay777

isay777

Отправлено 03 April 2014 - 13:53

Столкнулся с тем что яндекс отказывается индексировать (или выкладывать в поиск) дубли категории по страницам. Ну это и понятно это же практически полный дубль вида: 

 

 

​category/

category/2

​category/3

и так далее. 

 

Навеяно и полностью скопировано из этого топика , где sliapy дал отличный код и решение проблемы 

 

 

Можно, например, так:

 

Добавить в файл media/zoo/applications/jbuniversal/templates/catalog/renderer/category/_default.php

<?php if ($this->app->jbrequest->get('page')) :
    JFactory::getDocument()->setTitle($title.' - Страница '.$this->app->jbrequest->get('page'));
endif; ?>

Тайтл станет вида "Категория - Страница 2".
 
Это же условие можно добавить в вывод описания категории
 

<?php if (!$this->app->jbrequest->get('page') and (int)$vars['params']->get('template.category_text', 1) && $category->description) : ?>
	<div class="description-full"><?php echo $category->getText($category->description); ?></div>
<?php endif; ?>

 

Ибо пусть это будет в рецептах. Очень полезная штука. 


  • 4
ХОСТИНГ для сайтов jbzoo (все попугаи)

#2 Денн

Денн

Отправлено 28 May 2014 - 13:19

Не совсем понял в какую часть файла добавить код

<?php if ($this->app->jbrequest->get('page')) :
JFactory::getDocument()->setTitle($title.' - Страница '.$this->app->jbrequest->get('page'));endif; ?>

  • 0

#3 Cheren-dow

Cheren-dow

Отправлено 28 May 2014 - 13:21

Денн, сверху вставляйте 


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

#4 Денн

Денн

Отправлено 28 May 2014 - 14:28

Вставлял, вместо тайтла на вторых и следующих страницах появляется адрес страницы


Вот код файла _default.php на всякий случай

<?php
/**
 * JBZoo is universal CCK, application for YooTheme Zoo component
 * @package     JBZoo
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com
 * @license     http://www.gnu.org/licenses/gpl.html GNU/GPL
 */

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

$this->app->jbdebug->mark('layout::category::start');

// set vars
$category   = $vars['object'];
$title      = $this->app->string->trim($vars['params']->get('content.category_title',    ''));
$subTitle   = $this->app->string->trim($vars['params']->get('content.category_subtitle', ''));
$image      = $this->app->jbimage->get('category_image', $vars['params']);

if (!$title) {
    $title = $category->name;
}

?>
 
<?php if ((int)$vars['params']->get('template.category_show', 1)) : ?>
    <div class="category rborder alias-<?php echo $category->alias;?>">

        <h1 class="title"><?php echo $title; ?></h1>


        <?php if ((int)$vars['params']->get('template.category_subtitle', 1) && !empty($subTitle)) : ?>
            <h3 class="subtitle"><?php echo $subTitle; ?></h3>
        <?php endif; ?>


        <?php if ((int)$vars['params']->get('template.category_image', 1) && $image['src']) : ?>
            <div class="image-full align-<?php echo $vars['params']->get('template.category_image_align', 'left');?>">
                <img src="<?php echo $image['src']; ?>" <?php echo $image['width_height']; ?>
                     title="<?php echo $category->name; ?>" alt="<?php echo $category->name; ?>" />
            </div>
        <?php endif; ?>


        <?php if ((int)$vars['params']->get('template.category_teaser_text', 1)
                && $vars['params']->get('content.category_teaser_text', '')) :
        ?>
            <div class="description-teaser">
                <?php echo $vars['params']->get('content.category_teaser_text', ''); ?>
            </div>
        <?php endif; ?>

    <?php if (!$this->app->jbrequest->get('page') and (int)$vars['params']->get('template.category_text', 1) && $category->description) : ?>
    <div class="description-full"><?php echo $category->getText($category->description); ?></div>
    <?php endif; ?>
       

        <div class="clr clear"></div>

    </div>

<?php else: ?>
    <div class="alias-<?php echo $category->alias;?>">
        <h1 class="title"><?php echo $title; ?></h1>
    </div>

<?php endif; ?>


<?php
$this->app->jbdebug->mark('layout::category::finish');

  • 0

#5 sorrero

sorrero

Отправлено 13 June 2014 - 16:16

А можно что-то подобное как для title сделать и для description ?

Чтобы тоже добавлялось "Страница N"

 

 

И еще вопрос

Перенес описание категорий под товары, т.е.

в файле \media\zoo\applications\jbuniversal\templates\catalog\category.php

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

echo $category->getText($category->description);

как теперь нужно подправить этот код

<?php if (!$this->app->jbrequest->get('page') and (int)$vars['params']->get('template.category_text', 1) && $category->description) : ?>
<div class="description-full"><?php echo $category->getText($category->description); ?></div>
<?php endif; ?>

чтобы он работал, т.е. описание внизу выводилось тоже только на первой странице ?


Сообщение отредактировал sorrero: 13 June 2014 - 17:07

  • 0

#6 Sliapy

Sliapy

Отправлено 13 June 2014 - 18:24

Не совсем понимаю вопрос. Этот рецепт и добавляет Страница Н в тайтл и выводит описание категории только на первой странице.


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#7 sorrero

sorrero

Отправлено 13 June 2014 - 18:31

Не совсем понимаю вопрос. Этот рецепт и добавляет Страница Н в тайтл и выводит описание категории только на первой странице.

1.Нужно чтобы "Страница N" добавлялась еще и в description

2. Описание категории выводится только на первой странице, если шаблон не изменялся, а я перенес вывод описания категории под товары и в итоге оно выводится на всех страницах


  • 0

#8 Sliapy

Sliapy

Отправлено 13 June 2014 - 19:55

1.Нужно чтобы "Страница N" добавлялась еще и в description

А смысл? В сео это никак не поможет. На 98% повторяющийся дескрипшн все равно будет дублем.

2. Описание категории выводится только на первой странице, если шаблон не изменялся, а я перенес вывод описания категории под товары и в итоге оно выводится на всех страницах

Замените код, который Вы перенесли вниз тем, что в этой теме. Это один и тот же код, просто с условием на вывод. 


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#9 sorrero

sorrero

Отправлено 13 June 2014 - 20:53

Замените код, который Вы перенесли вниз тем, что в этой теме. Это один и тот же код, просто с условием на вывод. 

 Уже пробовал...

 Вставляю

if (!$this->app->jbrequest->get('page') and (int)$vars['params']->get('template.category_text', 1) && $category->description) { 
  echo $category->getText($category->description);
  }

На страницах навигации 2,3,4 и т.д. - все нормально и описание убирается

А вот на первой странице вылетает ошибка

Fatal error: Call to a member function get() on a non-object in .../media/zoo/applications/jbuniversal/templates/catalog/category.php on line 84

84 строчка - эта самая первая из вставляемого кода


  • 0

#10 Sliapy

Sliapy

Отправлено 14 June 2014 - 02:33

<?php if (!$this->app->jbrequest->get('page') and $category->description) : ?>
   <?php echo $category->description; ?>
<?php endif; ?>

А так?


  • 1
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]





Темы с аналогичным тегами рецепт

Click to return to top of page in style!