Joomla 1.5 Подскажите как добавить новые контроллеры и шаблоны в пример Helloy world (J 1.5 MVC)

Тема в разделе "Программирование", создана пользователем wolteromfg, 22.01.2011.

  1. Offline

    wolteromfg Недавно здесь

    Регистрация:
    22.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Подскажите как добавить новые контроллеры и шаблоны в пример Helloy world (J 1.5 MVC)
    Я пытаюсь разобраться с написание своих компонентов для Joomla...
    Задача такая, допустим есть классический образец программинга Helloy world, выводит он что то юзеру... мне нужно добавить формы ввода и кнопки (эт я знаю как слава богу))), нажимает что то, отображается след страница ... и т.д... тока все это в рамках MVC, я пока не могу понять как это сюда вписать. Заранее огромное спасибо!

    вход:
    if($controller = JRequest::getWord('controller')) {
    $path = JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
    if (file_exists($path)) {
    require_once $path;
    } else {
    $controller = '';
    }
    }
    // produce an object of the class controllers
    // Создание класса нашего компонента
    $classname = 'MypriceController'.ucfirst($controller);
    $controller = new $classname( );

    // reading the request task
    // Выполнить задачу запроса
    $controller->execute(JRequest::getCmd('task'));

    // redirect from the controller
    // Переадресация
    $controller->redirect();

    ?>

    контроллер:
    class MypriceController extends JController
    {
    function display()
    {
    // sets one Standard view
    if ( ! JRequest::getCmd( 'view' ) ) {
    JRequest::setVar('view', 'categories' );
    }
    parent::display();
    }
    }

    вид:
    class MypriceViewMyprice extends JView
    {
    function display($tpl = null)
    {
    $model = &$this->getModel(); // Создается экземпляр модели и он становится доступен в виде объекта в переменной $model
    $rows = $model->getMypriceList();// getMypriceList() вызывается на объекте и возвращает массив $rows
    // Результирующие строки выделяются и передаются шаблону значение переменной $rows
    // который com_myprice\site\views\myprice\tmpl\default.php
    $this->assignRef('rows' , $rows);
    parent::display($tpl); // Вызывает появление шаблона
    }
    }
    ?>

    шаблон (def):
    defined('_JEXEC') or die('Restricted access');
    ?>
    <script type="text/javascript">
    function OpenWindow (Address) {
    MyWindow = window.open(Address, "Auto", "width=400,height=300,left=100,top=200");
    MyWindow.focus();
    }
    </script>
    <h1><?php echo "Listing:"; ?></h1>
    <ul>
    <?
    // selections of data records in an array
    // Чтение набора данных в массиве
    foreach ($this->rows as $row) {
    ?>
    <li><?php echo $row->text; ?> <small><em>(<?php echo $row->manufacturer; ?>)</em></small><br>
    <a href="<?php echo $row->photo_large; ?>" onclick="OpenWindow(this.href); return false"><img src=<?php echo $row->photo_small; ?>></a>
    </li>
    <?php
    }
    ?>
    </ul>

    модель:
    class MypriceModelMyprice extends JModel
    {
    // Этот метод актуализирует доступ к данным в БД
    // формирует необходимый запрос и и возвращает массив запрошенных данных из БД

    function _getMypriceQuery( &$options )
    {
    // TODO: Cache on the fingerprint of the arguments
    $db = JFactory::getDBO();
    $id = @$options['id'];

    $select = 'a.*';
    $from = '#__myprice AS a';

    $wheres[] = 'a.published = 1';

    $query = "SELECT " . $select .
    "\n FROM " . $from .
    "\n WHERE " . implode( "\n AND ", $wheres );

    return $query;
    }
    // Этот метод получает массив данных из БД, преобразует в список и возвращает
    function getMypriceList( $options=array() )
    {
    $query = $this->_getMypriceQuery( $options );
    $result = $this->_getList( $query );
    return @$result;
    }
    }
    ?>
     
  2.  
  3. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 032
    Симпатии:
    518
    Пол:
    Мужской
    и в коде так или ошибка при копировании сюда?
     
  4. Offline

    wolteromfg Недавно здесь

    Регистрация:
    22.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    в коде также
     
  5. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 032
    Симпатии:
    518
    Пол:
    Мужской
    Код (PHP):
    1. echo isset ($path )

    после подключения переменной $path
     
  6. Offline

    wolteromfg Недавно здесь

    Регистрация:
    22.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    всем спасибо, разобрался по другим компонентам...
     

Поделиться этой страницей

Загрузка...