Новости Joomla

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

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Написание Компонента
« Ответ #60 : 01.09.2016, 11:35:42 »
JLayoutHelper  а не подскажите подробнее?
у вас сейчас работает? пусть так и остается )
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #61 : 01.09.2016, 11:42:02 »
JLayoutHelper  а не подскажите подробнее?
У вас все работает? тогда оставьте все как есть, в жизни и так мало чудес случается ;D

MVC - это общее понятие, не нужно на нём зацикливаться. Лично я AJAX всегда в контроллере вывожу, когда мне не нужно как-то красиво оформлять перед отдачей. А кто-то Helper использует и в нём модель запрашивает. Тут кому как больше нравится.
Ну так как я не зацикливаюсь то у меня гоняет AJAX в контроллер, контроллер идет если нужно в модель, и если нужен какой то вывод то вывожу через слой JLayoutHelper кусок кода, который обычно и юзается для вывода без аякса.. например вывод комментов и получение их через AJAX..
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #62 : 01.09.2016, 11:42:53 »
ну а если хочешься знать то как то так:
1. в своем компоненте создаете папку layouts
2. в ней создаете файл например search.php
3. в контроллере:
public function teacher($name){     
      echo JLayoutHelper::render('search', $this->getModel->searchTeacher($name));
      exit;
 }
4. в файле layouts/search.php
<?php foreach($displayData as $item): ?>
<?php print_r($item); ?>
<?php endforeach;?>
« Последнее редактирование: 01.09.2016, 11:46:00 от Istaan »
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #63 : 01.09.2016, 11:46:45 »
ну а если хочешься знать то как то так:
1. в своем компоненте создаете папку layouts
2. в ней создаете файл например search.php
3. в контроллере:
public function teacher($name){     
      echo JLayoutHelper::render('search', $this->getModel->searchTeacher($name));
      exit;
 }
4. в файле layouts/search.php
<?php foreach($displayData as $item): ?>
<?php print_r($item); ?>
<?php endforeach;?>

Понял, спасибо вам большое))))
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Написание Компонента
« Ответ #64 : 01.09.2016, 11:49:10 »
Кстати, строку:
Код: php-brief
->where( 'fname LIKE ' . $this->getDbo()->q( '%' . $name . '%' ) );

Я бы заменил на:
Код: php-brief
->where( 'fname LIKE ' . $this->getDbo()->q( '%' . $this->getDbo()->escape($name, true). '%', false ) );

Почему? Ответ.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Написание Компонента
« Ответ #65 : 01.09.2016, 11:57:13 »
Почему? Ответ.
Кстати, это самый крутой учебник по программированию расширений Joomla, который только существует! Не устану выражать благодарность Дмитрию!
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #66 : 01.09.2016, 11:57:26 »
Кстати, строку:
Код: php-brief
->where( 'fname LIKE ' . $this->getDbo()->q( '%' . $name . '%' ) );

Я бы заменил на:
Код: php-brief
->where( 'fname LIKE ' . $this->getDbo()->q( '%' . $this->getDbo()->escape($name, true). '%', false ) );

Почему? Ответ.


Спасибо)) изучу вопрос)))
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #67 : 01.09.2016, 11:57:47 »
Кстати, это самый крутой учебник по программированию расширений Joomla, который только существует! Не устану выражать благодарность Дмитрию!

Сам по нему учился)
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Написание Компонента
« Ответ #68 : 01.09.2016, 15:07:46 »
Спасибо. Жаль, что свободное время не позволяет написать руководство по написанию компонента под Joomla 3... Хотя 2.5 тоже по сути подходит, так как принцип во многом одинаковый.
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #69 : 01.09.2016, 15:12:12 »
Ребят, а как можно ускорить работу AJAX? чтобы всё было как будто в реальном времени. А то ввожу в поиск и пока список сформируется проходит порядка минуты
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #70 : 01.09.2016, 15:13:42 »
Спасибо. Жаль, что свободное время не позволяет написать руководство по написанию компонента под Joomla 3... Хотя 2.5 тоже по сути подходит, так как принцип во многом одинаковый.

Будем очень ждать))
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #71 : 01.09.2016, 17:01:14 »
Ребят, а как можно ускорить работу AJAX? чтобы всё было как будто в реальном времени. А то ввожу в поиск и пока список сформируется проходит порядка минуты
а сколько записей в базе? какой сервер?
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #72 : 01.09.2016, 17:05:55 »
а сколько записей в базе? какой сервер?

Записей 52. У меня хостинг. А можно ещё вопрос)) мне нужно получить один раз данные, грубо скажем имя и фамилия. И везде приходится использовать foreach($this->data as dt); а можно как нибудь без foreach? Спасибо большое)))
« Последнее редактирование: 01.09.2016, 17:22:42 от zheev »
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #73 : 01.09.2016, 17:30:48 »
если записей 52 то все должно летать!
а вторую часть вопроса я не понял..
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #74 : 01.09.2016, 17:49:32 »
если записей 52 то все должно летать!
а вторую часть вопроса я не понял..
Вывожу из бд имя. И фамилию. Получаю массив и постоянно приходится получать данные из массивов через foreach. А можно как нибудь не черезь foreach?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Написание Компонента
« Ответ #75 : 01.09.2016, 17:54:05 »
Вывожу из бд имя. И фамилию. Получаю массив и постоянно приходится получать данные из массивов через foreach. А можно как нибудь не черезь foreach?
Эмм, ну обход по массиву всегда через итерации, можно через for ещё. Без обхода только напрямую обращаться через индекс массива. Или имеется ввиду получение конкретной записи, а не вывод нескольких?
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #76 : 01.09.2016, 17:59:08 »
Эмм, ну обход по массиву всегда через итерации, можно через for ещё. Без обхода только напрямую обращаться через индекс массива. Или имеется ввиду получение конкретной записи, а не вывод нескольких?
Я пытался напрямую через $this->data->name правда не пробовал $this->data['name']
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Написание Компонента
« Ответ #77 : 01.09.2016, 18:01:27 »
$this->data[0]->name скорее всего, так как у Вас массив объектов.
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #78 : 01.09.2016, 18:02:59 »
$this->data[0]->name скорее всего, так как у Вас массив объектов.
Спасибо Вам большое)
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #79 : 02.09.2016, 10:04:32 »
У меня ещё одна беда(((( >:( При выводе записей из БД, почему то некоторые дублируются, напрмер.
Спойлер
[свернуть]
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #81 : 02.09.2016, 10:19:20 »
А где дубли? Недели же разные.
Упс забыл дни расставить( Прошу прощения спасибо
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #82 : 02.09.2016, 10:22:28 »
А где дубли? Недели же разные.
могу ли в представление вызвать функцию?) Хочу число в день преобразовать?) Или лучше таблицу создать с днями и просто join ить?)
« Последнее редактирование: 02.09.2016, 10:27:48 от zheev »
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #83 : 02.09.2016, 10:30:34 »
могу ли в представление вызвать функцию?) Хочу число в день преобразовать?) Или лучше таблицу создать с днями и просто join ить?)
Создайте помощника вида и из него дергайте что вам нужно!
*

zheev

  • Захожу иногда
  • 98
  • 0 / 0
Re: Написание Компонента
« Ответ #84 : 02.09.2016, 10:34:02 »
Создайте помощника вида и из него дергайте что вам нужно!

прошу прощения за туповатый вопрос, а как его создать?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Написание Компонента
« Ответ #85 : 02.09.2016, 11:08:08 »
Здесь есть пример создания помощника вида (в примере он используемого для создания подменю в админке, вы же можете его использовать для абсолютно любых нужд)
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Написание Компонента
« Ответ #86 : 02.09.2016, 12:49:09 »
Здесь есть пример создания помощника вида (в примере он используемого для создания подменю в админке, вы же можете его использовать для абсолютно любых нужд)
В представлении хелперы можно подключать через loadHelper.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #87 : 02.09.2016, 14:08:17 »
В представлении хелперы можно подключать через loadHelper.
А лучше через банальный инклуд в точке входа в компонент ;D
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Написание Компонента
« Ответ #88 : 02.09.2016, 14:14:57 »
А лучше через банальный инклуд в точке входа в компонент ;D
Ну тогда уж через:

Код: php-brief
JLoader::discover('IvgpuHelper', JPATH_COMPONENT . '/helpers');

И всем классам помощникам задавать префикс IvgpuHelper.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Написание Компонента
« Ответ #89 : 02.09.2016, 14:15:58 »
Ну тогда уж через:

Код: php-brief
JLoader::discover('IvgpuHelper', JPATH_COMPONENT . '/helpers');

И всем классам помощникам задавать префикс IvgpuHelper.

Дима зачем этот синтаксический сахар?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться