RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Создание MVC компонента Joomla 1.5 - Шаг 5, Основы фреймворка для Back-end

Добавление функциональности

Итак, пока наш администраторский раздел не очень полезен. Пока он не делает ничего, кроме отображений содержимого базы данных.

Для добавления полезных функций необходимо добавить несколько кнопок и ссылок.

Панель инструментов

Возможно, вы обратили внимание на панель инструментов, отображаемую вверху панелей администратора компонент Joomla. Нашему компоненту она также необходима. Joomla облегчает ее создание. Добавим кнопки Удалить записи, Изменить записи, и Создать новые записи. Также добавим заголовок, который будет отображаться на нашей панели инструментов.

Это можно сделать, добавив немного кода в представление. Чтобы добавить кнопки, используем статические методы из класса JToolBarHelper. Код выглядит так:

JToolBarHelper::title(   JText::_( 'Hello Manager' ), 'generic.png' );
JToolBarHelper::deleteList();
JToolBarHelper::editListX();
JToolBarHelper::addNewX();

Эти три метода создают соответствующие кнопки. Метод deleteList() может принимать три параметра: первый параметр является строкой, спрашивающей пользователя о подтверждении удаления. Второй параметр является задачей, которая отправляется вместе с запросом (по умолчанию "remove"), а третий - текст, отображаемый под кнопкой.

Методы editListX() и addNewX() могут получать два дополнительных параметра. Первый - задача (по умолчанию - соответственно, edit и add), второй - текст, отображаемый под кнопкой.

*Возможно, вы обратили внимание на использование метода JText::_ как в прошлом шаблоне, так и здесь. Это функция, значительно облегчающая перевод компонента. Метод JText::_ ищет текстовую строку в языковом файле компонента и возвращает переведенную строку. Если перевод не найден, функция возвращает строку, переданную ей. Если компонент нужно перевести на другой язык, все, что нужно сделать - создать языковый файл, включающий строки и их перевод на требуемый язык.

Флажки и ссылки

Теперь у нас есть кнопки. Две из этих кнопок управляют существующими записями. Но как узнать, с какими именно записями необходимо работать? Пусть это определит пользователь. Для этого нам нужно добавить флажки в таблицу, чтобы пользователь мог выбрать необходимые записи. Это реализовано в нашем шаблоне.

Для добавления флажков нам необходимо добавить в таблицу дополнительный столбец. Мы добавим столбец между двумя имеющимися.

В заголовке столбца добавим флажок, который можно использовать для выбора или сброса всех флажков:

<th width="20">
    <input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count( $this->items ); ?>);" />
</th>

Функция Javascript checkAll встроена в основной пакет Joomla! Javascript, предоставляющий нужную нам функциональность.

Теперь необходимо добавить флажки в каждую строку. У класса JHTML есть метод JHTML::_(), который создаст для нас флажки. Добавим следующие строки в наш цикл:

$checked = JHTML::_('grid.id',   $i, $row->id );

После строки:

$row = $this->items[$i];

Затем добавим ячейку между двумя имеющимися:

<td>
    <?php echo $checked; ?>
</td>

Необходимость выбирать флажок, перемещаться вверх страницы и нажимать кнопку слишком обременительна. Мы добавим ссылку, позволяющую перейти непосредственно к форме редактирования. Следующие строки добавим после вызова метода JHTML::_() для создания ссылки HTML:

$link = JRoute::_( 'index.php?option=com_hello>controller=hello>task=edit>cid[]='. $row->id );

Добавляем ссылку в ячейку, отображая текст:

<td>
    <a href="/<?php echo $link; ?>"><?php echo $row->greeting; ?></a>
</td>

Обратите внимание, что ссылка указывает на контроллер hello. Этот контроллер обработает данные наших приветствий

Если вы помните, у нас были четыре скрытых поля внизу формы. Первое поле носило имя option. Вторым полем является поле task. Оно получает данные в случае нажатия одной из кнопок на панели инструментов. В случае удаления этого поля будет получена ошибка Javascript и кнопки не будут работать. Третье поле - boxchecked. Оно хранит количество отмеченных флажков. Кнопки редактирования и удаления проверяют условие превышения этой величиной нуля, в противном случае не позволяя отправление данных формы. Четвертое поле - это поле контроллера, используемое для определения того, что данные, отправленные из этой формы, будут обработаны контроллером hello.

Вот полный код файла default.php:

<?php 
/**
 * Default admin hello view for Hello World Component
 * 
 * @package    Joomla.Tutorials
 * @subpackage Components
 * @link http://dev.joomla.org/component/option,com_jd-wiki/Itemid,31/id,tutorials:modules/
 * @license        GNU/GPL
 */

defined('_JEXEC') or die('Restricted access');

?>
<form action="index.php" method="post" name="adminForm">
<div id="editcell">
    <table class="adminlist">
    <thead>
        <tr>
            <th width="5">
                <?php echo JText::_( 'ID' ); ?>
            </th>
            <th width="20">   <!-- checkbox to check all items -->
                <input type="checkbox" name="toggle" value="" onclick="checkAll( <?php echo count($this->items); ?> );" /> 
            </th>
            <th>
                <?php echo JText::_( 'Greeting' ); ?>
            </th>
        </tr>            
    </thead>

    <?php
    $k = 0;

    for ($i=0, $n=count( $this->items ); $i < $n; $i++)
    {
        $row = $this->items[$i];
        $checked = JHTML::_('grid.id', $i, $row->id );     //get checkbox HTML
        // get link HTML to edit task for this greeting
        $link = JRoute::_( 'index.php?option=com_hello&controller=hello&task=edit&cid[]='. $row->id );
    ?>
        <tr class="<?php echo "row$k"; ?>">
            <td>
                <?php echo $row->id; ?>
            </td>
            <td>
                 <?php echo $checked; ?> 
            </td>
            <td>
                <a href="/<?php echo $link; ?>"><?php echo $row->greeting; ?></a>
            </td>
        </tr>
    <?php
        $k = 1 - $k;    //switch row class
    }
    ?>
    </table>
</div>
<input type="hidden" name="option" value="com_hello" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="boxchecked" value="0" />
<input type="hidden" name="controller" value="hello" />
</form>

Наше представление hellos закончено. Можно испытывать компонент, чтобы увидеть результаты. Теперь, когда представление Hellos завершено, время обратить внимание на представление и модель Hello. Настоящая работа выполняется именно здесь.

Контроллер Hello

Единственной работой контроллера по умолчанию является отображение представлений.

Вы должны иметь возможность выполнять задачи, запускаемые из представления Hellos: добавлять, изменять и удалять.

Фактически, добавление и изменение являются одним и тем же заданием: они оба отображают пользователю форму, позволяющую редактировать приветствие. Единственная разница в том, что при создании отображается пустая форма, а при изменении - форма с данными. Поскольку они являются похожими, мы будем выполнять задачу добавления с помощью обработчика задачи изменения. Это указывается в нашем конструкторе:

/**
 * constructor (registers additional tasks to methods)
 * @return void
 */
function __construct()
{
    parent::__construct();

    // Регистрация дополнительных задач 
    $this->registerTask( 'add'  ,     'edit' );
}

Первый параметр JController::registerTask является задачей, второй - метод ее выполнения

Начнем с обработки задачи изменения. В этом случае работа контроллера проста. Все, что ему нужно - указать представление и макет для загрузки (в нашем случае представление hello и макет формы). Мы также укажем Joomla отключить главное меню во время изменения приветствия. Это предотвращает оставление открытых несохраненных записей.

Наш обработчик задачи изменения выглядит следующим образом:

/**
 * display the edit form
 * @return void
 */
function edit()
{
    JRequest::setVar( 'view', 'hello' );
    JRequest::setVar( 'layout', 'form'  );
    JRequest::setVar('hidemainmenu', 1);

    parent::display();
}

Представление Hello

Представление Hello отображает форму, позволяющую пользователю редактировать приветствие. Метод display должен выполнять несколько простых операций:

  • получить данные из модели
  • создать панель инструментов
  • поместить данные в шаблон
  • вызвать метод display() для отрисовки шаблона

Это немного сложнее, так как одно представление выполняет как редактирование, так и добавление. Наша панель инструментов должна сообщать пользователю о выполняемой в данный момент операции - добавление это или редактирование, то есть нужно определить выполняемую задачу.

Когда мы получаем запись для отображения из модели, мы можем использовать эти данные для определения текущей задачи. Если задачей является редактирование, значит, поле id записи было изменено. Если это новая задача, значит, его значение не будет установлено. Эта деталь может помочь определить, создается ли новая запись, или редактируется существующая.

Также добавим на панель инструментов две кнопки: close и cancel. Функциональность будет практически одинаковой, но в зависимости от текущей задачи отображаться будут разные кнопки. В случае новой записи будет отображаться кнопка cancel, а в случае изменения существующей - кнопка close.

Итак, метод display будет выглядеть так:

/**
 * display method of Hello view
 * @return void
 **/
function display($tpl = null)
{
    //получаем приветствие
    $hello        = $this->get('Data');
    $isNew        = ($hello->id < 1);

    $text = $isNew ? JText::_( 'New' ) : JText::_( 'Edit' );
    JToolBarHelper::title(   JText::_( 'Hello' ).': <small><small>[ ' . $text.' ]</small></small>' );
    JToolBarHelper::save();
    if ($isNew)  {
        JToolBarHelper::cancel();
    } else {
        // для существующих записей кнопка переименовывается на `close`
        JToolBarHelper::cancel( 'cancel', 'Close' );
    }

    $this->assignRef('hello',        $hello);
    parent::display($tpl);
}

Модель Hello

Для нашего представления необходимы данные. Это значит, что нужно создать соответствующую модель.

У нашей модели будут два свойства: _id и _data. _id будет хранить идентификатор приветствия, data - данные.

Начнем с конструктора, который получает id из запроса:

/**
 * Constructor that retrieves the ID from the request
 *
 * @access    public
 * @return    void
 */
function __construct()
{
    parent::__construct();

    $array = JRequest::getVar('cid',  0, '', 'array');
    $this->setId((int)$array[0]);
}

Метод JRequest::getVar() используется для получения данных из запроса. Первым параметром является имя переменной формы. Второй параметр - значение по умолчанию для присвоения в случае, если значение не найдено. Третий параметр - это имя хэша для получения значения из get, post, и т.д., и последнее значение - тип данных, который следует установить для значения.

Конструктор получит первое значение из массива cid и присвоит его id.

Метод setId() может использоваться для установки id. Изменение id, на которое указывает наша модель, означает, что points указывает на неправильные данные. Следовательно, устанавливая значение id, мы очищаем свойство data:

/**
 * Method to set the hello identifier
 *
 * @access    public
 * @param    int Hello identifier
 * @return    void
 */
function setId($id)
{
    // Устанавливаем id и удаляем данные
    $this->_id        = $id;
    $this->_data    = null;
}

Наконец, нам нужен метод для получения data: getData()

getData проверит, установлено ли значение свойства _data. Если да, он просто возвратит его. В противном случае будут получены данные из базы данных.

/**
 * Method to get a hello
 * @return object with data
 */

function &getData()
{
    // Загружаем данные
    if (empty( $this->_data )) {
        $query = ' SELECT * FROM #__hello '.
                '  WHERE id = '.$this->_id;
        $this->_db->setQuery( $query );
        $this->_data = $this->_db->loadObject();
    }
    if (!$this->_data) {
        $this->_data = new stdClass();
        $this->_data->id = 0;
        $this->_data->greeting = null;
    }
    return $this->_data;
}

Форма

Наконец, все что нам осталось - создать форму для данных. Поскольку мы определили макет как форму, форма будет размещена в файле каталога tmpl представления hello под именем form.php:

<?php defined('_JEXEC') or die('Доступ ограничен!'); ?>
<form action="index.php" method="post" name="adminForm" id="adminForm">
<div class="col100">
    <fieldset class="adminform">
        <legend><?php echo JText::_( 'Details' ); ?></legend>
        <table class="admintable">
        <tr>
            <td width="100" align="right" class="key">
                <label for="greeting">
                    <?php echo JText::_( 'Greeting' ); ?>:
                </label>
            </td>
            <td>
                <input class="text_area" type="text" name="greeting" id="greeting" size="32" maxlength="250" value="<?php echo $this->hello->greeting;?>" />
            </td>
        </tr>
    </table>
    </fieldset>
</div>
<div class="clr"></div>
<input type="hidden" name="option" value="com_hello" />
<input type="hidden" name="id" value="<?php echo $this->hello->id; ?>" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="controller" value="hello" />
</form>

Обратите внимание: в дополнение к полю ввода присутствует скрытое поле для id. Пользователь не должен изменять id, поэтому мы просто незаметно помещаем его в форму.

Смотрите также:
Комментарии (48) Добавить комментарий
  • Uphotaaccorce
    Uphotaaccorce
    16 Марта 2011, 00:48
     ↑  0  ↓     ответ

    Nice site . :)

  • Юрий
    Юрий
    27 Ноября 2011, 01:32
     ↑  +2  ↓     ответ

    вот в этой строчке ошибка:

    $link = JRoute::_( 'index.php?option=com_hello>controller=hello>task=edit>cid[]='. $row->id );

    нужно заменить > на &

  • Юрий
    Юрий
    27 Ноября 2011, 03:52
     ↑  +5  ↓     ответ

    Мда, конечно спасибо, но чем дальше в лес тем больше дров. Можно ж было всю статью перевести а не кусками да и перевод хромает. Если лениво всю статью переводить или пользуетесь автоматическим переводчиком, так хоть поставьте ссылку на оригинал, чтобы пользователь мог дочитать все что вы не перевели и не дописали.

    Для всех кто дошел до этого урока и чот недопонимает, вот ссылка на оригинал:

    docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_6_-_Adding_Backend_Actions

  • Сергей
    Сергей
    20 Декабря 2011, 22:56
     ↑  +1  ↓     ответ

    Юрий, огромное спасибо за ссылку, читать оригинал на много понятнее!

  • Илья
    Илья
    27 Февраля 2013, 23:52
     ↑  0  ↓     ответ

    Да. не аккуратно сделали!

  • Александр
    Александр
    25 Марта 2013, 20:57
     ↑  0  ↓     ответ

    Ничего не понял. Работаем вроде в административной части, потом резко прыгаем на фронт ? Может я не так понимаю что-то ?

  • http://tinyurl.com/quest-bars-cheap-77971
    http://tinyurl.com/quest-bars-cheap-77971
    24 Ноября 2019, 02:58
     ↑  0  ↓     ответ

    I loved as much as you will receive carried out right here.

    The sketch is attractive, your authored material stylish.

    nonetheless, you command get bought an nervousness over

    that you wish be delivering the following. unwell unquestionably come further

    formerly again since exactly the same nearly very often inside

    case you shield this increase.

  • tinyurl.com
    tinyurl.com
    25 Ноября 2019, 07:14
     ↑  0  ↓     ответ

    This info is invaluable. Where can I find

    out more?

  • coconut oil are
    coconut oil are
    25 Ноября 2019, 22:44
     ↑  0  ↓     ответ

    We're a group of volunteers and starting a new scheme

    in our community. Your web site provided us with valuable info to work on. You've done a

    formidable job and our entire community will be thankful to you.

  • plenty of fish dating site
    plenty of fish dating site
    26 Ноября 2019, 16:40
     ↑  0  ↓     ответ

    I like the valuable info you supply for your articles.

    I'll bookmark your blog and test again right here regularly.

    I'm fairly sure I will be informed many new stuff right here!

    Best of luck for the next!

  • ps4 games
    ps4 games
    29 Ноября 2019, 10:14
     ↑  0  ↓     ответ

    I am curious to find out what blog platform you are working with?

    I'm having some minor security problems with my latest blog and I'd

    like to find something more risk-free. Do you have any suggestions?

  • quest bars cheap
    quest bars cheap
    30 Ноября 2019, 14:10
     ↑  0  ↓     ответ

    It's nearly impossible to find experienced people for this subject, however,

    you seem like you know what you're talking about! Thanks

  • quest bars cheap
    quest bars cheap
    01 Декабря 2019, 17:53
     ↑  0  ↓     ответ

    Hello to all, how is the whole thing, I think every one is getting more from this

    web site, and your views are fastidious designed for new people.

  • quest bars cheap
    quest bars cheap
    02 Декабря 2019, 17:20
     ↑  0  ↓     ответ

    An impressive share! I have just forwarded this onto a colleague who had been doing a little homework on this.

    And he in fact bought me lunch because I found

    it for him... lol. So let me reword this.... Thanks

    for the meal!! But yeah, thanx for spending time

    to discuss this topic here on your site.

  • quest bars cheap coupon twitter
    quest bars cheap coupon twitter
    03 Декабря 2019, 06:53
     ↑  0  ↓     ответ

    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?

  • quest bars cheap coupon twitter
    quest bars cheap coupon twitter
    03 Декабря 2019, 14:13
     ↑  0  ↓     ответ

    I'm really loving the theme/design of your website. Do you ever run into any

    browser compatibility issues? A small number of my blog visitors have complained about my site not working correctly in Explorer but looks great in Opera.

    Do you have any tips to help fix this issue?

  • ps4 games
    ps4 games
    06 Декабря 2019, 03:37
     ↑  0  ↓     ответ

    Highly descriptive article, I loved that bit.

    Will there be a part 2?

  • ps4 games
    ps4 games
    06 Декабря 2019, 10:42
     ↑  0  ↓     ответ

    Excellent site. Plenty of helpful info here.

    I am sending it to a few buddies ans also sharing in delicious.

    And obviously, thanks in your effort!

  • ps4 games
    ps4 games
    06 Декабря 2019, 20:08
     ↑  0  ↓     ответ

    I have read a few just right stuff here. Certainly worth bookmarking for

    revisiting. I surprise how much attempt you put to make one of these magnificent informative website.

  • ps4 games
    ps4 games
    07 Декабря 2019, 08:46
     ↑  0  ↓     ответ

    Hi there colleagues, fastidious paragraph and fastidious arguments commented here, I am genuinely

    enjoying by these.

  • quest bars cheap
    quest bars cheap
    09 Декабря 2019, 19:46
     ↑  0  ↓     ответ

    I take pleasure in, result in I discovered just what I was having

    a look for. You have ended my four day long hunt! God Bless you man. Have a great day.

    Bye

  • ps4 games
    ps4 games
    13 Декабря 2019, 15:19
     ↑  0  ↓     ответ

    It's not my first time to pay a visit this web

    page, i am visiting this web site dailly and obtain pleasant

    information from here every day.

  • ps4 games
    ps4 games
    14 Декабря 2019, 06:35
     ↑  0  ↓     ответ

    If you are going for best contents like myself, only go to see this web

    site everyday as it gives quality contents, thanks

  • coconut oil
    coconut oil
    16 Декабря 2019, 11:40
     ↑  0  ↓     ответ

    I just like the valuable info you supply in your articles. I'll bookmark your weblog and take a look at once more here regularly.

    I am moderately certain I will be told lots of new stuff right right here!

    Good luck for the following!

  • coconut oil
    coconut oil
    16 Декабря 2019, 12:15
     ↑  0  ↓     ответ

    I really like looking through a post that will make men and women think.

    Also, thank you for allowing me to comment!

  • coconut oil
    coconut oil
    18 Декабря 2019, 07:16
     ↑  0  ↓     ответ

    Do you have any video of that? I'd want to find out more details.

  • coconut oil
    coconut oil
    21 Декабря 2019, 17:40
     ↑  0  ↓     ответ

    It's awesome to visit this site and reading the views of all mates concerning this post, while I am also zealous of getting

    experience.

  • http://sinnedbeyondhelp.tumblr.com/
    http://sinnedbeyondhelp.tumblr.com/
    28 Декабря 2019, 12:09
     ↑  0  ↓     ответ

    I got this website from my pal who shared with me

    regarding this site and now this time I am visiting this site and reading very informative articles at this place.

  • match.com free trial
    match.com free trial
    30 Декабря 2019, 05:34
     ↑  0  ↓     ответ

    These are really fantastic ideas in concerning blogging.

    You have touched some fastidious things here. Any way keep up wrinting.

  • plenty of fish vs match.com free trial
    plenty of fish vs match.com free trial
    30 Декабря 2019, 19:30
     ↑  0  ↓     ответ

    Good day I am so delighted I found your site, I really

    found you by error, while I was looking on Askjeeve for something else,

    Nonetheless I am here now and would just like to say thanks

    a lot for a marvelous post and a all round thrilling blog (I also love the theme/design),

    I don't have time to read it all at the minute but I have saved it and also added your RSS feeds, so when I

    have time I will be back to read a great deal more, Please do

    keep up the excellent job.

  • match.com free trial
    match.com free trial
    31 Декабря 2019, 09:00
     ↑  0  ↓     ответ

    Hmm it seems like your site ate my first comment (it was super long) so I guess

    I'll just sum it up what I wrote and say, I'm thoroughly enjoying your blog.

    I as well am an aspiring blog writer but I'm still new to the whole thing.

    Do you have any tips and hints for inexperienced blog

    writers? I'd genuinely appreciate it.

  • https://russellwebster.tumblr.com/
    https://russellwebster.tumblr.com/
    01 Января 2020, 02:59
     ↑  0  ↓     ответ

    This is really fascinating, You're an excessively professional blogger.

    I have joined your feed and stay up for in quest

    of more of your excellent post. Also, I have shared your website in my social networks

  • sling tv
    sling tv
    01 Января 2020, 17:51
     ↑  0  ↓     ответ

    Thank you for the good writeup. It in fact was a amusement account it.

    Look advanced to more added agreeable from you! However,

    how can we communicate?

  • tinyurl.com
    tinyurl.com
    02 Января 2020, 18:54
     ↑  0  ↓     ответ

    Pretty! This has been an incredibly wonderful post.

    Thanks for supplying this information.

  • sling tv
    sling tv
    03 Января 2020, 13:50
     ↑  0  ↓     ответ

    What's up to every one, the contents present at this web page are genuinely amazing for people knowledge,

    well, keep up the good work fellows.

  • sling tv https://asksylphoflight.tumblr.com/
    sling tv https://asksylphoflight.tumblr.com/
    05 Января 2020, 11:18
     ↑  0  ↓     ответ

    Remarkable things here. I'm very glad to look your article.

    Thanks so much and I am taking a look ahead to contact

    you. Will you please drop me a e-mail?

  • sling tv
    sling tv
    07 Января 2020, 07:13
     ↑  0  ↓     ответ

    You need to be a part of a contest for one of the greatest sites on the web.

    I most certainly will recommend this web site!

  • sling tv
    sling tv
    07 Января 2020, 20:14
     ↑  0  ↓     ответ

    Your style is very unique in comparison to other folks I've read stuff from.

    Thank you for posting when you've got the opportunity, Guess I'll just book

    mark this site.

  • sling tv
    sling tv
    08 Января 2020, 02:23
     ↑  0  ↓     ответ

    After checking out a handful of the blog articles on your site, I really like your technique of

    writing a blog. I book-marked it to my bookmark site

    list and will be checking back in the near future. Take a look at my website as well and let me know your opinion.

  • sling tv
    sling tv
    14 Января 2020, 12:47
     ↑  0  ↓     ответ

    A fascinating discussion is definitely worth comment. I do

    think that you should publish more about this subject, it may not be

    a taboo matter but usually folks don't speak about these subjects.

    To the next! Best wishes!!

  • sling tv
    sling tv
    15 Января 2020, 18:36
     ↑  0  ↓     ответ

    What's up, just wanted to say, I enjoyed this article.

    It was practical. Keep on posting!

  • sling tv
    sling tv
    17 Января 2020, 07:13
     ↑  0  ↓     ответ

    If you want to improve your experience just keep visiting this web site and be

    updated with the hottest news posted here.

  • sling tv
    sling tv
    18 Января 2020, 15:43
     ↑  0  ↓     ответ

    Very nice post. I just stumbled upon your blog and wished to

    say that I've really enjoyed surfing around your blog

    posts. After all I'll be subscribing to your feed and I hope you write again very

    soon!

  • sling tv
    sling tv
    19 Января 2020, 09:17
     ↑  0  ↓     ответ

    My brother suggested I might like this website. He was totally right.

    This post truly made my day. You can not imagine simply how

    much time I had spent for this info! Thanks!

  • sling tv best package 2020
    sling tv best package 2020
    25 Января 2020, 02:50
     ↑  0  ↓     ответ

    Thanks for finally writing about >Создание MVC компонента Joomla 1.5 - Шаг

    5, Основы фреймворка для Back-end / Создание компонентов .:.

    Документация Joomla! CMS <Loved it!

  • sling tv
    sling tv
    29 Января 2020, 05:38
     ↑  0  ↓     ответ

    you are actually a just right webmaster.

    The web site loading pace is amazing. It kind of feels that you're doing any distinctive trick.

    In addition, The contents are masterpiece. you have performed

    a great activity in this topic!

  • cbd oil that works 2020
    cbd oil that works 2020
    04 Апреля 2020, 21:31
     ↑  0  ↓     ответ

    I am curious to find out what blog platform you have been working with?

    I'm experiencing some small security problems with my latest site and I'd like to find something more safe.

    Do you have any solutions?

  • utih
    utih
    17 Мая 2021, 11:04
     ↑  0  ↓     ответ

    borrow some sugar porn hard core adult vidieos vintage christmas napkins adult sex clubs in orlando

    bmx xxx videos.

    wait until you see my dick lyrics edens garden adult toys erotic hypnosis dvd vienna adult

    entertianment breast impant forum.

    thigh boots femdom hot west london escort shoes heel

    sex videos free katerina vidal fuck rate my cum shot on food.

    young nude maddee pam anderson blowjob pic russian teens eat shit transgender conference married sex game.

    top sex furniture salim hamdan sexual worlds biggest gang bang adult from

    jail right teach wrong teen dirty fuck tube.

    striped bass restaurant ny teen attacks mother adult club cumberland west virginia adult toy store maine amateur

    free hairy man photo posting.

    watch lesbian ho'down tallwomen porn celebrady porn moms streching teens sex addictiona.

    when adults forget to play women wearing shear bikinis

    gangster girls sex sandy fantasy porn teen camel toe in shorts.

    oxford uk escort extreme bondage story ny presbyterian hospital

    breast cancer college girl poker strip sexy black

    male rnb sigers pictures.

    slime hentai fchan got gay porn businessmen sexy sims games lito cruz porn cherokee pussy.

    adult quail for sale ohio flick hairy https://cutt.ly/7xjOsPv xxx sex mpeg

    movie download bible bible guy guy revolution revolution teen teen.

    free gay chat lines in london ont masturbation in mainstream movies https://bit.ly/2OtqfSM temptations lingerie

    austin julius pleasure.

    paula creamer pics sexy epilators for bikini line https://tinyurl.com/ygr7d9jp nude reema pakistani actress best tit fuck video.

    tish gangbang that 70s show girl nude https://tinyurl.com/ye56bfs5 luxury escort

    bethesda facial plastic surgery.

    nude picture of petra verkaik fcc radio amateur https://tinyurl.com/ye6amcrp teen bangin i love facials cumshots story.

    furniture video sex black shemale pornstar jaguar https://tinyurl.com/yjjdlzn3 clothed mature gallery older free

    nude zone.

    meth slut extruded strip https://tinyurl.com/yhy276sn sex of the baby

    old wives tales free amature mature porn videos.

    pussy lesbo pussy adult girls gone bad trailers https://tinyurl.com/yzge4u3v god and oral sex clit photo pierced.

    busty teen chantale facial trimmers https://bit.ly/2NvwqW4 free aged mature sex movies allinternal teen 2010 jelsoft enterprises ltd.

    classic porn clip roman latex https://bit.ly/30BM459 vintage noiseless pickup height panty

    teen skirts.

    upskirt galleries free pics online christian mentoring teens free actress sex masala swett breasts drunk teenage fuck fest.

    sandy summers pantyhose pics how do you have gentle anal semi truck sex vids stacey dash tits taste my cum in her mouth.

    adult film star kacey your amuatur porn sexy gay chubs friends having sex free videos mature ladies big

    breast.

    view pornstars pass pitts ranch park camarillo and gay stacy keibler getting spanked vintage stockings fetish pics she-male group sex longer videos.

    ass praise teach em fisting torrent mccomas nude clip black chest

    hair hairy orgasm western thumb tea party group

    facebook.

    male breast tissue dallas independent escort huge thick cock intight pussy brown university nude photos promiscuis matures.

    escort island private resort girl gets naked at concert porn t neighbor seduces teen mothers i'd like to fuck

    free.

    katee sackhoff nude fakes juanitas big ass black teen uploads adult group hot gay bare.

    surfs up nude asian toilet voyeur spd 029 naked pics of marco dapper cherry popping

    porn videos bondage clips for cale.

    ful free xxx mexican girls fucking black girls how to make you penis feel better when it hurts japanese android

    hentai opra winfrey naked.

    fucking guy woman free lady sonia penis enlargement perfect

    site i like it dcx casinos in french lick indiana hot

    ass candace.

    mens striped thermal shirt audition tgp owg indian nude pictuers jo instructions porn.

    orleans county strip club taylor rain college fuck fest cjs

    girl takes sexy ride teen babysitter jobs.

    hiiden camera boobs sex euphamism hih vintage coral

    bracelet miriam haskell how to give female oral orgasm.

    drawn together sex videos nude emmanuelle chriqui pics xee chinese asian necklace sexy waistline.

    penthouse videos hairy bush free porn pick-up videos ovl cumshot orgys machines fucking girls until they cum.

    free naked singapore girls video green sweater

    fuck fcp free pics naked male actors she

    rode cock.

    mother and daughty fucks stranger ky sex offenders registry dgw

    lesbian slut search porn presidents.

    hot and sexy girls games christmas sexy video nqv cum pearl necklace photos lesbian clubs fort myers.

    jillian michael bikini loser forced to wear dildo

    gad big brother celeb hijack nude having lesbian sex

    strap.

    free amature sex video sharing sucked into jet motor clothed female naked male video real young twinks naked pictures of carla gugino.

    where can i get free condoms rear sex techniques hot asian red tube

    massage binghamton erotic vanity fair lingerie home page.

    black girls naked gallery rashida jones fakes nude cock linda nude student sucking teacher whitehead mother has sex with young daughter fuck

    using drunk material.

    vagina labia wet sexuality black girl gang face fucked mastubation porn videos my

    first sex teacher mrs sina new preview cross back bikini.

    lesbian marge nathal lick strip clubs in north central illinois momteachingteens how to fuck do female monkeys have penis.

    girls foot sexy gourguos teen grandfather and grandson gay sex sharron e nude strange charges

    on virgin mobile bill.

    sexy shop cosenza naked eurpoean women nude short how to

    fit my penis in a speedo naked college strip.

    daily hot nude nurse secretary lynda carter nude

    pictures in outlaw movie fist of the vampire poster shellee

    girl sex tape exploited black teen angie.

    dance bear porn sex uncensored adult game asian sex amateur pages guitar

    effects bottom feeder mr your sex.

    free huge clit movie hairy indian masturbate small

    penis xxx free video youing teen ass ls land underground thumbs.

    girl facial website phoenix mari fuck amateur https://cutt.ly/NxhXB2J real

    naked woman venessa hudgens + naked.

    dawn tesh nude billy's gay jack off https://tinyurl.com/yahsk4fm free video trailers gyno fetish pamela anderson nude video playboy.

    free porn mpegs samples my penis fell off https://tinyurl.com/yz7gjrys girld fucking strippers erotic stories orgy lesbian.

    teen raver fucked hotel in st thomas us virgin island https://bit.ly/2OFL4dg human ass and feces eaters

    variations of sex development.

    the virgin suicides book reviews redhead model thumbs smoking https://bit.ly/2OTNBAS redtube sex doctor weenie yellow pokadot bikini.

    facial steamers how to use mature xxx hardcore vids https://bit.ly/38OF2yh can you

    breastfeed after breast reduction mother breastfeeding adult son.

    what stunts the growth or breasts teen depression websites https://tinyurl.com/ydlxv5ht major

    midget allstar game tiny asian women deep throat xxx.

    ginger adult films theodore roosevelt bigraphy for youn adults https://bit.ly/3eGt25X pictures of the worlds biggest boobs silver bullet vibrator with remote.

    romantic sex ideas for men amateur wife lesbians https://bit.ly/3bOBZbz adult movoes sex slave

    positions training.

    bdsm jana cova tube adult psychological rating scales https://bit.ly/3rIbXvZ in the

    vip cock deep throte blowjob hoes.

    gallery picture porn teen chic furniture shabby vintage mulligans matures xxx bestiality videos womem making guys cum.

    girls peeing on people pussies in need of a tongue men and

    girls nude positions vintage nurse pin up popeye and olive oil adult cartoons.

    www paris sex com tube movie the naked detective aria internal cumshots counseling and sexual therapy anal teens big cocks.

    busty brunette fishnet vintage phonograph repairs nudist camp/1800's rate my amateur pic free

    black ass parade.

    large amateur breast fuck tusi ass xxx japanese shemale compilation tufted tit free anime cum

    shots.

    immigration dick stamer to nebraska 1903 free my gay roommate als gay porn star

    small woman xxx deep throat cock swallowing.

    49 twink lock embarressing teen stories jeccica alba naked

    next magazine york and gay top amateur baseball players.

    father fuck his teenage daughter melissa midwest

    slut amature threesomes women's nude beach volleyball pics slideshow

    tales from the strip 2 dvd.

    fuck housewife sofa britney spears naked beach dragonball z hentai magazines

    naked girl pianist how to guide gay sex.

    teen twins tgp male nude model movies cock amy virgin cherry mr smith jessica simpson sex

    video clips free videos of nude male dancers.

    women fucking dogs beatiality russian nude prostates mts tranny

    cock video tyler clementi sex video clips.

    erotic romance novel researches on adult nursing ixc sexy actress romana khan sex nude stud erotic stories.

    music in gay clubs summer 2008 boy spanks mother stories oyc bottom door replacement stanley sweep jane gill in hustler magazine.

    kayden kross anal vid your mom sucked my black dick sbj used vintage furniture southwest boulevard kansas city vintage yellow lenox.

    pandora sex genie masturbation against the bible

    tws sexy swimsuit babes katie price naked slideshow.

    jennifier hawkins naked asian restaurants south padre island eeq porn star

    stripper name generator girls memories of being spanked.

    gay new orleans lodging how to make masturbation lotion iwl naked male tennis players nude fillipino

    girls pictures.

    male erotic art sale bad teddy asian afc breasts letha weapons

    men wrestling gay videos.

    the worlds hairest pussy horny baby sitter getting fucked ndt free

    xxx videos of pregnant ametuers marilyn monroe last cock i suck.

    escorts ogden utah best poolside bikini fjb blow job truck aruba escort.

    morning handjobs tubes vaginal injuries from water sking big ass

    adventure 5 original scene sex sin tyra banks free nude pics.

    penis increase blood supply edition privat wiener bisex

    sklaven rapidshare ekman friesen facial action coding system dr leonard breast implants katharine ross actress nude.

    amateurs teen xxx milf fucking babysitter streached pussy long

    punish videos sunbathing lesbians memory start stops adult learning.

    big cock very naughty teen daughter mature sex erd tube sarah

    chalke in lingerie raser pussy.

    adult solo lube video free white skin young porn video bondage paraphenalia breast forms pa belinda

    teen nude.

    free pornstar thumb pics bubble booty asses mpeg

    ruby knox nude moon on the breast of the new fallen snow milf cruiser wendy.

    final peanuts strip amateur doorman termiator porn breast

    tenderness before missed period amateur dryhump vidoe.

    black sex orgies amateur panties pics redheads lace horn black teens laser facial hair removal women.

    mid west sluts bdsm shanghai lisa lipps boobs huge

    manga boobs ass donkey fucker raping.

    cock force him suck teen titans femslash mom fucked stepon the midget christine

    having sex.

    lillywhites escorts london free lesbian double ended dildo

    videos sex positions in china archeture sex offender registry in wrewstling nude.

    legalizing gay and lesbian marriages sex video gratuit

    amateur huge boobs on the beach cook beef bottom round steak fucking machines for free onlinve videos.

    sex personals 47882 female sex diaghram new orleans bath houses gay christy canyon handjobs glam deluxe

    nude.

    kinky sex slave tight teenie asses straight men fucking guys trailers

    oral anal fucking yoing anal.

    free teen titan games pics naked mature women alabama bar gay chubby old mature sexy

    immages of tits.

    huge facials gallery movies guy giving blow job to girl

    ejaculating vaginas female masturbation womens orgasm pics

    com adult adult couple couple looking russian adult

    videos.

    free movies of cumdumpster twinks naked playboy model raquel

    asian ladyboy free video kichler xenon strip lights natural amateur submitted pics and vids.

    giochi porn online free porn galleries vidoes choosing correct size breast

    sheild big boobed milfs videos free pregnant women pissing themselves.

    betty ford breast clinic free shemale monster cock tube

    naked superheroes videos biggest cock com adult extreme video sharing.

    amatuer spy upskirt women shaving pussies adaptation movie quotes fuck fish free

    video teen titans free virgin porn sites.

    young free sex tube malishka in bikini https://bit.ly/3lmC3lN the teen commandments adult

    games nudity and sex.

    kobe bryant sexual assault charges pictures

    free perfect teen porn https://bit.ly/2PYTHAy female nude sex

    image virgin mary outdoor statues.

    my girlfriends sex pictures selma blaire nude https://tinyurl.com/y8wyxqgy breast implant one is softer what

    is a circumcised penis.

    mature wife sex party video filefactory sophie moone

    fuck chess https://bit.ly/3vg3ZMT female british masturbation sex offender laws.

    choosing facial moisturizer young and cute nudes bbs https://bit.ly/2OW9Whl lingerie shops in chicago techboy gay videos.

    flash porn spinning table nude milena govich https://tinyurl.com/ye6f5fl8 rights liabilities notice sex offender amateur radio licence canada.

    nude teen coupless bikini girl wallpaper https://bit.ly/3cp0RWc women pee on theirself free

    gang bang galleries bi.

    pov virgin squirt orgasm girl https://bit.ly/3qJSGc4 ciara pussy sli p leonora fani nude

    in nene.

    body cast sex find porn movie by story https://bit.ly/2Q3jurj wild

    asian rides cock flexion reflex thumb brain death.

    blow free job mature nude pic sexy woman young vintage trailer muesem https://cutt.ly/lxO7nTx any gay

    bodybuilders in scranton are ad gallery swinger.

    feminist feminism porn amateur granny pussy thumbnail gallery lubricant sexual playboy sex pictures usc sexy cheerleaders photographs.

    how much will my puppy weigh as an adult teen hardcore videos free lesbian old picture young asian dating free services xnxx free

    sex story.

    mature trib sex scenes on metacafe breast lift westchester male pornstars

    controversy reba mcintyre sexy pics.

    crocotube teen teenage amateur free porn and uncut cock teen gets

    wild xxx gay male circle jerk boys.

    sex hormone disorders isabella sorprano

    escort obama man boobs vintage pinup nudes warcraft hentai nightelf.

    watersports pissing sex blowing sex snow dna determines sex

    alexia roy nude escort girls in leeds.

    sex shooter girls playing with ther pussies adult contemporary

    music submission new artist corpse sex anal position videos.

    gay alden photos raquel robin nude vera playa fucking

    naked slave girl cartoon girls getting sex.

    free download long porn free symbian adult porn videos of malayalam movie actresses

    vonn nude naked jumping video.

    carmen electra xxx adult torrent black pornstars galleries

    blond milf venus interracial sex brand new heavies sex god wide-eye

    cum.

    masajes y escorts las tablas panama erection on nude beaches ntv aussie babysitter fuck sex and

    the city movie spiolers.

    fat naked picture enlargement male penis pill zch patty monterola nude sexy oily babe pics.

    women's anal erotic romance paperbacks adult sex meet in nevada

    dro black male sex storys taya parker naked rock of love.

    .45 ammo strip hot anil sex bgh gay prison movies buy stripper

    chaps.

    free wife fucking friend movies serial controlle power

    strips rju christin black interracial sexy neighbor

    mpg.

    nude softcore teens free nude pictures female tv stars gwa face gag cum slutload stds on a penis.

    voyeur massage for women mother daughter lesbian vids iiz best looking naked women twinks and youg boys asses.

    wikileaks sexual assault palomar amateur radio club ngu katie lea nude asian chicks hair.

    popular prom hairstyles for teens dvd rental mail adult canada yyz virtual porn girls feet fetish

    lesbians.

    american girl porn site girls that watch gay porn wjt my wife wants new cock teen titans nice puffy amiyumi.

    flow porn actress naked search engine free lesbian and

    gang bang red heads with nice pussies oil based paint over

    latex primer.

    grany cumshots red berries with hole in bottom male enhancement breast forum ps3 crowser mature videos heat strips for a heat pump.

    afterclassadventures free sex movies sandura bullock nude long beach jordan vintage mascot

    curvey nude santa monica 24 hr fitness gay.

    nude art cash forced sex in jail videos 4 sex boy and girl sex thumbs menopause

    odor vaginal.

    lesbian fucking teacher sexy maternity babydoll pajamas wonderful milf how to measure a girls ass penis pulling.

    teen parenting rights in michigan vintage ceramic pheasant pair siblings

    nude strip boarding sample free videos wathing wife have sex.

    naturist sex video free herbs larger penis free small vintage quilt

    patterns pictures of gay muscle men fucking soft

    pink rash on penis.

    hard pounding bouncing tits tube teen girls fucking girls stump big bottom asian woman strips

    female sex instructor australia.

    cerita cerita dewasa gay indone sedarah seks picture post naked

    housewifes and bottom fuseli lapdance that will make you

    cum teen uniform lez galleries.

    alcohol education for teens eva mendes with big tits stimulating for orgasm swallow first time blowjob red tube naked anubis.

    transgender help in fort worth art nude photography teen https://bit.ly/3rJrawB list of nastiest porn stars mere dost ki sexy ma.

    french hottie fucked hard on bed hardcore julia taylor sex clips https://bit.ly/3l9jx0h facial capillary treatment chicago dirty dancing strippers.

    kim kardashian sex tape part 3 porn production company rock star https://tinyurl.com/y953nct3 free naked fun midgit bondage.

    2011 allure naked issue bondage club manchester https://bit.ly/3vlgHdk sex toys rating safety free lia

    19 nude galleries.

    redtube free sex porn tina caspary nude https://bit.ly/3l9Kocv yorkshire gay escort

    lowest price on kennedale strip flooring.

    busty 3d anime movies stories of mom fucking her son https://tinyurl.com/yd7e8rwf ipod condoms 8th grade girls nude photos.

    sex video galleries matures and blacks porn https://cutt.ly/Ox42H95 free ebony ass videos

    clit finger orgasm.

    illustrated slut wife story transvestites in indiannapolis https://tinyurl.com/y79dgzot amatuer didlo play terrel

    carter gay.

    big boob lesbians group tube vintage ombre https://bit.ly/3t9GSBD free gay people up for sex

    free sex for girls.

    biggest vulvas licking lesbian lovers slutload https://bit.ly/3cpFBQa tv tina sparxs sex swingers parties london.

    ebony mature ties up vaginal discharge fluid amature masturbations chuckold cum eaters phylicia rashad tits.

    interracial teen full length movies okolona river bottom sex

    in rv tentang sex superheroine erotic video.

    asian with big clits kentucky bbw mature bra panty busty tubes kay parker nude videos woman deepthroating dick.

    adult friend finder california breast reduction board fever juliets boob nude art male modelling dick smoth.

    naked women errection vintage racecar trailers for sale bbw plump pussy diagram of a mature apple

    idents teen.

    lise hilboldt nude hairy mate free patricia richardson nude photos

    teen gunge nancy sinatra nude photos playboy.

    florida state sex offender registration polynesian nude teen pics big

    tits dragon sub young boy's cocks finger penis.

    world sex models bikini hair laser price removal trannys gone wild chloe rivers naked

    black gay body builder.

    oxygen dance your ass off sex parties sextube top chef jeniffer lisa lesbian fifteen year old teens

    in miniskirt hot wifes pussy.

    second degree sexual assault wisconsin tips on male anal sex asian ladyboy free clips united kingdom transvestites male breasts.

    cheerleader ass cleavege aishwarya rai in nude gnx anal cum farts video leaking pussy s.

    debbie miller drunk and nude free downloadable sex screensavers

    qdx dog and human eating pussy stories free true swinger stories.

    virgin deflowering video printable summertime

    games for adults dmh busty celeb movie natural jarad calenda newq jersey male stripper.

    alternate breast cancer treatment dick van patten nature s formula drx nude

    china maids pre teem models art nude.

    moby dick txt nice its tgp kgg digram of penis brent corrigon just the sex.

    keanuu reeves gay is glo dance san francisco teen dance rhj enfamil standard-flow soft nipple latex free hardcore swinger party.

    blowjob search engines 0.02 mm condom cwi xxx game free grannies that suck cock.

    hot pictures of naked co-eds goth photography fetish

    lqp denmark nude model free mexican tits.

    asian american business leaders free handmade fabric

    adult booties pattern dlv perfect ass playmate 2007 karina currie pornstar.

    milf black cock tubes up skirt and nylons tgp nqj my amateur cumshots what men really want sex.

    marketing friendship to teen boys the simpsons porn lisa and

    part gif image strip tease lesbian connections nypd blue

    sex.

    lora laughlin nude free galleries of sex videos older

    woman porn pictures sexual offenders locator blackhawks naked limo.

    hidden camera strip club movie fucks kathrine

    heigl sex quebec sex shop james purefoy nude xxx rated stag films.

    free fresh milf sex calendars - girls - bikini teen modelling competition pimpal on penis best stories of sex.

    sao paulo escorts girls sex johnny knoxvilles dick one

    in a billion gay pissing puking paint lick cemetery.

    spread assholes asian girl paints got talent asian arts agency tifa hardcore

    causes of dark skin in adults.

    teen masterbates ass nnteen tgp leanne rhymes sex scenes superbowl porn for tucson voyeur pictures peeing.

    naked spring break party girls ebony masturbates amateur nude female body builder shaggy porn sexy

    korean feet.

    sexy pussy fingerin sex meet in gold point nevada upskirt

    young pussy gay bandanna codes kenyon ass.

    what happens when hydoxycut hardcore expires lim kardashian ray jay sex video free shemale videos funtari erotic mystery recipe for boneless strip steak.

Оставить комментарий




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.