Усовершенствования админки InstantCMS
Очень неудобная организация списка по умолчанию. Много модулей. Много страниц. Все модули перемешаны хаотично. Что-бы найти нужный модуль требуется совершить множество действий..
Готовых решений проблемы не нашел… Полез в коды..
Поиски привели к файлу \admin\includes\cp.php..
Маленько поковыряв файл получил такую табличку. В ней выводится на одной страничке 100 модулей (что-бы не лазить страничкам). Отключенные модули полупрозрачны, дабы не отвлекали внимания. Кнопочки-стрелочки порядка выставлены слева и справа от поля. Получилось вроде неплохо… Но модули расположены по прежнему хаотично, а хотелось бы упорядоченности, например как-то так. А как это сделать, у меня уже ума не хватило..
Если кто разбирается в таких вещах, подскажите, как можно по умолчанию отсортировать эту табличку ?
PS. InstantCMS 1.10.4
function cpListTable($table, $_fields, $_actions, $where='', $orderby='title'){
function cpListTable($table, $_fields, $_actions, $where='', $orderby='id'){
задумка хорошая, но еще не до конца допилена. страница списка пользователей применяется со стилем прозрачности, т.е стилем .lt_row2 {opacity:0.6;}
Поправил и решил упростить код, использовав style вместо class:
if ($r % 2) { $row_class = 'lt_row1'; } else { $row_class = 'lt_row2'; } if ($table == 'cms_menu' or $table == 'cms_modules' or $table == 'cms_components' or $table == 'cms_plugins') {if ($item['published']) {$row_opacity = 'opacity:1';} else {$row_opacity = 'opacity:0.6';}} echo '<tr style="'.$row_opacity.'" id="lt_row2">'."\n"; echo '<td class="'.$row_class.'" align="center" valign="middle"><input type="checkbox" name="item[]" value="'.$item['id'].'" /></td>'. "\n";
function cpListTable($table, $_fields, $_actions, $where='', $orderby='id'){
Можт там что-то еще надо где-то дописать… ?
Вот… Кажется получилось, что-то похожее… Добавил после $sort = cmsCore::request('sort', 'str', '');
if ($table == 'cms_menu' or $table == 'cms_modules' or $table == 'cms_components' or $table == 'cms_plugins') $sort = 'published';
Только вверх ногами как-то… Как-бы теперь ее перевернуть ?
Ура! Получилось!
Перевернулось путем добавления после $sql .= ' ORDER BY '.$sort;
if ($table == 'cms_menu' or $table == 'cms_modules' or $table == 'cms_components' or $table == 'cms_plugins') $sql .= ' DESC ';
Итого весь код:
364. $perpage = 100; ... 417. $sort = cmsCore::request('sort', 'str', ''); 418. if ($table == 'cms_menu' or $table == 'cms_modules' or $table == 'cms_components' or $table == 'cms_plugins') $sort = 'published'; ... 429. $sql .= ' ORDER BY '.$sort; 430. if ($table == 'cms_menu' or $table == 'cms_modules' or $table == 'cms_components' or $table == 'cms_plugins') $sql .= ' DESC '; ... 507. if ($r % 2) { $row_class = 'lt_row1'; } else { $row_class = 'lt_row2'; } 508. if ($table == 'cms_menu' or $table == 'cms_modules' or $table == 'cms_components' or $table == 'cms_plugins') {if ($item['published']) {$row_opacity = 'opacity:1';} else {$row_opacity = 'opacity:0.6';}} 509. echo '<tr style="'.$row_opacity.'" id="lt_row2">'."\n"; 510. echo '<td class="'.$row_class.'" align="center" valign="middle"><input type="checkbox" name="item[]" value="'.$item['id'].'" /></td>'. "\n"; ... 590. echo '<td class="'.$row_class.'" valign="middle" style="min-width: 100px;"> 591. <a title="'.$_LANG['AD_UP'].'" href="?view='.$GLOBALS['applet'].'&'.$do.'=move_up&co='.$item[$_fields[$key]['field']].'&'.$ids.'='.$item['id'].'"><img src="images/actions/top.gif" border="0"/></a>'; 592. if ($table != 'cms_menu' && $table != 'cms_category'){ 593. echo '<input class="lt_input" type="text" size="4" name="ordering[]" value="'.$item['ordering'].'" />'; 594. echo '<input name="ids[]" type="hidden" value="'.$item['id'].'" />'; 595. } else { 596. echo '<input class="lt_input" type="text" size="4" name="ordering[]" value="'.$item['ordering'].'" disabled/>'; 597. } 598. echo '<a title="'.$_LANG['AD_DOWN'].'" href="?view='.$GLOBALS['applet'].'&'.$do.'=move_down&co='.$item[$_fields[$key]['field']].'&'.$ids.'='.$item['id'].'"><img src="images/actions/down.gif" border="0"/></a>'. 599. '</td>'. "\n";
PPS. Данный код меняет отображение списков в "Меню", "Модули", "Компоненты" и "Дополнения".
Скачивал Ваш файл из первого поста, добавил в 359 строку ИД. На странице модулей все ок. На остальных — все в разброс. Но учитывая то, что на остальных это не так важно, поскольку плагинов, пунктов меню и т.п. не более 20 шт, все и так отлично смотрится. Можно конечно извращаться и подгонять все в точности как на скрине, это наверное дело каждого, кому как удобнее. freet, а файл то действительно не найден. Перезалили не верно.У меня не срабатывет… Даже по id не сортирует..
kirkr, тестировал на 1,10,4.
Ветка InstantCMS 1.10.XУкажите под какую ветку правили, а то народ не поймет :)
Спасибо, поправил..выдает — файл не найден
Вот та-же ссылка — instantcms.ru/users/files/download4680.html
Теперь все нормально, никакого разброса…На остальных — все в разброс
все работает на славу...
только 100 строк — это мало😊вернул обратно свое значение в 400