Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 3253 Просмотров
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Надеюсь добрые люди мне помогут! Подскажите мне пожалста, на Joomla 2.5 я делал запись данных в бд, но для Joomla 3.0 я пока что так и не смог это сделать. Помогите мне примером как сделать запись данных через сайт в бд.

Я не использую XML файл, моя структура такова:
1. controllers
2. models
3. Вид/шаблон
4. tables папка в административной части.

И с помощью этого набора я записывал данные в бд. Я попытался их подстроить под 3.0 но у меня ничего не происходит.

Я подключаю в шаблоне следующий код для передачи данных. Пишу немного укорочено.
Код: html4strict
<input type='hidden' name='task'       value = 'save' />
<input type='hidden' name='option'   value='com_priceleafshops' />
<input type='hidden' name='id'         value='<?php $this->hello->id; ?>' />
<input type='hidden' name='controller' value='oformlenie' />
<input type='hidden' name='view'       value='oformlenie' />
<input type='hidden' name='check'      value='' />

Затем в моделе пишу следующее. Вот тут мне кажется что в версии 3.0 function store вообще куда то пропала.
Код: php
function store()
 
  {  
 
      $row =& $this->getTable();
      $data = JRequest::get( 'post' );
 
 
    if (!$row->bind($data)) {
      $this->setError($this->_db->getErrorMsg());
      return false;
    }
 
    if (!$row->check()) {
      $this->setError($this->_db->getErrorMsg());
      return false;
    }
 
    if (!$row->store()) {
      $this->setError( $row->getErrorMsg() );
      return false;
    }
 
 
    return true;
 
}

Затем в контроллере, вот с контроллером я тоже не очень понял может там класс пишется иначе!?
Код: php
class PriceleafControllerOformlenie extends PriceleafController
{
 
  function __construct()
  {
    parent::__construct();
 
//Функции кнопок добавить редактировать
//Вся структура такая же как и в административной части.
    $this->registerTask( 'add'  ,   'edit' );
    $this->registerTask( 'publish'    ,   'publish' );
    $this->registerTask( 'unpublish'  ,   'publish' );
  }
 
//функция для сохранения
  function save()
  {
    //Указываем с какой моделью будем работать
    $model = $this->getModel('oformlenie');
    //Получаем данные из модели
    if ($model->store($post)) {
    //При успешной отправки данных выводим сообщение
      $msg = JText::_( 'ZAYVKA-OTPRAVLENA' );      
    } else {
      $msg = JText::_( 'Error' );
    }

Может в версии 3.0 что то поменялось и то что я делаю не прокатит, а может мне нужно что то поправить для корректной работы.
Конечно неделю другую посижу и я наверное осилю это дело, но хочется сделать средствами Joomla.
« Последнее редактирование: 20.11.2012, 11:19:06 от b2z »
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
$model = $this->getModel('oformlenie'); возвращает модель?

if ($model->store($post)) в контроллере - это как? Аргумент $post есть, а где вы его инициализируете? Вроде как в модели, зачем тогда в контроллере такое написано?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Не смотрел в 3.0, может есть какие отличия, но вообще JTable::store() не сохраняет новую запись если будет присутствовать первичный ключ.
Она расценивает его наличие как необходимость обновления существующей, а UPDATE не создаёт новых записей.

У вас в форме есть поле id - там что за значение?
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Я код частично привёл, я понимаю что проблемно понять. Как же нагляднее привести пример, вот привожу файлы которые задействованы там кроме, tables. http://klubnichkaaa.freehost96.ru/images/Desktop.zip Код который я использовал он от Joomla 1.5, потому я не уверен в его работоспособности для 3.0 и мне кажется он контроллер вообще не подключает. Если нужно будет я могу приложить архив компонента, там всё рабочее кроме записи данных через сайт.
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Ещё момент, не смотрел пока - JRequest был объявлен устаревшим ещё в 2.5, его грозились убрать в платформе 12.1
Проверьте.
Вообще разрабатывать имеет смысл с включенным по максимуму отображением ошибок и режимом отладки.
Иначе вы так и будете гадать на кофейной гуще.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Код
<input type='hidden' name='task'       value = 'save' />
Поменяйте на:
Код
<input type='hidden' name='task'       value = 'oformlenie.save' />

И уберите:
Код
<input type='hidden' name='controller' value='oformlenie' />


$model->store($post) поменяйте на $model->store()
*

klubnichkaaa

  • Захожу иногда
  • 302
  • 16 / 2
Ох как я вам благодарен! SDKiller и b2z спасибо большое! Я компонент сначала перебивал на денвере, потом перенёс на тестовый хостинг, и там проверил на работоспособность админку, ну и прям через фтп начал делать часть сайта, ошибок не выдавало, после совета SDKiller перенёс обратно на денвер и там выдало что проблема в классе контроллера Нужно что бы было
extends JControllerForm а не extends PriceleafshopsController И всё работает, а совет b2z поменять и кое что удалить помог в том что выводятся системные сообщения Joomla. Я не думал что всё так просто окажется ))) Вот 2 совета + свои действия и вуаля!

БАЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБА! Может я могу чем то вам помочь, помимо +
Делай с другими то же, что они собираются сделать с тобой: бей первым.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Условия отображения для конкретной группы пользователей Joomla 3.4.x

Автор dmik

Ответов: 15
Просмотров: 2615
Последний ответ 29.05.2020, 22:42:15
от voland
[Решено] Ненавижу джумловский database!

Автор effrit

Ответов: 19
Просмотров: 1435
Последний ответ 14.10.2018, 21:28:40
от Aleks.Denezh
[решено] Использование model - setState для фильтра по дате

Автор effrit

Ответов: 8
Просмотров: 1459
Последний ответ 13.10.2018, 19:13:49
от effrit
Подключить Joomla Framework в своем файле

Автор kolhoz

Ответов: 1
Просмотров: 1484
Последний ответ 06.12.2017, 17:15:42
от Aleks.Denezh
Два запроса к базе данных за раз можно делать?

Автор borro

Ответов: 4
Просмотров: 1148
Последний ответ 17.10.2017, 09:30:44
от SeBun