Ускоряем админку

+49
1.37K
Ускоряем админку
Многие сталкивались с медленной работой админ панели сайта.
Предлагаю вариант, который позволит вразы увеличить скорость работы с админкой, за счет убирания из цикла запросов к бд
Актуально практически для любой версии, кроме 1.10

1)находим admin\applets\components.php
в ней две функции
function cpComponentHasConfig и function cpComponentCanRemove
зменяем на
  1.  
  2. function cpComponentHasConfig($comp){
  3. $has = false;
  4. $file = 'components/'.$comp.'/backend.php';
  5. if (file_exists($file)){$has = true;}
  6. return $has;
  7. }
  8.  
  9. function cpComponentCanRemove($system){
  10. if ($system==0) {return true;}
  11. }
  12.  
далее идем в файл admin\includes\cp.php
находим функцию function cpModuleHasConfig
и заменяем
  1.  
  2. function cpModuleHasConfig($mod) {
  3. if ($mod) {
  4. $file = 'modules/' . $mod . '/backend.php';
  5. if (file_exists($file)) {
  6. return true;
  7. }
  8. $file = 'modules/' . $mod . '/backend.xml';
  9. if (file_exists($file)) {
  10. return true;
  11. }
  12. }
  13. }
  14.  
дальше ищем функцию function cpListTable и в ней if ($is_actions) { }и заменяем все условие на
  1.  
  2. if ($is_actions) {
  3. echo '<td width="110" class="' . $row_class . '" align="right" valign="middle"><div style="padding-right:8px">';
  4. foreach ($_actions as $key => $value) {
  5. if (isset($_actions[$key]['condition'])) {
  6. if (($_actions[$key]['condition'] == 'cpComponentHasConfig') || ($_actions[$key]['condition'] == 'cpModuleHasConfig')) {
  7. if ($_actions[$key]['condition'] == 'cpModuleHasConfig') {
  8. $print = $_actions[$key]['condition']($item['content']);
  9. } else {
  10. $print = $_actions[$key]['condition']($item['link']);
  11. }
  12. } elseif ($_actions[$key]['condition'] == 'cpComponentCanRemove') {
  13. $print = $_actions[$key]['condition']($item['system']);
  14. } else {
  15. $print = $_actions[$key]['condition']($item['id']);
  16. }
  17. } else {
  18. $print = true;
  19. }
  20. if ($print) {
  21. $icon = $_actions[$key]['icon'];
  22. $title = $_actions[$key]['title'];
  23. $link = $_actions[$key]['link'];
  24.  
  25. foreach ($item as $f => $v) {
  26. $link = str_replace('%' . $f . '%', $v, $link);
  27. }
  28.  
  29. if (!isset($_actions[$key]['confirm'])) {
  30. echo '<a href="' . $link . '" title="' . $title . '"><img hspace="2" src="images/actions/' . $icon . '" alt="' . $title . '"/></a>';
  31. } else {
  32. echo '<a href="#" onclick="jsmsg(\'' . $_actions[$key]['confirm'] . '\', \'' . $link . '\')" title="' . $title . '"><img hspace="2" src="images/actions/' . $icon . '" alt="' . $title . '"/></a>';
  33. }
  34. }
  35. }
  36. echo '</div></td>' . "\n";
  37. }
  38.  
перед правками сохраните файлы.
Скачать под версию 1.9
0
CozaNostra CozaNostra 9 лет назад #
+
+1
ivanish ivanish 9 лет назад #
А какие минусы от такого решения?
0
forlord forlord 9 лет назад #
почему должны быть минусы????
только плюсы
0
Эдька Эдька 9 лет назад #
я рисковать не стану
0
Эдька Эдька 9 лет назад #
но +
0
forlord forlord 9 лет назад #
здесь показано как убраны циклы)) все остальное осталось.
+2
RIM5 RIM5 9 лет назад #
Большой +!
Буду ставить.
+1
Pascal Pascal 9 лет назад #
Работает, но заметного ускорения не даёт.
+1
forlord forlord 9 лет назад #
Значит хороший хостинг.
А запросов стало в разы меньше.
Это видно в модулях и компонентах особо заметно на слабых хостингах
+1
Haronych Haronych 9 лет назад #
В фаербаге можно померить ускорение. В моем случае оно составило 2-6ms для разных разделов админки
0
alfaclub alfaclub 9 лет назад #
Стало не просто быстро - а очень быстро...! Спасибо!

Еще от автора

Новогодняя распродажа
Фотогалерея для сайта - 2000р http://demo.photoinstant.ru/ Автомобильная доска - 2000р http://auto.forlord.ru/ Подарки для друга - 800р http://demo.
Новая фотогалерея для сайта
Вот и пришло время показать, к чему пришла фотогалерея
Фотогалерея
Дорогие друзья, рад предоставить на Ваш суд очередную фотогалерею для 1.10+ Что же умеет фотогалерея
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.