Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Текст ниже основан на комопоненте view-controller для CMS Joomla 1.5. Для полного понимания статьи можно прочитать создание комопонета «Hello world», где в итоге получается простейший компонент приветствия, который можно считать образцом кода MVC. Он прост и фактически ничего не делает поэтому необходима модель, создание которой мы рассмотрим ниже.
Модель — часть компонента, которая предоставляет данные для вида по его запросу посланому через Контроллер. Такой метод часто освобождает от рутинной работы и от хаоса в коде, предоставляет возможность управлять данными удобным способом в дополнение к коду, который посылает запрос данных из Модели.
Модель будет содержать классы функций: добавить, удалить и модернизировать информацию в таблицах базы данных. В общем основная структура доступа к данным должна быть кратко описана в модели.
При подобной реализации вся обработка данных ложиться на модель и если вдруг случиться такое, что нам необходимо изменить источник данных с MySQL на RSS-ленту, то изменится только модель, не затрагивая всего остального кода — шаблона (он же Вид, Представление, View) и контроллер (controller).
При переносе точки запроса данных в общем алгоритме компонента, вносятся изменение только в код Представления.
В этом уроке, будем моделировать событие компонента «Hello», которое генерирует приветствие. Таким образом в компоненте будет один запрос к модели getGreeting(), который возвратит строку «Hello, World!».
Код модели для компонента "Hello Word"
Строка, которая начинается с jimport - это функция используется, для подключения библиотек Joomla. В данном случае подгружается структура, которая требуются для нашего компонента. Этот специфический запрос загрузит файл
<корень сайта>/libraries/joomla/application/component/model.phpТочки "." используются как директивные слеши, и последняя часть - имя загружаемого файла. Таким образом можно загружать любые библиотеки из директории "libraries".
Это специфический файл содержит определение класса JModel, который является необходимым для нормальной работы модели компонента, поэтому наш класс должен его расширять.
Создав Модель, необходимо изменить Представление - добавить запрос к Модели для получения строки приветствия.
Структура Joomla - организована таким способом, что контроллер автоматически загрузит модель, которая имеет то же название что и представление (view) и передаст доступ к своему классу. Так как Представление называется "Hello", модель "Hello" будет автоматически загружена и опубликована в Представление (view). Поэтому, мы можем легко объявить функцию класса модели, используя метод класса JView::getModel().
В код файла view.html.php вносим изменения. Заменяем строку:
На строку
Так должен выглядеть итоговый код файла view.html.php:
В завершение работы над данной версией компонента, необходима в секцию Site (Front End) добавить файлы Модели:
В итоге мы имеем простой MVC-компонент. Каждый элемент очень прост, но в целом компонент уже обладает более большей гибкостью и возможностью.
Что за постоянный плагиат, куча сайтов и на всех один и тот же пример!!! Вот и кому это может быть интересно! Напишите что-нибудь уже своё, если у Вас есть знания в программировании
не нравится, не читайте, ищите уникальное или пишите свое, когда разберетесь.
В тексте не указано, что файл модели нужно назвать hello.php и вложить в новую папку models папки компонента фронт-енда. Без прикрепленного файла непонятна файловая структура получившихся изменений.
Спасибо, очень хорошее описание, еще хотелось бы материал в котором рассказывается, как это все упаковывать следует
Спасибо отличная статья. Пока что все доходчиво. Даже разобрался что 'greeting' можно изменить например на myVar и потом в шаблоне вызвать например так <?php echo $this->myVar ; ?>, можно так же передавать несколько таких переменных связанных с функциями в модели.
Спасибо ребята отличный проект
Hi there mates, how is all, and what you wish for to say concerning this article, in my view its in fact awesome designed for me.
Good way of explaining, and fastidious paragraph to obtain information on the topic of my presentation subject matter,
which i am going to convey in academy.
Hey! Do you know if they make any plugins to safeguard
against hackers? I'm kinda paranoid about losing everything I've worked hard on. Any suggestions?
If some one needs expert view about blogging afterward i propose him/her
to visit this webpage, Keep up the pleasant work.
Hey there this is kinda of off topic but I was
wanting to know if blogs use WYSIWYG editors or if you have to manually
code with HTML. I'm starting a blog soon but have no coding knowledge so
I wanted to get advice from someone with experience. Any help would be enormously appreciated!
I have read so many articles or reviews regarding the blogger lovers except this paragraph is really a good post, keep it
up.
It is not my first time to pay a quick visit this web site,
i am visiting this web page dailly and get fastidious
data from here everyday.
What i do not understood is if truth be told how you
are not actually much more neatly-preferred than you may be right now.
You are very intelligent. You recognize therefore considerably when it comes
to this topic, produced me for my part consider it from numerous various angles.
Its like women and men don't seem to be involved except
it's something to accomplish with Lady gaga! Your own stuffs great.
All the time handle it up!
I was suggested this website by my cousin. I am not sure whether this post is written by him as nobody else know such detailed
about my problem. You're incredible! Thanks!
Amazing! This blog looks just like my old one!
It's on a totally different topic but it has pretty much
the same layout and design. Outstanding choice of
colors!
Hey there! I've been following your website for a while now and finally got
the bravery to go ahead and give you a shout out from Porter Texas!
Just wanted to mention keep up the good work!
Attractive component of content. I simply stumbled upon your site and in accession capital to assert that I acquire in fact enjoyed account your blog posts.
Anyway I will be subscribing on your augment or even I fulfillment you
access consistently fast.
We're a group of volunteers and starting a new scheme in our community.
Your website offered us with valuable info to work on. You have done a formidable job and our whole community will be thankful to you.
This website was... how do I say it? Relevant!! Finally I've found
something that helped me. Thanks a lot!
Hi, I do think this is a great website. I stumbledupon it ;) I will revisit once again since i have book-marked it.
Money and freedom is the greatest way to change,
may you be rich and continue to help other people.
you're really a just right webmaster. The site loading speed is amazing.
It kind of feels that you're doing any unique trick. In addition, The contents are masterwork.
you've done a wonderful process on this subject!
Howdy would you mind letting me know which webhost you're utilizing?
I've loaded your blog in 3 different internet browsers and I
must say this blog loads a lot faster then most. Can you suggest a good hosting provider
at a reasonable price? Thank you, I appreciate it!
Saved as a favorite, I like your site!