Сортировка в обратном порядке. Как?

  • 11 Ответов
  • 596 Просмотров

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

*

Оффлайн holovla

Добрый день!
Фото имеют цифровые имена, возможно ли сделать сортировку в обратном порядке, чтобы новые, только загруженные фото были первые.
Сейчас 123456789... 1050 1051 итд
Нужно 1051 1050 .... 987654321

Реально ли так сделать?

Заранее благодарю за помощь!

*

Оффлайн Septdir

  • *******
  • 2084
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Можно прям на выводе массив развернуть array_reverse в помощь
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн holovla

Можно прям на выводе массив развернуть array_reverse в помощь

Благодарю за ответ!
К сожалению, в силу незнания и неимения опыта php самому добавить корректно array_reverse врятли получится .
Не затруднит ли Вас тыкнуть носом где и как подредактировать?
Буду Вам бесконечно признателен! *DRINK*


Насколько я понял сортировка идет тут components\com_joomgallery\views\category\tmpl\default_head.php

div class="jg_catorderlist">
      <form action="<?php echo $this->sort_url;?>" method="post">
          <?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY'); ?>
        <select title="<?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY'); ?>" name="orderby" onchange="this.form.submit()" class="inputbox">
          <option value="default"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_DEFAULT'); ?></option>
<?php   if(strpos($this->_config->get('jg_usercatorderlist'), 'date')!== false): ?>
          <option <?php if($this->order_by == 'date') echo 'selected="selected"'?> value="date"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_DATE'); ?></option>
<?php   endif;
        if(
strpos($this->_config->get('jg_usercatorderlist'), 'user')!== false): ?>

          <option <?php if($this->order_by == 'user') echo 'selected="selected"'?> value="user"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_AUTHOR'); ?></option>
<?php   endif;
        if(
strpos($this->_config->get('jg_usercatorderlist'), 'title')!== false): ?>

          <option <?php if($this->order_by == 'title') echo 'selected="selected"'?> value="title"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_TITLE'); ?></option>
<?php   endif;
        if(
strpos($this->_config->get('jg_usercatorderlist'), 'hits')!== false): ?>

          <option <?php if($this->order_by == 'hits') echo 'selected="selected"'?> value="hits"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_HITS'); ?></option>
<?php   endif;
        if(
strpos($this->_config->get('jg_usercatorderlist'), 'rating')!== false): ?>

          <option <?php if($this->order_by == 'rating') echo 'selected="selected"'?> value="rating"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_RATING'); ?></option>
<?php   endif; ?>
        </select>
<?php   $disabled '';
        if(
$this->order_by != 'title' && $this->order_by != 'hits' && $this->order_by != 'date' && $this->order_by != 'user' && $this->order_by != 'rating'):
          
$disabled ' disabled="disabled"';
        endif; 
?>

        <select<?php echo $disabled?> title="orderdir" name="orderdir" onchange="this.form.submit()" class="inputbox">
          <option <?php if ($this->order_dir == 'asc') echo 'selected="selected"' ?> value="asc"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_ASC'); ?></option>
          <option <?php if ($this->order_dir == 'desc') echo 'selected="selected"' ?> value="desc"><?php echo JText::_('JGS_CATEGORY_OPTION_USER_ORDERBY_DESC'); ?></option>
« Последнее редактирование: 15.04.2017, 16:45:43 от holovla »

*

Оффлайн holovla

Друзья, может кто подсказать??

*

Оффлайн Septdir

  • *******
  • 2084
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
в приведенном вам коде нету ни масива ни цикла.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн robert

Можно прям на выводе массив развернуть array_reverse в помощь
Это не решение. Нужно сделать сортировку на уровне запроса в БД, иначе получится:
- стр.1: 20, 19,...2, 1
- стр.2: 40, 39,..., 22, 21
...
а самые новые находятся на стр.200.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн Septdir

  • *******
  • 2084
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Это не решение. Нужно сделать сортировку на уровне запроса в БД, иначе получится:
- стр.1: 20, 19,...2, 1
- стр.2: 40, 39,..., 22, 21
...
а самые новые находятся на стр.200.
Не знал что  JoomGallery хранит имаги в бд, тогда да, придется модель подправлять, а в током случае ТС стоит обратиться в ком. раздел
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн robert

Не знал что  JoomGallery хранит имаги в бд
Я тоже не знаю, но скорее всего там.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн Septdir

  • *******
  • 2084
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Я тоже не знаю, но скорее всего там.
Да вы правы и причем выгружаются с лимитом
Кстати сам сортировка скорее всего тут, хотя не уверен ибо чтобы на вероника надо ставить компонент а мне лень
https://github.com/JoomGallery/JoomGallery/blob/master/components/com_joomgallery/models/category.php#L727
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн holovla

Да вы правы и причем выгружаются с лимитом
Кстати сам сортировка скорее всего тут, хотя не уверен ибо чтобы на вероника надо ставить компонент а мне лень
https://github.com/JoomGallery/JoomGallery/blob/master/components/com_joomgallery/models/category.php#L727

Спасибо Большое за ответы!! Я думаю это будет полезно многим!!

Вот код components/com_joomgallery/models/category.php  (строка 727 начинается с $where[] = "a.published = 1";)
Спойлер
[свернуть]

*

Оффлайн Septdir

  • *******
  • 2084
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Re: Сортировка в обратном порядке. Как?
« Ответ #10 : 22.04.2017, 01:47:30 »
Спасибо Большое за ответы!! Я думаю это будет полезно многим!!

Вот код components/com_joomgallery/models/category.php  (строка 727 начинается с $where[] = "a.published = 1";)
Важен не номер строки а ее содержание. Если бы я пользовался этим компонентом и под рукой было бы решние я бы написал так и написал.
Если вам нужен готовый код, тогда милости просим в коммерческий раздел, ну или ждите пока кто ни будь это будет править для себя.
Если же хотите сами разобраться дам несколько намеков.
1. Порядок aка Сортировка в запросах ORDER BY в переменные для сортировки частенько называют так же, помимо название колонки в базе, так же пишеться в каком порядке выводить ASC или DESC
2. В компонентах запросы в базу чаще всего хранятся в model, хотя иногда бывают и исключения.
3. Модели по большей части имеют то же имя что и view.
4. Если начнете читать функции то многое станет понятно.
К примеру в приведенной вам функции есть целая функция отвечающая за сортировку function _buildImagesOrderBy()
В которой есть следующие строки
Код: (php) [Выделить]
$user_orderby   = JRequest::getCmd('orderby');
      $user_orderdir  = JRequest::getCmd('orderdir');
По которым можно сказать что сортировка выставляться в настройках.
Но опять таки все это лишь предположения.
Ибо вы не дали ни версии (а она отличается от gihub) компонента ни то где вы его используете, а то малоли вы вообще про какой нибудь модуль, по сути исходных данных очень мало, да и как я писал ранее ставить его мне не очень хочется
« Последнее редактирование: 22.04.2017, 01:56:42 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн holovla

Re: Сортировка в обратном порядке. Как?
« Ответ #11 : 22.04.2017, 14:57:50 »
Важен не номер строки а ее содержание. Если бы я пользовался этим компонентом и под рукой было бы решние я бы написал так и написал.
Если вам нужен готовый код, тогда милости просим в коммерческий раздел, ну или ждите пока кто ни будь это будет править для себя.
Если же хотите сами разобраться дам несколько намеков.
1. Порядок aка Сортировка в запросах ORDER BY в переменные для сортировки частенько называют так же, помимо название колонки в базе, так же пишеться в каком порядке выводить ASC или DESC
2. В компонентах запросы в базу чаще всего хранятся в model, хотя иногда бывают и исключения.
3. Модели по большей части имеют то же имя что и view.
4. Если начнете читать функции то многое станет понятно.
К примеру в приведенной вам функции есть целая функция отвечающая за сортировку function _buildImagesOrderBy()
В которой есть следующие строки
Код: (php) [Выделить]
$user_orderby   = JRequest::getCmd('orderby');
      $user_orderdir  = JRequest::getCmd('orderdir');
По которым можно сказать что сортировка выставляться в настройках.
Но опять таки все это лишь предположения.
Ибо вы не дали ни версии (а она отличается от gihub) компонента ни то где вы его используете, а то малоли вы вообще про какой нибудь модуль, по сути исходных данных очень мало, да и как я писал ранее ставить его мне не очень хочется


Благодарю!! Буду разбираться!