Новости Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla.Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.👩‍💻 v.4.1.0. Что нового?- Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.- Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.- Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.- Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.- Множество мелких исправлений ошибок и оптимизаций.Сайт проектаGitHub расширенияСкачать#joomla #расширения

Вышел релиз Joomla 5.3.2

Релиз исправлений ошибок Joomla 5.3.2

Проект Joomla рад сообщить о выпуске Joomla 5.3.2. Это релиз исправлений ошибок для серии Joomla 5.3.

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

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Здравствуйте!

собственно не могу понять почему в модели я не могу получить post или get данные которые я отправил из формы

Код
JFactory::getApplication()->input->get('search_title', '', 'post');
возвращает string(0) ""

нужно через контроллер передать эти данные?

подскажите пожалуйста, буду признателен!
« Последнее редактирование: 20.10.2014, 18:30:16 от b2z »
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Post запрос в модели компонента
« Ответ #1 : 20.10.2014, 14:31:53 »
JFactory::getApplication()->input->post->get('search_title', '');
интернет-блог: http://websiteprog.ru
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: Post запрос в модели компонента
« Ответ #2 : 20.10.2014, 14:36:49 »
JFactory::getApplication()->input->post->get('search_title', '');
я просто тут на быструю руку писал и объект input пропустил
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Post запрос в модели компонента
« Ответ #3 : 20.10.2014, 14:39:40 »
я просто тут на быструю руку писал и объект input пропустил
То есть все ок? Или у Вас в коде JFactory::getApplication()->input->post->get('search_title', '') и не работает?
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: Post запрос в модели компонента
« Ответ #4 : 20.10.2014, 14:40:22 »
То есть все ок? Или у Вас в коде JFactory::getApplication()->input->post->get('search_title', '') и не работает?
угу(
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Re: Post запрос в модели компонента
« Ответ #5 : 20.10.2014, 14:45:00 »
Код формы покажите!
Если у вас форма через XML формируется и выводится через $this->form->getInput('name') то у вас все елементы в мессиве jform будут!
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: Post запрос в модели компонента
« Ответ #6 : 20.10.2014, 14:48:15 »
Код формы покажите!
Если у вас форма через XML формируется и выводится через $this->form->getInput('name') то у вас все елементы в мессиве jform будут!

та не, модуль поиска по стороннему компоненту!


Код
<?php
$search_title = JFactory::getApplication()->input->get('search_title', '', 'post');
?>
<form id="mod-finder-searchform" class="search" method="post" action="/katalog-domov">
    <div class="ico" onclick="jQuery(this).parent('form').submit();"></div>
    <div class="finder">
        <fieldset name="search">
        <input onblur="if (this.value=='') this.value='<?=$search_title?>';" onfocus="if (this.value=='<?=$search_title?>') this.value='';" id="search_title" class="search-query input-medium" type="text" value="<?=$search_title?>" size="25" name="search_title">
        </fieldset>
    </div>
</form>

ковыряю чужой компонент, вот не могу понять почему в модели не видно ни post ни get
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: Post запрос в модели компонента
« Ответ #7 : 20.10.2014, 14:51:33 »
код модели для ясности картины
Код
<?php
defined('_JEXEC') or die;

class CatalogModelFrontpage extends JModelItem
{





    private function item()
    {

        $db = $this->getDbo();
        $query = $db->getQuery(true);
        $published = $this->getState('filter.published', 1);
        $archived = $this->getState('filter.archived', 2);
        $app = JFactory::getApplication();
        $filter_post = $app->input->get('filter', '', 'post');

        $search_title = JFactory::getApplication()->input->post->get('search_title', '');

        var_dump($search_title);

        $sort = $app->input->get('sort', '', 'post');

        if (!empty($filter_post)) {

            $filter = array();

            for ($i = 0; $i < count($filter_post); $i++) {

                if (!in_array('0', $filter_post[$i])) {

                    if (is_numeric($filter_post[$i]['value'])) {

                        $filter[$filter_post[$i]['name']] = $filter_post[$i]['value'];
                    }
                }
            }

        }

        $query->select(
            'a.id AS id, ' .
            'a.title AS title, ' .
            'a.catid AS catid, ' .
            'a.unique_code AS unique_code, ' .
            'a.price AS price, ' .
            'a.floor AS floor, ' .
            'a.area AS area, ' .
            'a.params AS params, ' .
            'a.images AS images, ' .
            'a.options AS options, ' .
            'a.description AS description, ' .
            'm.id AS mid '

        );

        $query->from('#__catalog AS a')
            ->join('LEFT', '#__menu AS m ON a.title = m.title');

        $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()). ',' . $db->quote('*'). ')')
            ->where('(a.state = ' . (int)$published . ' OR a.state = ' . (int)$archived . ')');

        if (!empty($filter_post)) {

            $query->where('(a.price >= ' . (int)$filter['price-min'] . ' AND a.price <= ' . (int)$filter['price-max'] . ')')
                ->where('(a.floor >= ' . (int)$filter['floor-min'] . ' AND a.floor <= ' . (int)$filter['floor-max'] . ')')
                ->where('(a.area >= ' . (int)$filter['area-min'] . ' AND a.area <= ' . (int)$filter['area-max'] . ')');
        }

        if(!empty($search_title)) {
            $query->where('a.title LIKE '.$db->Quote('%'.$db->escape($search_title, true).'%').'');
        }


        if (!empty($sort)) {

            $query->order('a.' . $sort);
        }

        $db->setQuery($query);

        return $db->loadObjectList();
    }
    
    private function newArray(){

         $array = array();
         $field = array();

         $rows = $this->item();

         for($i = 0; $i < count($rows); $i++){

                $params[$i]     = json_decode($rows[$i]->params, true);
                $images[$i]     = json_decode($rows[$i]->images, true);
                $options[$i]    = json_decode($rows[$i]->options, true);

                unset($params[$i]['stock-ico']);


                $field[$i] = array(
                    'id'            => $rows[$i]->id,
                    'title'         => $rows[$i]->title,
                    'catid'         => $rows[$i]->catid,
                    'unique_code'   => $rows[$i]->unique_code,
                    'price'         => $rows[$i]->price,
                    'floor'         => $rows[$i]->floor,
                    'area'          => $rows[$i]->area
                    );

                $array[$i] = array_merge($field[$i],$params[$i],$images[$i],$options[$i]);

            }

            return $array;
    }
    
    private function sortString($array){
        
        $app           = JFactory::getApplication();
        $filter_post   = $app->input->get('filter', '', 'post');
        
        $filter = array();
        $list   = array();
        $result = array();
        
        for($i = 0; $i < count($filter_post); $i++){
            
            if(!in_array('0', $filter_post[$i])){
                
                if(!is_numeric($filter_post[$i]['value'])){
                    
                    $filter[$filter_post[$i]['name']] = $filter_post[$i]['value'];    
                }  
            }
        }
        
        if(isset($filter)){
            
            $filter_count = count($filter);
            
            for($i = 0; $i < count($array); $i++){
                
                //Находим схождение массивов $filter и $array[$i]
                $comparison = array_intersect($filter,$array[$i]);
                    
                if(isset($comparison)){
                
                    foreach($comparison as $compare){
                        //Проверяем искомое значение в массиве $filter
                        if(in_array($compare,$filter)){
                            //Ищем ключи в массиве $filter
                            $key = array_search($compare,$filter);
                            //Создаем массив из id, совпадающих со значениями из $filter
                            if($filter[$key] == $array[$i][$key]){
          
                                $list[] = $array[$i]['id'];
                            }
                        }
                    }
                }
            }
        }
                
        //Подсчитать количество id в массиве $list
        //Возвращаем массив ключами которого являются значения массива $list
        if(isset($list)){
            
            $values_count = array_count_values($list);
        }else{
            
            exit();
        }
        
        //Создаем массив схожими поля из $filter и $array  
        foreach($values_count as $key => $values){
            
            if($filter_count == $values){
                
              $result[] = $key;  
            }
        }
        
        if(!empty($result)){
            
            for($i = 0; $i <= count($array); $i++){
                
                if(isset($array[$i])){  
                  
                    foreach($result as $r){
                  
                        if(array_search($r,$array[$i])){
                    
                           if($array[$i]['id'] == $r){
                              
                               $output[] = $array[$i];
                          }
                        }
                    }    
                }  
            }
      
            return $output;
            
        }elseif(empty($filter)){

            return $array;  
        }
    }
              
    function getView()
    {

        $app = JFactory::getApplication();
        $filter_post = $app->input->get('filter', '', 'post');
        $search_title = $app->input->get('search_title', '', 'post');
        $search = $app->input->get('search', '', 'post');

        if (!empty($filter_post)) {
            return $this->sortString($this->newArray());
        } else {
            return $this->newArray();
        }

    }
      
    function getCategory(){
            
            $db             = $this->getDbo();
            $query          = $db->getQuery(true);
            $app            = JFactory::getApplication();
            $itemid         = $app->input->getInt('Itemid', '');
            $published      = $this->getState('filter.published',1);
            $archived       = $this->getState('filter.archived',2);
                        
            $query->select(
'a.id AS id, '.
'a.title AS title, '.
                        'a.link  AS link, '.
'a.params AS params '
);
            
            $query->from('#__menu AS a');
            
            $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()). ',' . $db->quote('*'). ')')
                ->where('(a.published = ' . (int) $published . ' OR a.published = ' . (int) $archived . ')')
                ->where('parent_id = "'.$itemid.'"');
            $query->order('a.lft');
            
            $db->setQuery($query);
            return $db->loadObjectList();
        }
        
        
    function getFilter()
    {

        $db = $this->getDbo();
        $query = $db->getQuery(true);
        $doc = JFactory::getDocument();
        $published = $this->getState('filter.published', 1);
        $archived = $this->getState('filter.archived', 2);

        $query->select(
            'a.id AS id, ' .
            'a.title AS title, ' .
            'a.catid  AS catid, ' .
            'a.type AS type, ' .
            'a.params AS params,' .
            'a.hidden AS hidden, ' .
            'a.filter AS filter'
        );

        $query->from('#__catalog_customoptions AS a');

        $query->where('(a.published = ' . (int)$published . ' OR a.published = ' . (int)$archived . ')');

        $query->order('a.ordering ASC');
        $db->setQuery($query);
        return $db->loadObjectList();
    }
        
}
?>

причем там есть формочка filter отправляется через AJAX, ее данные видно
« Последнее редактирование: 20.10.2014, 14:57:52 от saharin88 »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Post запрос в модели компонента
« Ответ #8 : 20.10.2014, 15:21:54 »
А значение вообще уходит? В Developer tools браузера убедитесь, что значение ушло на сервер. Если ушло, то сделайте var_dump($app->input->post) и посмотрите, пришло ли оно.
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: Post запрос в модели компонента
« Ответ #9 : 20.10.2014, 15:36:14 »
А значение вообще уходит? В Developer tools браузера убедитесь, что значение ушло на сервер. Если ушло, то сделайте var_dump($app->input->post) и посмотрите, пришло ли оно.

значения полей уходят,, + в начале компонента видно еще данные
http://screencast.com/t/bCluW9fHTM
http://screencast.com/t/Mpd4whZ5rx

а когда посмотреть (var_dump($app->input->post) ) в методе(getView ) модели, данных уже нет...

получается где то внутри теряются данные

по модели не видно где бы перезатералось что то?

контроллера для этого view там нет
« Последнее редактирование: 20.10.2014, 15:39:33 от saharin88 »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Post запрос в модели компонента
« Ответ #10 : 20.10.2014, 15:57:39 »
Сделайте дамп в модели, после $filter_post = $app->input->get('filter', '', 'post');
*

saharin88

  • Захожу иногда
  • 291
  • 20 / 1
  • JoomWork
Re: Post запрос в модели компонента
« Ответ #11 : 20.10.2014, 18:09:49 »
большое спасибо всем!
там я не посмотрел хорошо, а вывод реализован на AJAX, и естественно нужно было при отправке AJAX запроса добавить мои данные...
еще раз, всем большое спасибо, за то что уделили время!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание компонента для табеля рабочего времени

Автор sashahz

Ответов: 7
Просмотров: 707
Последний ответ 12.04.2021, 11:12:11
от sashahz
Вызов формы компонента в pop-up, при клике по ссылке из любого места

Автор SkyAn

Ответов: 1
Просмотров: 606
Последний ответ 01.03.2021, 04:08:48
от gartes
[РЕШЕНО] Дублирование при создании

Автор platonische

Ответов: 7
Просмотров: 1200
Последний ответ 12.02.2021, 11:24:26
от platonische
[РЕШЕНО] onChange в админке на field modal

Автор platonische

Ответов: 1
Просмотров: 578
Последний ответ 30.01.2021, 16:40:45
от platonische
Документация по разработки компонента для Joomla 3.x

Автор Aspik

Ответов: 9
Просмотров: 3193
Последний ответ 23.01.2021, 07:55:56
от hmr