Goldensites | CMS Joomla | Joomla 1.6 | Статьи Joomla 1.6 | Продолжаем разработку компонента для Joomla! 1.6 (Часть 4)

Продолжаем разработку компонента для Joomla! 1.6 (Часть 4)

Сначало прочтите Создание компонента Joomla! 1.6 (Часть 3) Добавляем тип пункта меню
Продолжим разработку компонента для Joomla! 1.6
В платформе Joomla! 1.6 модели отвечают за управление данными. Первая функция, которая должна быть определена для модели - функция получения данных.

Создаем файл yoursite.ru/components/com_helloworld/models/helloworld.php файл, содержащий:
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla modelitem library
jimport('joomla.application.component.modelitem');
 
/**
 * HelloWorld Model
 */
class HelloWorldModelHelloWorld extends JModelItem
{
 /**
 * @var string msg
 */
 protected $msg;
 
 /**
 * Get the message
 * @return string The message to be displayed to the user
 */
 public function getMsg() 
 {
 if (!isset($this->msg)) 
 {
 $this->msg = 'Hello World!';
 }
 return $this->msg;
 }
}


Класс HelloWorldViewHelloWorld запрашивает у модели данные, используя метод get класса JView:
yoursite.ru/components/com_helloworld/views/helloworld/view.html.php
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla view library
jimport('joomla.application.component.view');
 
/**
 * HTML View class for the HelloWorld Component
 */
class HelloWorldViewHelloWorld extends JView
{
 // Overwriting JView display method
 function display($tpl = null) 
 {
 // Assign data to the view
 $this->msg = $this->get('Msg');
 
 // Check for errors.
 if (count($errors = $this->get('Errors'))) 
 {
 JError::raiseError(500, implode('<br />', $errors));
 return false;
 }
 // Display the view
 parent::display($tpl);
 }
}


Теперь модифицируем файл helloworld.xml и отражаем в нем модель:
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="1.6.0" method="upgrade">
 
 <name>Hello World!</name>
 <!-- The following elements are optional and free of formatting conttraints -->
 <creationDate>November 2009</creationDate>
 <author>John Doe</author>
 <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.4</version>
 <!-- The description is optional and defaults to the name -->
 <description>Description of the Hello World component ...</description>
 
 <update> <!-- Runs on update; New in 1.6 -->
 <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>
 <folder>models</folder>
 </files>
 
 <administration>
 <!-- Administration Menu Section -->
 <menu>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.xml
* site/index.html
* site/helloworld.php
* site/controller.php
* site/views/index.html
* site/views/helloworld/index.html
* site/views/helloworld/view.html.php
* site/views/helloworld/tmpl/index.html
* site/views/helloworld/tmpl/default.xml
* site/views/helloworld/tmpl/default.php
* site/models/index.html
* site/models/helloworld.php
* admin/index.html
* admin/helloworld.php
* admin/sql/index.html
* admin/sql/updates/index.html
* admin/sql/updates/mysql/index.html
* admin/sql/updates/mysql/0.0.1.sql

Создайте установочний файл ZIP или загрузите его Установите его с помощью менеджера расширений Joomla!1.6.

Далее читаем Создание компонента для Joomla! 1.6 (часть 5)- Добавляем параметры запроса в пункт меню

Комментарии 

 
0 #1 Kristi 02.08.2022 12:38
My brother recommended I might like this web site. He was once entirely right.
This submit actually made my day. You can not consider simply how much time I had spent for this info!

Thanks!

My webpage ... sun and fun lakeland: http://aroundtheworldinaday.com
Цитировать