COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Сортировка "Главная категория" в админке


Recommended Posts

Случайно наткнулся на визуальный баг в версии 2.х.

Все замеры сделаны на http://demo.opencart.pro/

В админке > в карточке товара > вкладка "Связи" > Строка "Главная категория"

Выпадающий список категорий сортируется черти как и не соответствует тому, как это было в 1.5.х версиях (выводился в соответствии с выставленной сортировкой в "Категориях", либо по алф. если у всех одинаковые значения, все как обычно).

Почему-то начинает сортировать по ID, и то не с первых значений, а потом добавляет в непонятном порядке.

 

Вот пример с демо:

Скрытый текст

<option value="36">Компоненты&nbsp;&nbsp;&gt;&nbsp;&nbsp;Мониторы&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 2</option>
<option value="37">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 5</option>
<option value="38">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 4</option>
<option value="39">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 6</option>
<option value="40">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 7</option>
<option value="41">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 8</option>
<option value="42">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 9</option>
<option value="43">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 11</option>
<option value="44">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 12</option>
<option value="45">Ноутбуки&nbsp;&nbsp;&gt;&nbsp;&nbsp;Windows</option>
<option value="46">Ноутбуки&nbsp;&nbsp;&gt;&nbsp;&nbsp;Macs</option>
<option value="47">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 15</option>
<option value="48">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 16</option>
<option value="49">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 17</option>
<option value="50">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 18</option>
<option value="51">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 19</option>
<option value="52">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 20</option>
<option value="53">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 21</option>
<option value="54">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 22</option>
<option value="55">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 23</option>
<option value="56">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 24</option>
<option value="58">MP3 Плееры&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 20&nbsp;&nbsp;&gt;&nbsp;&nbsp;test 25</option>
<option value="20">Компьютеры</option>
<option value="26">Компьютеры&nbsp;&nbsp;&gt;&nbsp;&nbsp;PC</option>
<option value="28" selected="selected">Компоненты&nbsp;&nbsp;&gt;&nbsp;&nbsp;Мониторы</option>
<option value="29">Компоненты&nbsp;&nbsp;&gt;&nbsp;&nbsp;Мышки</option>
<option value="30">Компоненты&nbsp;&nbsp;&gt;&nbsp;&nbsp;Принтеры</option>
<option value="31">Компоненты&nbsp;&nbsp;&gt;&nbsp;&nbsp;Сканеры</option>
<option value="32">Компоненты&nbsp;&nbsp;&gt;&nbsp;&nbsp;Веб-камеры</option>
<option value="18">Ноутбуки</option>
<option value="27">Компьютеры&nbsp;&nbsp;&gt;&nbsp;&nbsp;Mac</option>
<option value="25">Компоненты</option>
<option value="57">Планшеты</option>
<option value="17">Дополнения</option>
<option value="24">Телефоны и PDA</option>
<option value="33">Камеры</option>
<option value="34">MP3 Плееры</option>

 

 

з.ы.

у соседей ocstore такая же шляпа.

Ссылка на комментарий
Поделиться на других сайтах

  • 8 months later...
  • 2 months later...
В 08.04.2017 at 14:50, IOO сказал:

Апну тему.

Недавно вернулся к этой ошибке вывода категорий.

Решение для себя нашел в admin/model/catalog/category.php в функции getCategories

в 260 строке


$sql .= " GROUP BY cp.category_id";

заменил на


$sql .= " GROUP BY cp.category_id ORDER BY name, c1.parent_id";

и удалил условие ниже (не уверен в адекватности этого действия, но уж как есть)


if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
			$sql .= " ORDER BY " . $data['sort'];
		} else {
			$sql .= " ORDER BY sort_order";
		}

		if (isset($data['order']) && ($data['order'] == 'DESC')) {
			$sql .= " DESC";
		} else {
			$sql .= " ASC";
		}

 

Выводить категории стало по алфавиту, и с учетом структуры "категорий-подкатегорий-и глубже". Мне этого достаточно, как думаю и большинству.

Для удобства личных ocmod'ов:

  Скрыть содержимое


<file path="admin/model/catalog/category.php">
		<operation>
			<search><![CDATA[$sql .= " GROUP BY cp.category_id";]]></search>
			<add position="replace"><![CDATA[$sql .= " GROUP BY cp.category_id ORDER BY name, c1.parent_id";]]></add>
		</operation>
		<operation>
			<search><![CDATA[if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {]]></search>
			<add position="replace" offset="11"><![CDATA[]]></add>
		</operation>
</file>

 

Сделать идеальную сортировку через c1.sort_order у меня не вышло. Чтобы учитывало выставленную сортировку и корректную структуру вложения категорий. Пробовал варианты:

$sql .= " GROUP BY cp.category_id ORDER BY c1.sort_order, c1.parent_id";

Но не сработало. Дальше копать было лень.

Может кто более компетентный подскажет?

 

Спасибо, решение помогло! По алфавиту более чем достаточно, по сравнению с тем что было))

Ссылка на комментарий
Поделиться на других сайтах

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу