mail: admin@shopos.ru
Обратная связь


Войти



Автор Тема: Как выводить блок только на главной

Оффлайн support

  • Администратор
  • Профи
  • *****
  • Сообщений: 6503
    • Просмотр профиля
    • Скрипты интернет-магазина
Как выводить блок только на главной

в любом из шаблонов **.html

добавить

Цитировать
   {php}
   if (substr(basename($_SERVER['REDIRECT_URL']), 0, 9)=='index.php' && empty($_SERVER['QUERY_STRING']))
   {
      echo 'мы на главной!';
   }
   {/php}


или так:

Цитировать
{php}if (substr(basename($_SERVER['REDIRECT_URL']), 0, 9)=='index.php'  && empty($_SERVER['QUERY_STRING'])){ {/php}
     
боооооольшой код, который нужно выводить только на главной
   

{php}}{/php}

« Последнее редактирование: 05 Ноябрь 2009, 11:43:03 от Евгений »

Оффлайн westen

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
    • Авторынок
Re: Как выводить блок только на главной
« Ответ #1 : 20 Ноябрь 2009, 01:16:31 »
а если страница другая, не главная,
а скажем к примеру account.php,

как быть в таком случае?

Оффлайн foton

  • Опять с своими глупыми вопросами
  • Ветеран
  • *****
  • Сообщений: 886
    • Просмотр профиля
Re: Как выводить блок только на главной
« Ответ #2 : 20 Ноябрь 2009, 07:43:18 »
а если страница другая, не главная,
а скажем к примеру account.php,

как быть в таком случае?


тогда будет так

Цитировать
{php}if (substr(basename($_SERVER['REDIRECT_URL']), 0, 9)=='account.php'  && empty($_SERVER['QUERY_STRING'])){ {/php}
     
боооооольшой код, который нужно выводить только на главной
   
{php}}{/php}


Оффлайн support

  • Администратор
  • Профи
  • *****
  • Сообщений: 6503
    • Просмотр профиля
    • Скрипты интернет-магазина
Re: Как выводить блок только на главной
« Ответ #3 : 20 Ноябрь 2009, 23:04:40 »
Цитировать
druplal (он также использует smarty):

Код:
      <?php if ($right): ?>
        <div id="sidebar-right" class="sidebar">
      <?php endif; ?>


это не smarty - это php

Оффлайн support

  • Администратор
  • Профи
  • *****
  • Сообщений: 6503
    • Просмотр профиля
    • Скрипты интернет-магазина
Re: Как выводить блок только на главной
« Ответ #4 : 20 Ноябрь 2009, 23:19:06 »


Цитировать
{php}if (substr(basename($_SERVER['REDIRECT_URL']), 0, 9)=='account.php'  && empty($_SERVER['QUERY_STRING'])){ {/php}
     
боооооольшой код, который нужно выводить только на главной
   
{php}}{/php}



не верно т.к. предположу что 0,9 возвращает длину знаков index.php
и ни как не может быть =="account.php"  т.к. тут верно 0,11
но тут это выражение не работает

в разных движках на smarty эта "вкусняшка" по разному реализована.

например в rose:

{if $smarty.section.i.last}
какой-то текст.........
{/if}

druplal (он также использует smarty):

      <?php if ($right): ?>
        <div id="sidebar-right" class="sidebar">
      <?php endif; ?>

можно и дальше приводить примеры,
но суть в том что, данная "вкусняшка"
в разных движках  (с smarty) может быть по разному реализована,
и порой проще спросить как именно необходимо поступать
в данных ситуациях.

это необходимо для того что-бы организовать на разных
страницах любую структуру (хоть от 2-х до N-х  кол-ва колон),
что позволяет очень гибко настраивать в шаблонах выдачу
любого материала


p.s.:  а про ваш вариант я также подумал был первым делом,
но также как и вы  - ошибся, но в любом случае спасиба за отклик на просьбу


попробовать вот так


Цитировать
{php}if (substr(basename($_SERVER['PHP_SELF']), 0, 11)=='account.php'  && empty($_SERVER['QUERY_STRING'])){ {/php}
     
боооооольшой код, который нужно выводить только на главной
   
{php}}{/php}

[/quote]

Оффлайн support

  • Администратор
  • Профи
  • *****
  • Сообщений: 6503
    • Просмотр профиля
    • Скрипты интернет-магазина
Re: Как выводить блок только на главной
« Ответ #5 : 20 Ноябрь 2009, 23:19:59 »
$_SERVER['PHP_SELF'] не всегда и не везде правильно определяет открытую страницу.

Оффлайн vladimir1

  • Постоялец
  • ***
  • Сообщений: 186
    • Просмотр профиля
Re: Как выводить блок только на главной
« Ответ #6 : 21 Ноябрь 2009, 15:00:10 »


Цитировать
{php}if (substr(basename($_SERVER['REDIRECT_URL']), 0, 9)=='index.php'  && empty($_SERVER['QUERY_STRING'])){ {/php}
     
боооооольшой код, который нужно выводить только на главной
   

{php}}{/php}




на localhost работает нормально, а на хостинге почему-то не выдает! почему, что поправить?


Оффлайн vladimir1

  • Постоялец
  • ***
  • Сообщений: 186
    • Просмотр профиля
Re: Как выводить блок только на главной
« Ответ #7 : 23 Ноябрь 2009, 12:36:18 »


попробовать вот так


Цитировать
{php}if (substr(basename($_SERVER['PHP_SELF']), 0, 11)=='account.php'  && empty($_SERVER['QUERY_STRING'])){ {/php}
     
боооооольшой код, который нужно выводить только на главной
   
{php}}{/php}



а вот так заработало!!!

Оффлайн shishifr

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Как выводить блок только на главной
« Ответ #8 : 16 Февраль 2012, 20:50:24 »
А как сделать чтобы еще выводилось на нескольких страницах+на главной. Проблема - слайдер выводится на главной, но когда идет переключение валюты, то слайдер пропадает. Нужно чтобы он был и на этих страницах. Страницы такого типа http://kaiser.com.ua/index.php?currency=USD Я так понял через логические операторы, но реализовать не могу. Поможете?

Оффлайн dj-avtosh

  • PHP-DEVELOPER
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • WD-SOFTWARE
Re: Как выводить блок только на главной
« Ответ #9 : 21 Февраль 2012, 17:19:23 »
Логично вешать в какой-нибудь глобальный html, который обрабатывает top.php

Оффлайн NeBox

  • Глобальный модератор
  • Профи
  • *****
  • Сообщений: 5045
    • Просмотр профиля
Re: Как выводить блок только на главной
« Ответ #10 : 21 Февраль 2012, 20:13:52 »
Не логично пихать в top.php что попало, особенно html и особенно глобально.
Есть шаблон, В нем нужно все делать.
Можно сделать определяющие страницы метки и их уже передавать в шаблон, а в шаблоне уже рулить выводом как нужно. Ну или через плагин такое сделать.
Кстати в header.php уже есть примеры как определять страницы. Нужно только добавить нужные.

тут решение которое сработает для Главной http://www.shopos.ru/forum/index.php?topic=2101.msg24221#msg24221
Оно же включено в обновление http://www.shopos.ru/forum/index.php?topic=6560.0
- Плагины и шаблон для ShopOS
- Документация ShopOS
- Разработка плагинов и модулей

Оффлайн dj-avtosh

  • PHP-DEVELOPER
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • WD-SOFTWARE
Re: Как выводить блок только на главной
« Ответ #11 : 22 Февраль 2012, 05:48:15 »
NeBox, Вам бы не помешало читать внимательнее. Я написал html, который ОБРАБАТЫВАЕТ top.php. Т.е. любой html, закрепленный в top.php так и так будет глобальным .
При всем уважении к рангу, удивляюсь Вашей невнимательности.

Оффлайн NeBox

  • Глобальный модератор
  • Профи
  • *****
  • Сообщений: 5045
    • Просмотр профиля
Re: Как выводить блок только на главной
« Ответ #12 : 22 Февраль 2012, 12:17:28 »
Да нет. Я понял что Вы написали. Просто отписался не видимо не так.
Я имел в виду, что не нужно затрагивать top.php.
Есть плагинная система, где можно все сделать. Есть header.php в котором часть меток определяющих страницы уже передается в шаблон index.html. И по аналогии добавить другие.
Если нужно какую-то передеменную smarty сделать глобальной, то ее только в класс osTemplate пихать.
Есть файл source/boxes.php в котором то же можно сделать что нужно.
В крайнем случае, использовать php в шаблоне.
- Плагины и шаблон для ShopOS
- Документация ShopOS
- Разработка плагинов и модулей

Оффлайн dj-avtosh

  • PHP-DEVELOPER
  • Новичок
  • *
  • Сообщений: 42
    • Просмотр профиля
    • WD-SOFTWARE
Re: Как выводить блок только на главной
« Ответ #13 : 22 Февраль 2012, 12:28:40 »
NeBox, +1. Приятно слышать ответы по делу.

Оффлайн uspro

  • Пользователь
  • **
  • Сообщений: 51
  • СССР - Создание Сайтов Сервис Раскрутки
    • Просмотр профиля
    • Помощь в создании и продвижении ИМ
Re: Как выводить блок только на главной
« Ответ #14 : 11 Май 2012, 17:12:56 »

{if $smarty.server.REQUEST_URI == "/"}
На главной
{else}
Не на главной
{/if}



 

Copyright 2016 ShopOS