Skyline Advanced Poll Manager - гибкий компонент опросов для Joomla. Особенно просто это делать с помощью специальной кнопки в визуальном редакторе материалов, которая позволяет вставлять опросы в статьи Joomla, K2 и ZOO. Расширение имеет простой и понятный дизайн интерфейса. Кроме того, параметры ...
Тема урока
Общие настройки модулей Joomla, урок 23, Напоминаю, общие применяются ко всему контенту входящему в настраиваемый компонент, в данном уроке, ко всем модулям.
Цель урока
Познакомиться с настройками, применяемыми для всех типов модулей сайта Joomla.
Где найти общие настройки модулей J...
Form2Content PRO - это конструктор контента который позволяет создавать статьи на Joomla с множеством дополнительных функций и настроек, которое идеально подойдет для информационных и новостных сайтов, где происходит постоянное обновление контента и требуется как-то ускорить и упростить этот процес...
Вступление
В общих настройках Joomla, хотелось бы выделить настройки почты. По умолчанию они не настроены, так как требуют ввода пользовательских данных.
Настройка почты позволит отправлять простые текстовые письма (сообщения) пользователям, зарегистрированным на сайте из панели администратора (в...
Вступление
Сайты на CMS строятся по следующему принципу: есть сама CMS, которая является основой для создания и управления сайта. Как правило, функционал самой системы несколько ограничен. Однако, для расширения функционала и выполнения специальных задач, существуют специальные расширения. Для Joo...
SP Medical - это комплексное медицинское решение с многочисленными функциями и функциональными возможностями. Это мощное расширение Joomla позволяет создавать динамичный веб-сайт для любого типа больницы, клиники, стоматолога, реабилитационного центра, хирурга, педиатрических и других соответствующ...
Вступление
Можно сказать вполне определенно, CMS Joomla коробочной версии не дружит с правилами оптимизации сайта и плохо воспринимается поисковыми машинами. Однако есть несколько обязательных шагов и настроек, которые заставят поисковые боты обратить внимание на ваш Joomla сайт и включить его в с...
Если вы планируете запустить детский сад или сайт начальной школы, для этого потребуется целевая специализированная система для управления конкретными данными учреждения. С SP Kindergarten вы можете эффективно управлять всеми школьными материалами, такими как классы, курсы, преподаватели и мероприя...
JA Social II – мощный шаблон для социальных сетей на Joomla и сообществ по интересам. Это вторая версия, наверное, одного из лучших решений для социальных сетей на Joomla. Разработан JA Social II профессиональной студией JoomlArt с использованием T3 Framework вместе с Bootstrap 3. Разработчики прои...
Редакция CMS Magazine начинает цикл статей, посвященных поисковой оптимизации сайтов, разработанных на различных CMS. Первую статью из этого цикла мы решили посвятить Joomla. Во-первых, это бесплатная платформа. Во-вторых, она весьма популярна среди русскоязычных разработчиков. Так, в сегменте инте...
Одним из основных компонентов Joomla, входящем в исходную комплектацию, является компонент "Личные сообщения". Он ает возможность отправлять и получать сообщения между пользователями, имеющими право доступа к разделу администрирования.
Компонент очень прост в применении, однако, пользователи часто забывают, что компонент настраивается. Для этого необходимо зайти в Компоненты - Сообщения - Мои настройки. Компонент настраивается для отправки окопий сообщений на электронный ящик и удаление сообщений по прошествии заданного количества дней, а также позволяет заблокировать почтовый ящик.
Для обеспечения удобства в использовании контентом в Joomla используются теги. Один тег может быть предназначен для многих обьектов разного типа: материалов, ссылок, новостей, контактов, категорий и др. Стоит напомнить, что любому обьекту можно приписать неограниченное количество тегов. После того, как обьектполучил определенный тег, просмотр ссылки по нему позволит проследить за списком всех отмеченных этим тегом обьектов.
СОЗДАНИЕ ТЕГОВ
Этот процесс осуществляется двумя способами
Перейдите в менеджер тегов (Компоненты-Теги), где вы сможете подробно создать требуемые теги по аналогии создания обычных материалов. Помимо названия, теги состоят из описания, изображения, мета-данных и других позиций, похожих с функциями некоторых типов. Менеджер тегов вы можете также использовать "родительский тег" для какого-либо тега, создавая вложенные теги.
Также есть возможность создания тегов в абсолютно любом поле на странице редактуры содержимого "на ходу".
Когда вы приступите к вводу названия своего тега, при вводе первых трех букв, в ниспадающем меню будут предлагаться варианты существующих. Если они вас не устраивают, при создании собственных тегов просто закончите название и нажмите клавишу Enter. Как результат, тег будет создана, сохранен и готов к использованию.
ОТОБРАЖЕНИЕ МАТЕРИАЛА, ЗАКРЕПЛЕНОГО ЗА ОПРЕДЕЛЕННЫМИ ТЕГАМИ
После наделения тегами нужных обьектов, последние могут отображаться на домашней странице вашего ресурса определенными путями:
Стандартно Joomla отображает все теги, которыми отмечают обьект. В параметрах CMS это можно отключить.
Вы можете создать пункт меню, которое будет отображать все ваши теги.
Другой вариант - создать меню со списком обьектов, отмеченных определенным тегом (под стилем блога или списка).
Языки являются возможно самым начальным и критичным типом расширений. Языки являются пакетами: либо главным пакетом языка ядра [системы Joomla!], либо пакетом языка какого-либо расширения. Эти пакеты состоят из файлов [с расширением] INI, которые содержат пары ключ/значение. Эти ключ/значение пары предоставляют перевод статичных языковых строк, [находящихся] в исходном коде Joomla!. Это позволяет как ядру [системы] Joomla!, так и сторонним компонентам и модулям был переведенными [на другие международные языки]. Языковые пакеты ядра [Joomla!] также содержат файл мета данных [в расширении] XML, описывающий язык и предоставляющий информацию о шрифтах для создания содержимого в PDF.
Какой-либо шаблон - это тип расширения Joomla!, который изменяет [внешний] облик веб-сайта. Существуют два типа используемых системой Joomla! шаблонов: шаблоны передней части и шаблоны административной части.
Шаблон передней части контролирует [то], как Ваш веб-сайт выглядит у просматривающего этот веб-сайт пользователя.
Административный шаблон контролирует [то], каким образом административные задания предоставлены контролирующему административные функции администратору Joomla [данного веб-сайта].
Этими [административными заданиями] могут быть такие общие задания, как пользователь, меню, материал, категория, модуль, компонент, плагин и управления шаблоном.
Суффик класса веб-страницы - это один из параметров пунктов меню содержимого [системы] Joomla!. Он настраивается на странице редактирования конкретного пункта меню, на его вкладке "Параметры отображения страницы". Какой-либо новый суффикс класса принудит [систему] Joomla! либо добавить к элементам макета назначенной данному пункту меню веб-страницы какой-либо новый CSS класс, либо изменить какой-либо уже существующий.
Когда Joomla! генерирует какую-либо веб-страницу, [то] для предоставления стилей данной страницы она автоматически создает предварительно определенные CSS классы. Например, некоторая веб-страница может содержать элемент
<div class="componentheading">
Для создания какого-либо нового класса, введите его название [на английском язке] с пробелом перед ним. Например, введя пробел и "myNewClass", [Вы] создадите новый CSS класс, называемый "myNewClass" и он будет вставлен как класс для этого пункта меню. В нашем случае, например, выше указанный класс изменится на
<div class="componentheading myNewClass">
Для изменения названия существующего класса, введите в данный параметр новое название класса без пробела перед ним.
Например, ввод "_mySuffix" (без пробела в начале) принудит [код] HTML измениться на
<div class="componentheading_mySuffix">
В целом, рекомендуется создавать новые классы, используя перед [их названиями] пробел. Таким образом CSS стили данного компонента, которые используют [предварительно определенные] стандартные названия классов, продолжат работать [без изменений]. Вы можете использовать название нового класса для того, чтобы добавить к конкретному компоненту любой желаемый стиль без необходимости повторного создания уже существующих [для него] кодов CSS. Учтите, что если Вы создадите какое-либо новое название класса, [то] Вам необходимо удостовериться [в том], что он имеет уникальное название, [которое] не конфликтует с названиями уже существующих классов.
Расширение - это пакет программного обеспечения, который каким-либо образом расширяет Вашу установку [системы] Joomla!. Небольшой набор расширений включен в установку Joomla! по умолчанию, но гораздо больше [их] имеется на [официальном каталоге расширений] Joomla! Extensions Directory.
Термин "расширение - это общий термин и существуют следующие специальные типы [расширений]:
Компонент (начиная с ) – добавляет на Ваш веб-сайт произвольные функции, которые можно выбирать в меню
Язык (начиная с ) – определяет дополнительный язык Вашего веб-сайта
Библиотека (начиная с ) – предоставляет функции, которые можно использовать в других расширениях
Модуль (начиная с ) – показывает менее важные данные в боковом блоке, возможно - на нескольких веб-страницах
Package (since ) – объединяет связанные между собой расширения
Плагин (начиная с ) – изменяет содержимое в материалах или предоставляет функции для дополнения других расширений
Шаблон (начиная с ) – определяет внешний облик, ощущение и навигационные возможности Вашего веб-сайта
Для обзора наиболее важных типов расширений и предоставляемого ими функционала смотрите Типы расширений.
Модули являются легковесными и гибкими расширениями, используемыми для рендеринга веб-страницы. На типичной веб-странице эти модули часто являются "коробками", устроенными вокруг какого-либо компонента. Хорошо знакомым примером может быть модуль входа. Модули назначаеются согласно пункта меню, так что Вы можете решать, скрывать или показывать, к примеру, модуль входа в зависимости от того, на какой веб-странице веб-сайта данный пользователь находится в данный момент. Некоторые модули связаны с компонентами: например, модуль последних новостей, связан с компонентом содержимого [ядра системы Joomla!] com_content, и показывает ссылки на самые новые объекты содержимого. Модулям, однако, совсем не обязательно быть связанными с компонентами. Им даже [вообще] не нужно быть связанными с чем-либо и они могут быть просто статичным кодом HTML или текстом.
Modules are managed in the Joomla! Administrator view by the Module Manager. More information about module management can be found on the appropriate version help screens.
Система Joomla! обширно использует шаблоны проектирования [в архитектуре] Модель-Вид-Контроллер.
Как только [система] Joomla! начала обработку какого-либо запроса какого-либо пользователя, такого как [запрос] GET для некоторой определенной страницы, или [запрос] POST содержащихся в какой-либо форме данных, одним из первых проводимых [системой] Joomla! действий является анализ URL ссылки для определения, какой компонент будет ответственен за обработку данного запроса и передача управления этому тому компоненту.
Если этот компонент был спроектирован [согласно схемы] MVC, то он передаст управление конкретному контроллеру. Этот контроллер отвечает за анализ данного запроса и определения какая модель/какие модели будут нужны для удовлетворения этого запроса и какая модель/какие модели должны быть использованы для возвращение результатов обратно данному пользователю.
Та модель/те модели инкапсулируют эти данные, используемые данным компонентом. В большинстве случаев эти данные будут поступать из базы данных, - либо [самой системы] Joomla!, либо какой-либо внешеней, но также возможно, что данная модель обретет данные из других источников, таких как работающий на другом сервере [интерфейс] API. В подходящих случаях, эта модель также отвечает за обновление базы данных. Цель этой модели - изолировать данный контролер и вид от подробных данных, [относящихся] к тому, как эти данные были получены или изменены.
Этот вид отвечает за генерацию вывода данных, отправляемых данным компонентом на веб-браузер. Он запрашивает у данной модели любые необходимые данные и форматирует их соответственным образом. Например, какой-либо список извлеченных из данной модели объектов данных может быть заключен данным видом в [код] таблицы в HTML.
Поскольку Joomla! спроектирована быть существенно модулярной [системой], выведенные данным компонентом на веб-страницу данные являются только частью всей полной веб-страницы, [показанной в заключение] пользователю. Как только данный вид сгенерировал вывод данных, данный компонент передает контроль обратно фреймворку [системы] Joomla, которая затем загружает и испольняет [код] шаблона. Данный шаблон объединяет выводимые данные этого компонента и любых других активных на данной веб-странице модулей, с тем что бы они [(эти выводимые данные)] были доставлены на веб-браузер как некая отдельная веб-страница.
Для того, чтобы предоставить веб-дизайнерам, которых может интересовать только новый дизайн, а не манипулирование находящимся под [дизайном] кодом, больше мощи и гибкости, [система] Joomla! разделяет традиционный вид на вид и макет. Сам вид вытягивает данные из данной модели, как в традиционном шаблоне проектирования MVC, но затем просто делает эти данные доступными данному макету, который отвечает за форматирование этих данных для [их] представления конкретному пользователю. Преимущество этого разделения в том, что система шаблонов Joomla предоставляет некий простой механизм для переопределения макетов в шаблоне. Эти переопределения макета (часто называемые "переопределение шаблона", поскольку они формируют часть конкретного шаблона, хотя [то] что фактически переопределяется - это данный макет) входят в состав шаблона и предоставляют дизайнеру данного шаблона полный контроль над всеми данными, выводимыми ядром Joomla! и любыми совместимыми со [схемой] шаблонного проектирования MVC установленными сторонними расширениями.
Компонент - это вид расширения [системы] Joomla!. Компоненты являются главными функциональными единицами [системы] Joomla! и их можно рассматривать как мини-приложения. Простейшей аналогией будет [представить себе что] Joomla! - это операционная система и [ее] компоненты - это приложения рабочего стола. Создаваемое каким-либо компонентом содержимое обычно показано в центре главной части шаблона (в зависимости от самого шаблона).
Большинство компонентов состоят из двух частей: административной части и лицевой части. Лицевая часть - это то, что используется для предоставления веб-страниц Вашего вебсайта, когда [их] запрашивают во время обычной работы [с] сайтом. Административная часть предоставляет интерфейс для настройки и управления различных аспектов данного компонента и доступна [к нему] через административное приложение.
Joomla! поставляется с набором компонентов ядра [системы, такими] как система управления содержимым, контактные веб-формы и [система управления] веб-ссылками.
В данной статье мы рассмотрим, как добавить вид базового пакета Joomla! компонента. Для этого примера мы будем продолжать нашу работу на Hello World! компонент.
Существует несколько способов обновления для Joomla! компонент. В этом уроке мы сосредоточимся на варианте 2.
1
Вручную добавить файлы в <path_to_joomla>/
2
Обновление при помощи Joomla! Менеджер расширений и оригинальный каталог, несжатый, используемые для установки компонента
Чтобы добавить представление вам нужно будет перейти к com_helloworld, что это оригинальный каталог мы сделали для нашего компонента. Используя ваш любимый файловый менеджер, создать или обновить следующие файлы; как создать или изменить файлы, добавить исходный код для каждого файла, который находится в подробности файла.
Обновить Компонент Hello World! в Joomla! сайт, пожалуйста, выполните те же действия для исходной установки.
Файл Детали
site/helloworld.php
<?php/** * @package Joomla.Administrator * @subpackage com_helloworld * * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // No direct access to this filedefined('_JEXEC') or die('Restricted access'); // Get an instance of the controller prefixed by HelloWorld$controller = JControllerLegacy::getInstance('HelloWorld'); // Perform the Request task$input = JFactory::getApplication()->input;$controller->execute($input->getCmd('task')); // Redirect if set by the controller$controller->redirect();
site/controller.php
<?php
/**
* @package Joomla.Administrator
* @subpackage com_helloworld
*
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* Hello World Component Controller
*
* @since 0.0.1
*/
class HelloWorldController extends JControllerLegacy
{
}
site/views/helloworld/view.html.php
<?php
/**
* @package Joomla.Administrator
* @subpackage com_helloworld
*
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* HTML View class for the HelloWorld Component
*
* @since 0.0.1
*/
class HelloWorldViewHelloWorld extends JViewLegacy
{
/**
* Display the Hello World view
*
* @param string $tpl The name of the template file to parse; automatically searches through the template paths.
*
* @return void
*/
function display($tpl = null)
{
// Assign data to the view
$this->msg = 'Hello World';
// Display the view
parent::display($tpl);
}
}
site/views/helloworld/tmpl/default.php
<?php
/**
* @package Joomla.Administrator
* @subpackage com_helloworld
*
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
<h1><?php echo $this->msg; ?></h1>
index.html Примечание - один и тот же код используется для всех папок
<html><body bgcolor="#FFFFFF"></body></html>
helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2.0" method="upgrade">
<name>Hello World!</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>December 2013</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- The version string is recorded in the components table -->
<version>0.0.2</version> <!-- The description is optional and defaults to the name -->
<description>Description of the Hello World component ...</description>
<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
<filename>controller.php</filename> <folder>views</folder> </files>
<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_helloworld'>Hello World!</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
Код Пояснения
В случае, если вам любопытно, почему это работает так, как он делает.
helloworld.php
defined('_JEXEC') or die('Restricted access');
Это позволяет для безопасной точки входа в интерфейс Joomla! Платформа. JEXEC содержится подробное объяснение.
"JControllerLegacy" является базовым классом для Joomla! Контроллер. Для того, чтобы наш сайт использовал контроллеры, мы должны расширить этот класс в нашем компоненте. В "getInstance" статический метод "JControllerLegacy" класса создадим контроллер. В коде, приведенном выше, это будет инстанцировать объект класса контроллера по имени "HelloWorldController". Joomla будет искать объявление этого класса в <path_to_joomla>/htdocs/components/com_helloworld/controller.php.
После того, как контроллер создан, мы инструктируем контроллер для выполнения задачи, как определено в URL: <yoursite>/joomla/index.php?option=com_helloworld&task=<task_name>. Если задача поставлена, задача по умолчанию 'display' будет принято. Когда дисплей не используется, 'view' переменная будет решать, что будет отображаться. Другими распространенными задачами являются save, edit, new и т. д.
$controller->redirect();
Контроллер может принять решение перенаправить страницу, обычно после того, как задание 'save' было завершено. Это последнее заявление заботится о фактическом перенаправлении.
Основные точки входа, helloworld.php, по сути, передает управление контроллеру, который обрабатывает задачу, которая была указана в запросе. Наш компонент конкретного контроллера больше ничего не делает, чем то, что делает родительский класс, потому наш класс контроллера пуст.
controller.php
class HelloWorldController extends JControllerLegacy
{
}
Когда ни одна задача не подается в запрос переменным, то будет выполнена задача по умолчанию. Сейчас это задача отображения по умолчанию. В JControllerLegacy классе есть такая задача. В нашем примере она будет показывать надпись с именем helloworld.
view.html.php
class HelloWorldViewHelloWorld extends JViewLegacy
{
function display($tpl = null)
{
// Assign data to the view
$this->msg = 'Hello World';
// Display the view
parent::display($tpl);
}
}
Представление задает текст для вывода и затем вызывает базовый класс дисплея.!Н!"JViewLegacy" является базовым классом для Joomla! View. В нашем случае этот метод будет отображать данные с использованием tmpl/default.php файла.
default.php
<h1><?php echo $this->msg; ?></h1>
Этот файл шаблона будет включен в JViewLegacy класс. Поэтому, здесь переменная $this имеет ввиду HelloWorldViewHelloWorld класса.