вторник, 4 октября 2011 г.

Создание шаблона Joomla. API функции (часть 2)


В предыдущей статье мы начали рассматривать API функции CMS Joomla, которые необходимы для унификации шаблона. Так в статье «Создание шаблонаJoomla. API функции(часть 1)» мы начали рассматривать класс JDocumentHTML, рассматрели основные переменные данного класса и как они применяются в создании шаблона для CMS Joomla. В данной статье мы подробно остановимся на методах данного класса и некоторые из них применим на практике. Ну, что приступим…
Методы:
addCustomTag(string: $html ) – добавляет в заголовок html код. Например $this->addCustomTag(<p>Привет!!!</p>)

addFavicon(string: $href, [string: $type=’image’], [string: $relation=’shortcut icon’]) – добавляет favicon, где $href – ссылка на картинку, $type – тип файла, $relation – отношение ссылки.

addHeadLink(string: $href, string: $relation, [string: $reltype=’rel’], [$attribs = array()], [array: $attributes]) – добавляет тег <link> в заголовок документа, где $href – ссылка, $relation – отношение ссылки, $reltype – отношение типа атрибута, по умолчанию = «rel», $attributes – ассоциативный  массив атрибутов.

countMenuChildren – выводит количество дочерних элементов меню.

countModules(string: $condition) – выводит количество модулей в заданной позиции $condition.

Унаследованные методы:

addScript (string: $url, [string: $type=’text/javascript’], [bool: $defer=”false”], [bool: $async=”false”]) – добавляет на странице ссылку на скрипт, где $url – ссылка, $type – тип скрипта, $defer – добавляет атрибут отложенности, $async – добавляет атрибут асинхронности.
addScriptDeclaration (string: $content, [string: $type=’ text/javascript’]) – добавляет код скрипта, где $content – код скрипта, $type – тип скрипта.

addStyleSheet(string: $url, [string: $type=’text/css’],[string: $media=null], [array: $attrib]) – добавляет ссылку на CSS, где $url – ссылка, $type – тип, $media – медиа тип, $attrib – массив атрибутов.

 getBase – возвращает URL документа.

setBase (string: $base) – добавляет URL для документа.

setCharset (string: $type) – устанавливает тип кодировки.

setDescription($description, string: $title) – устанавливает описание для документа.

 setDirection ($dir=’ltr’, string: $lang) – устанавливает язык и направление текста для документа.

setMetaData (string: $name, string: $content, [bool: $http_equiv=’false’], [bool: $sync=’true’]) – устанавливает альтернативный мета тег, где $name – название или http-equiv тег, $content – значение содержания тега, $http_equiv – мета тип, $sync – указывает тип синхронизации.
setTitle (string: $title) – устанавливает title для документа.

Мы рассмотрели основные методы класса JDocumentHTTP, которые очень часто применяются в шаблонах Joomla. Давайте теперь применим на практике несколько методов и посмотрим, что из этого получиться. Если Вы не проделывали все, то что описано в предыдущих постах (у Вас нет шаблона на, котором можно экспериментировать), то я рекомендую скачать данный шаблон.
Давайте посмотрим какие позиции у нас есть, для этого в адресной строке введите: <адрес_вашего_сайта>?tp=1 (например у меня это выглядит так: http://localhost/joomla?tp=1) и мы должны увидеть следующее:
Теперь поставим задачу: Я не хочу, чтобы на главной странице отображался логотип в позиции «logo».
Приступим к решению данной задачи:
  1. Переходим в редактирование файла index.php, если Вы не помните, где он находиться, то не поленитесь и прочтите «Создание шаблона для Joomla 1.7. (часть 1)».
  2. Измените в строке в которой подключаем CSS-файл <?php echo $this->base ?> на <?php echo $this->baseurl ?>. И вместо:

<div id="logo">
                <jdoc:include type="modules" name="logo" />
    </div>
Вставьте:
<div id="logo">
            <?php  if ($menu->getActive() == $menu->getDefault()) {?>
                <jdoc:include type="modules" name="logo" /> <!-- Вставка позиции logo-->
            <?php } else { ?>
                <p>А это не главная страница</p>
            <?php }?>
</div>
Где if ($menu->getActive() == $menu->getDefault()) проверяем пользователь находится на главной странице или нет. Это метод является универсальным для проверки главной страницы.
Посмотрим, что получилось:

На этом пока все. Не пропускайте выход новых постов, подписывайтесь на рассылку обновления для данного блога.

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



4 комментария:

  1. В приведенном коде, по-моему, пропущена строка
    $menu = &JSite::getMenu();

    ОтветитьУдалить
  2. Да, конечно Вы правы в начале файла index.php у меня php вставка:

    $menu = JSite::getMenu();

    ОтветитьУдалить
  3. Спасибо за подробные инструкции.
    А как сделать подсветку текущего пункта меню? Чтобы активному пункту присваивался класс active?

    ОтветитьУдалить
  4. Этот комментарий был удален администратором блога.

    ОтветитьУдалить