IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Ротация блоков, в @rightMenu@ или @leftMenu@
Worm
сообщение 25.2.2011, 14:22
Сообщение #1


Активный участник
***

Группа: Модератор
Сообщений: 2675
Регистрация: 30.12.2009
Из: Самара
Пользователь №: 213
Версия CMS Free: 34
Создано сайтов: Достаточно много



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

1. в auotoloadinc.php добавить сразу после <?php
Где цифра 5 - лимит на выведение блоков на странице




Код
class PHPShopTextElementRandom extends PHPShopElements {

    /**
     * Конструктор
     */
    function PHPShopTextElementRandom() {
        
        // Отладка
        $this->debug=false;
        
        // Имя БД
        $this->objBase=$GLOBALS['SysValue']['base']['table_name14'];
        parent::PHPShopElements();
    }



    /**
     * Вывод правых текстовых блоков для навигации
     * @return string
     */
    function rightMenu() {
        $dis='';
        $PHPShopOrm = &new PHPShopOrm($this->objBase);
        $data = $PHPShopOrm->select(array('*'),array("flag"=>"='1'",'element'=>"='1'"),array('order'=>'RAND()'),array("limit"=>5));
        $i=0;
       $max=5; // кол-во блоков
        if(is_array($data))
            
            foreach($data as $row) {
            if($i<$max){
                if(empty($row['dir'])) {
                    // Определяем переменые
                    $this->set('leftMenuName',$row['name']);
                    $this->set('leftMenuContent',Parser($row['content']));
                    $dis.=$this->parseTemplate($this->getValue('templates.right_menu'));
                }
                else {
                    $dirs= explode(",",$row['dir']);
                    foreach($dirs as $dir)
                        if($dir==$_SERVER['REQUEST_URI']) {
                            $this->set('leftMenuName',$row['name']);
                            $this->set('leftMenuContent',$row['content']);
                            // Подключаем шаблон
                            $dis.=$this->parseTemplate($this->getValue('templates.right_menu'));
                        }
                 }
                $i++;
                }
            }
        return $dis;
    }


}




2. В вашем шаблоне в файлах index.tpl и shop.tpl меняем @rightMenu@ или @leftMenu@ на

Код
@php
$PHPShopTextElementRandom = new PHPShopTextElementRandom();
echo $PHPShopTextElementRandom->rightMenu();
php@
Перейти в начало страницы
 
+Цитировать сообщение
Эльвира
сообщение 28.6.2013, 13:42
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 6
Регистрация: 27.6.2013
Пользователь №: 4206
Версия CMS Free: 4 3
Создано сайтов: 1



А как саздовать новые блоки в phpshop, например такие как акции, новинки?
Перейти в начало страницы
 
+Цитировать сообщение
Dennion
сообщение 28.6.2013, 17:05
Сообщение #3


Администратор
***

Группа: Главные администраторы
Сообщений: 5911
Регистрация: 20.8.2009
Из: Москва
Пользователь №: 1
Версия CMS Free: 3.3



Цитата(Эльвира @ 28.6.2013, 14:42) *
А как саздовать новые блоки в phpshop, например такие как акции, новинки?

http://forum.phpshopcms.ru/index.php?showtopic=2095
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 10.12.2019, 14:49