Блог/Добавление сортировки по id

Сортировка дерева MODx Revolution по id

Автор: Кудашев Сергей

Когда-то давно я пользовался Modx Evolution. Да, конечно она не была совершенна и не обладала той гибкостью, которую нам принесла Revolution. Но были и остаются в ней моменты, к которым я до этого настолько привык, что до сих пор ищу возможность (например, аналог Doc Manager) воспроизвести некоторые решения Evolution на Revolution. Сегодня расскажу, как вернуть возможность сортировки документов по id в дереве документов.

Лично мне данной возможности постоянно не хватает. Кстати да, кто еще не нашел этой возможности, то для выбора сортировки необходимо нажать правой клавишей мыши на серое поле текущего контекста, там же где можно обновить дерево документов. Так как найти возможности сделать выводить документы в дереве по id документов я так и не нашел, то решил в очередной раз влезть в код. Ну и соответственно доработать административную часть MODx Revolution под мои маленькие прихоти.

Как мы знаем, MODx Revolution обладает встроенной админкой, написанной с использованием фреймворка ExtJS. Файлы данного фреймворка, участвующие в работе админки лежат в папке manager/assets/modext. Файлы отвечающие за работу с внешним видом лежат в папке widgets. В общем нужный нам файл, участвующий в выводе дерева документов modx.tree.resource.js расположен в папке manager/assets/modext/widgets/resource. За работу с сортировкой отвечает метод _getSortMenu()в конец которого нам надо дописать:

				},{
					text: 'ID ascending'
					,sortBy: 'id'
					,sortDir: 'ASC'
					,handler: this.filterSort
					,scope: this
				},{
					text: 'ID descending'
					,sortBy: 'id'
					,sortDir: 'DESC'
					,handler: this.filterSort
					,scope: this
				}]
			}
		}];
	}

Все, после этого мы получим возможность сортировать документы в дереве документов по id по нисходящей и восходящей.

Сортировка дерева MODx Revolution по id

Как обычно выкладываю патч файл данного решения. Возможно кому-то данное решение так же будет необходимо в работе :)

Комментарии (0)