Html карта сайта - готовое решение [Бесплатно]

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

trainracing M
Аватара
trainracing M
Возраст: 31
Репутация: 13
Сообщения: 121
Зарегистрирован: 07.10.2016
С нами: 7 лет 5 месяцев
Сайт

Сообщение #1 trainracing » 16.06.2019, 14:25

Плагин для создания на сайте html карты сайта

Я сеошник и другим сеошникам думаю тоже пригодится)

в файле .htaccess в корне сайта сразу на следующей строке после Google sitemap добавим:

Код: Выделить всё

RewriteRule ^sitemap/?$    index.php?module=SitemapView  [L,QSA]


Далее создадим файл SitemapView.php с таким содержимым:

Код: Выделить всё

<?PHP

require_once('View.php');

class SitemapView extends View
{
    function fetch()
    {
        $url = $this->request->get('page_url', 'string');
        $page = $this->pages->get_page($url);
       
        // Отображать скрытые страницы только админу
        if((empty($page) || (!$page->visible && empty($_SESSION['admin']))) && $url != '404') {
            return false;
        }
       
        $this->design->assign('page', $page);
        $this->design->assign('meta_title', $page->meta_title);
        $this->design->assign('meta_keywords', $page->meta_keywords);
        $this->design->assign('meta_description', $page->meta_description);
       
        $pages = $this->pages->get_pages(array('visible'=>1));
        $this->design->assign('pages', $pages);
       
        $posts = $this->blog->get_posts(array('visible'=>1));
        $this->design->assign('posts', $posts);
       
        $categories = $this->categories->get_categories_tree();
        $categories = $this->cat_tree($categories);
        $this->design->assign('cats', $categories);
       
     $brands = $this->brands->get_brands();
     $this->design->assign('brands', $brands);
       
        return $this->design->fetch('sitemap.tpl');
    }
   
    private function cat_tree($categories) {

        foreach($categories AS $k=>$v) {
            if(isset($v->subcategories)) $this->cat_tree($v->subcategories);
            $categories[$k]->products = $this->products->get_products(array('category_id' => $v->id)); 
        }
       
        return $categories;
    }
}

и закинем его в папку /view/

Далее создадим файл sitemap.tpl с таким содержимым:

Код: Выделить всё

{* The canonical address of the page *}
{$canonical="/sitemap" scope=parent}



    {* The page heading *}
    <h1 class="h1">
        <span>Карта сайта</span>
    </h1>

 <div class="menu_group menu_group_1">
   

    {if $pages}
     <div class="h2">
           Страницы
        </div>
    <div class="pages">
         <ul class="fn_menu_list menu_list menu_list_1">
    {foreach $pages as $p}
          {if $p->id !=5}
            <li class="menu_item menu_item_1 menu_eventer"><a class="menu_link" href="{$p->url}">{$p->name|escape}</a></li>   
          {/if}
    {/foreach}
        </ul>
    </div>
    {/if}

    {if $posts}
     <div class="h2">
           Статьи
        </div>
    <div class="posts">
        <ul>
    {foreach $posts as $p}
            <li><a href="{$p->url}">{$p->name|escape}</a></li>   
    {/foreach}
        </ul>
    </div>
    {/if}

    {if $cats}
    <div class="cats">
   
    {function name=cat_prod}
    {if $prod}
        <ul class="product">
        {foreach $prod as $p}
            <li><a href="products/{$p->url}">{$p->name}</a></li>
        {/foreach}
        </ul>
    {/if}
    {/function}   
   
    {function name=cat_tree}
    {if $cats}
        <ul>
        {foreach $cats as $c}
            {* Показываем только видимые категории *}
            {if $c->visible}
                <li><a href="catalog/{$c->url}">{$c->name}</a>
                    {cat_tree cats=$c->subcategories}
                    {cat_prod prod=$c->products}
                </li>
            {/if}
        {/foreach}
        </ul>
    {/if}
    {/function}
   
    {cat_tree cats=$cats}
    </div>
    {/if}
   
  {if $brands}
        <div class="h2">
           Бренды
        </div>

        <div>
            {foreach $brands as $b}
                <div >
                    <a class="" href="{$lang_link}brands/{$b->url}" data-brand="{$b->id}">
                       <div class="">
                                <span>{$b->name|escape}</span>
                            </div>
                       
                    </a>
                </div>
            {/foreach}
        </div>
    {/if}
 
 
</div>


(стили и верстка по вашему вкусу) и закинем этот файл в шаблон дизайна.

Дальше идем в шаблон breadcrumb.tpl, ищем

Код: Выделить всё

 {* Cart page *}


И выше вставим:

Код: Выделить всё

{* Sitemap *}
        {elseif $smarty.get.module == "SitemapView"}
            <li>Карта сайта</li>


В идеале еще в админке добавить в меню футера страницу /sitemap и назвать "карта сайта"

Готово. Вроде ничего не забыл.

пример - https://lidmaker.ru/sitemap

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #2 softmobidev » 19.06.2019, 13:46

и какой смысл сего действа?

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #3 OkayCMS » 20.06.2019, 08:01

softmobidev писал(а):и какой смысл сего действа?

Староверы ещё верят что карта сайта HTML помогает в продвижении сайта.

trainracing M
Аватара
trainracing M
Возраст: 31
Репутация: 13
Сообщения: 121
Зарегистрирован: 07.10.2016
С нами: 7 лет 5 месяцев
Сайт

Сообщение #4 trainracing » 23.06.2019, 08:49

OkayCMS писал(а):
softmobidev писал(а):и какой смысл сего действа?

Староверы ещё верят что карта сайта HTML помогает в продвижении сайта.
Это дает то, что у вас есть одна страница со всеми ссылками. Если у вас новая страница появилась, но нигде нет ссылок на нее - яндекс увидит ее через эта карту. В версии 1.2.4 например в sitemap.php не добавляются новые страницы (не блога)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #5 korshunov » 23.06.2019, 10:06

trainracing писал(а):Это дает то, что у вас есть одна страница со всеми ссылками. Если у вас новая страница появилась, но нигде нет ссылок на нее - яндекс увидит ее через эта карту.

1. Если, например, создается новая категория, то ссылка на нее появится в блоке категорий и поисковик ее увидит. И предлагаемая карта тут ничем не лучше и не хуже - на ней будет та же ссылка, что и на прочих страницах.
2. Аналогично и для нового поста блога и для новой страницы.
3. Или имеется в виду случай, когда создаются на сайте совсем уж специфичные очень засекреченные страницы, на которые на сайте совем ни одной ссылки не планируется? Тогда ссылки не будет и на предлагаемой карте - на ней только то, что создается в админке в категориях, блоге, страницах.
4. "со всеми ссылками" - это совсем не так. Ссылок на страницы товаров там нет. Если появится новый товар, то ссылки на него на предлагаемой карте не будет, тут она совсем бесполезна.

Так что цель сего действа, похоже, автор внятно пока объяснить не может...

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #6 OkayCMS » 24.06.2019, 06:12

korshunov писал(а):
trainracing писал(а):Это дает то, что у вас есть одна страница со всеми ссылками. Если у вас новая страница появилась, но нигде нет ссылок на нее - яндекс увидит ее через эта карту.

1. Если, например, создается новая категория, то ссылка на нее появится в блоке категорий и поисковик ее увидит. И предлагаемая карта тут ничем не лучше и не хуже - на ней будет та же ссылка, что и на прочих страницах.
2. Аналогично и для нового поста блога и для новой страницы.
3. Или имеется в виду случай, когда создаются на сайте совсем уж специфичные очень засекреченные страницы, на которые на сайте совем ни одной ссылки не планируется? Тогда ссылки не будет и на предлагаемой карте - на ней только то, что создается в админке в категориях, блоге, страницах.
4. "со всеми ссылками" - это совсем не так. Ссылок на страницы товаров там нет. Если появится новый товар, то ссылки на него на предлагаемой карте не будет, тут она совсем бесполезна.

Так что цель сего действа, похоже, автор внятно пока объяснить не может...
Не нужно быть таким агрессивным. Смысл от карты сайта HTML есть. Да, в последнее время все меньше, но всё-же иногда она может быть полезной. Вреда она точно не принесет, пользу - возможно, так что если бесплатно - то почему бы и не сделать :)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #7 korshunov » 24.06.2019, 06:53

OkayCMS писал(а):Не нужно быть таким агрессивным.

Не вижу тут никакой агрессии. С моей стороны лишь аргументированное несогласие с доводами собеседника, что совсем не есть агрессия...

OkayCMS писал(а):Смысл от карты сайта HTML есть. Да, в последнее время все меньше, но всё-же иногда она может быть полезной.

Я всего лишь добиваюсь хоть чего-то содержательного, кроме общих фраз. Какой-нибудь пример хоть маленькой, но КОНКРЕТНОЙ возможной пользы, если кто знает...

poromon
poromon

Сообщение #8 poromon » 07.06.2020, 22:27

softmobidev писал(а):и какой смысл сего действа?
думаю смысл сего действа вот такой Изображение

Добавлено спустя 4 минуты:
https://monosnap.com/file/DwL01HlqvmlWylz2k4Td3d8ZVRe1fm

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #9 OkayCMS » 08.06.2020, 06:42

poromon писал(а):
softmobidev писал(а):и какой смысл сего действа?
думаю смысл сего действа вот такой Изображение


https://monosnap.com/file/DwL01HlqvmlWylz2k4Td3d8ZVRe1fm
Так для этого нужна xml карта сайта. Она есть а системе

poromon
poromon

Сообщение #10 poromon » 08.06.2020, 09:19

ткните носом, я не нашел.

Добавлено спустя 3 минуты 15 секунд:
А все, нашел. вот я удот, а я купил в маркетплейсе))))

irekunenko
irekunenko
Репутация: 0
Сообщения: 8
Зарегистрирован: 30.09.2021
С нами: 2 года 5 месяцев

Сообщение #11 irekunenko » 09.11.2021, 13:44

Если кто прикручивал подобное на 4.1.1/4.2 - отпишитесь в ветке, пожалуйста

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #12 korshunov » 09.11.2021, 15:29

Создавать подобное для версии 4 можно, например, по образцу модуля FAQ, схема очень похожа.

dimitriy
Аватара
dimitriy
Репутация: 4
Сообщения: 92
Зарегистрирован: 26.06.2016
С нами: 7 лет 9 месяцев

Сообщение #13 dimitriy » 09.11.2021, 16:38

хм...а что разве сейчас нет sitemap по умолчанию? или тут сугубо речь идет про html карту сайта?

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #14 OkayCMS » 09.11.2021, 20:03

dimitriy писал(а):хм...а что разве сейчас нет sitemap по умолчанию? или тут сугубо речь идет про html карту сайта?
Сугубо про html карту. XML карта есть по умолчанию


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 10 гостей