Главная | Новости | Полезная информация | Документация | Школа | Файлы | Ссылки | Форум
 Текущая сборка
RusNuke Current
Web-SVN
SVN репозиторий
Bug Tracker

 Навигация
Главная
Новости
Обзоры
Информация
Документация
Вопросы и ответы
Каталог файлов
Каталог ссылок
Информация о проекте
Рассылка новостей
Контакт с автором
Наполнение сайта
Добавить статью
Добавить файл
Добавить ссылку

Наши услуги
Обменный пункт WM
Реклама на проекте
Платные услуги
Услуги хостинга

Отраслевые публикации
Статьи по отраслям

 Поиск по сайту


Google
Web nukefiles.ru


Полезная информация
На главную >>> Делаем сами (Школа)
Создание блоков в PHP-Nuke

В системе PHP-Nuke Вам предоставляется возможность использовать большое количество готовых блоков, а так же возможность создавать собственные блоки. На данном уроке мы на практике узнаем как это можно сделать.

  • Управление блоками
  • Создание блока из административной панели
  • Активизация стандартного блока
  • Создание блока импорта новостей
  • Создание нового HTML блока
  • Создание блока в виде файла
  • Создание простого блока
  • Создание сложного блока
  • Управление блоками

    Заходим в панель администратора - выбираем раздел блоки. Вашему вниманию предстает таблица с перечнем различных блоков.

    В колонке "Заголовок" указано название блока (под этим названием он представляется на страницах сайта).
    В колонках "Позиция" и "Положение" указано в каком месте страницы выводится блок.
    В колонке "Тип" указан тип блока, они бывают трех видов: в виде файла, в виде HTML и в виде  RSS/RDF.
    В колонке "Статус" указано включен или нет данный блок, т.е. выводится ли он в данный момент на страницах вашего сайта.
    В колонке "Кто видит" указано для какой категории пользователей этот блок виден, в значении может быть указанно: только админы, пользователи или все посетители.
    Если в свойствах сайта включена многоязыковая поддержка, то следующая колонка это "Язык", в которой указано - аудитория с каким языком будет видеть данный блок. (Если многоязыковая опция выключена, то данная колонка не отображается.
    Ну и при помощи последней колонки, Вы можете менять свойства блока, т.е. менять значения в перечисленных колонках, удалять блоки, просто отключать или включать их или просматривать.

    Давайте нажмем на ссылку редактировать в последней колонке напротив какого-либо блока в типе которого указано "Файл".

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

    Создание блока из административной панели.

    Заходим в панель администратора - выбираем раздел блоки. Вашему вниманию предстает таблица с перечнем различных блоков ниже которой имеется форма для создания нового блока.

    Активизация стандартного блока

    В состав PHP-Nuke уже входит порядка 25 готовых блоков, все они выполнены в виде файлов, физически расположены в папке blocks, а в данном случае мы их все можем просмотреть в раскрывающемся списке "Имя файла" представленной формы. 

    Для примера создадим блок с выводом количества просмотренных страниц. Для этого в поле "Заголовок" впишем название будущего блока, к примеру - Всего просмотров, в поле "Имя файла" указываем на файл Total Hits, позицию файла, язык и кто это будет видеть указываете на свое усмотрение, поле "Время обновления" в данном случае не играет никакого значения. Нажимаем на кнопку "Создать блок", после того как страница перезагрузиться в том месте которое вы указали в поле "Позиция" появится только что созданный блок, ну а выглядеть он будет примерно так как на данном рисунке...

    Создание блока импорта новостей

    В PHP-Nuke предоставляется возможность импорта новостей с других сайтов. На российских сайтах  я довольно редко встречал такую функцию, может из за того что о ней мало кто знает, а может просто нет таких сайтов с которых можно было бы импортировать новости -) Для того что бы импортировать новости главное что бы сайт экспортер поддерживал необходимый нам формат  RSS/RDF. Будем считать что нужный нам сайт поддерживает такой формат... 

    Итак в указанной выше форме в качестве названия блока указываем "PHP-Nuke по-русски" в поле "RSS/RDF файл" вписываем следующий URL http://rus-phpnuke.com/backend.php (как альтернатива, можно просто указать на какой-либо сайт из представленного списка, но к сожалению в нем нет ни одного русскоязычного сайта), ну а дальше как уже говорилось - выставляете желаемые установки, такие как расположение блока, доступ к нему, язык аудитории... В итоге после того как нажмете на кнопку "Создать блок" у Вас появиться блок схожий с представленным на изображении.

    Создание нового HTML блока

    Ну а теперь перейдем к созданию HTML блока со страницы администратора. Для этого все в той же форме в поле "Заголовок" вводим название будущего блока, в нашем случае пусть это будет "Рекомендуем", ну а в поле "Контент" вводим необходимый нам HTML код, к примеру такой:

    <br><center><a href="http://phpnuke.ru" title="PHP-Nuke по-русски"><img border="0" src="http://phpnuke.ru/images/rus-nuke.gif" width="88" height="31"></a></center><br>

    В полях "RSS/RDF файл" и "Имя файла" естественно ничего указывать в данном случае не нужно, ну а в остальных полях опять же выставляете необходимые Вам значения, в итоге после нажатии кнопки "Создать блок" на вашей странице появиться блок схожий с представленным на рисунке. Как видите это довольно удобный механизм, для того что бы оперативно помещать на ваш сайт какую-либо информацию в виде простого текста, HTML кода и т.д. Правда в PHP-Nuke начиная с версии 6.5 используя данный метод у Вам скорее всего не получиться  вставить с поле "Контент" JavaScript, для этого мы научимся создавать новые блоки в виде файла...

    Создание блока в виде файла

    Создание простого блока

    Вот обязательная структура файла для создания нового блока:

    <?php
    if (eregi("block-имя_файла.php",$_SERVER['PHP_SELF'])) {
    Header("Location: index.php");
    die();
    }
    $content = "Содержание блока";
    ?>

    Во второй строчке необходимо указать имя создаваемого файла, ну а само имя должно быть такого формата:
    block-имя_блока.php
    Ну а то что должно выводиться в содержании блока должно быть включено в переменную $content. Давайте создадим тестовый блок что бы убедиться что Вы все правильно поняли. Для этого откроем блокнот и впишем в него следующий текст:

    <?php
    if (eregi("block-Test.php",$_SERVER['PHP_SELF'])) {
    Header("Location: index.php");
    die();
    }
    $content = "<center><b>Содержание нового блока</b></center>";
    ?>

    Сохраним этот файл в папке blocks под именем block-Test.php 
    Теперь переходим на страницу управления блоками в форму для создания нового блока. В качестве названия нового блока вводим "Проверка", открываем список файлов в поле "Имя файла", если Вы все сделали правильно, то в перечне должен появиться блок под названием "Test", выбираем его. В поле "Контент" и "RSS/RDF файл",  как я надеюсь  Вы понимаете, ничего вводить не нужно, в остальных полях выставляете настройки по своему усмотрению, нажимаем на кнопку "Создать блок". В итоге у Вас должен появиться похожий на на этот блок...

     

     

    Следующим простым блоком будет блок с JavaScript.

    Знаю что многие столкнулись с проблемой вставки различных счетчиков в блоки. Действительно начиная с версии 6.5 такая проблема существует. Ну чтож раз есть проблема, то попробуем ее решить.
    Создадим блок вставив в него счетчик который состоит из чистого JavaScript.
    Делаем все как в прошлом примере, только переменной $content присвоим другое значение, выглядеть код блока будет так:

    <?php

    if (eregi("block-Test.php",$_SERVER['PHP_SELF'])) {
    Header("Location: index.php");
    die();
    }


    $content = "<br><center>";
    $content .= <<<JS

    <script language="JavaScript">
    Sc=screen; D=document;
    D.write('<a href="http://rus-phpnuke.com/go.php?url=aHR0cDovL2xpbmsudGltZXMubHYvaW5kZXgucGhwP01vZGU9c3RhdHMmYW1wO0lEPTE1MDU2"',
    'target="_blank" title="Times.lv Network TOP">',
    '<img src="http://link.times.lv/stats',
    '/counter.php?ID=15056&R='+escape(D.referrer),
    '&ScS='+(Sc.width+'x'+Sc.height),
    '&ScD='+(navigator.appName!='Netscape'?Sc.colorDepth:Sc.pixelDepth),
    '&L='+escape(window.location.href),
    '" width="88" height="31" border="0"></a>');
    </script>

    JS;
    $content .="</center><br>";

    ?>

    Т.е. мы вставили код счетчика нисколько не изменив его в содержание переменной $content
    $content .= <<<JS
    А здесь код счетчика состоящий из чистого JavaScript
    JS;

    В итоге у нас получился следующий блок:
    Я думаю понятно что вместо одного счетчика в такой блок можно вставить столько сколько вам необходимо. Единственное что нужно помнить - это о правописании в PHP. На данном примере Вы видите что JavaScript можно чередовать с обычным HTML кодом. 

     

     Создание сложного блока

    Сложный блок - это конечно условное название, сложный он только по сравнению с предыдущими блоками, но нужно понимать что для создания такого блока нужно по крайней мере знать основы программирования на PHP, а так же порядок взаимодействия (порядок запросов) с базой данных.
    Итак при написании подобного блока нужно сначала поставить задачу, что же мы хотим от данного блока. Давайте для примера создадим блок в котором будет отображаться информация о пяти новых файлах в каталоге программ.
    Используя прошлые примеры создаем файл нашего блока, назовем данный файл block-LastFiles.php
    В самом простом виде он будет выглядеть так:

    <?php

    if (eregi("block-LastFiles.php",$_SERVER['PHP_SELF'])) {
    Header("Location: index.php");
    die();
    }

    global $prefix, $db; // данные для соединения с базой

    $sql = "SELECT title FROM ".$prefix."_downloads_downloads ORDER BY lid DESC limit 0,5";
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result)) {

    $content .="$row[title]<br>"; // вывод результата на экран
    }

    ?>

    Для примера этого достаточно, но для использования на сайте явно не хватает вставки ссылок на страницу с описанием файла, да и приукрасить данный блок не будет лишним. Итак несколько усложним данный код, а так же не забудьте заготовить маленькую иконку, назовите ее d_icons.gif и загрузите ее в папку images. Код будет выглядеть примерно так:

    <?php

    if (eregi("block-LastFiles.php",$_SERVER['PHP_SELF'])) {
    Header("Location: index.php");
    die();
    }

    global $prefix, $db;

    $strip = "17"; // Устанавливаем максимальное количество символов в названии
    $pic = "<img src=\"images/d_icons.gif\" border=\"0\" width=\"10\" height=\"10\">&nbsp;"; // Добавляем иконку
    $content = "<table width=\"100%\"><tr>"; // укладываем все в таблицу
    $content .="<td valign=\"top\" width=\"100%\">";
    $sql = "SELECT lid, title FROM ".$prefix."_downloads_downloads ORDER BY lid  DESC limit 0,5";
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result)) {
    $linkstrip = stripslashes($row[title]);
    if(strlen($linkstrip) > $strip) { // Обрубаем слишком длинное название
    $linkstrip = substr($linkstrip,0,$strip);
    $linkstrip .= "...";
    }
    $content .="&nbsp;$pic<a 
    href=\"modules.php?name=Downloads&amp;d_op=viewdownloaddetails&amp;lid=$row[lid]\">
    $linkstrip</a><br>";
    }
    $content .="</td></tr></table>";

    ?>

    Нам осталось зайти на страницу управления блоками, и создать (активизировать) только что созданный блок, для этого как уже говорилось, дадим ему название (к примеру Новые файлы), из списка файлов выберем наш, там он будет под именем LastFiles, ну и укажем в каком месте на странице его выводить. В итоге у нас получится что то похожее на тот что Вы видите на рисунке.

    Ну вот вроде все что хотел рассказать по поводу блоков в PHP-Nuke - рассказал.
    Продолжение следует...

    PHP-Nuke по-русски
    Сергей

    Дата публикации: 2004-06-21
    Материал прочитан: 65985 раз(а)


     Другие материалы категории Другие категории раздела
    Устройство тем оформления
    Создание собственной темы оформления
    Усовершенствование темы
    Создание собственного модуля (часть1)
    Создание собственного модуля (часть2)
    Советы по оптимизации PHP-Nuke
    Модернизация модулей
    Модернизация блоков
    Защита системы
    Дизайн в системе PHP-Nuke

    пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ - пїЅпїЅпїЅпїЅпїЅпїЅ

     Авторизация
    Логин
    Пароль
    Регистрация на сайте
    Забыли свой пароль?

     Сейчас на сайте
    Гостей: 10
    Пользователей: 3
    Всего: 13

    Пользователи:
    01: AwertySreq
    02: ManuelSaido
    03: BuroMunc

     Наш опрос
    Какой форум предпочитаете?

    Invision Power Board
    vBulletin
    Phorum
    MyBB
    PunBB
    Simple Machines Forum
    phpBB
    BBtoNuke



    Результаты
    Другие опросы

    Ответов: 1339
    Комментариев: 10

     Рассылка новостей
    Подробнее...

     Реклама


    Главная | Новости | Полезная информация | Документация | Школа | Файлы | Ссылки | Форум
    Copyright © 2002 Internet studio. All Rights Reserved.
    Web site engine's code is Copyright © 2002 by PHP-Nuke.
    PHP-Nuke is a free test software released under the GNU/GPL.
    Страница сгенерирована за 0.0299 с. Выполнено 15 запроса к базе данных за 0.0031 с.

    Rambler's Top100 Рейтинг@Mail.ru liveinternet.ru: показано число просмотров и посетителей за 24 часа