January 24, 2023

Скрипт «Добавление кастомного пункта меню в системное меню»

Небольшой полезный скрипт, с помощью которого можно добавить любой пункт меню в системное меню на GetCourse

Часто бывает так, что чтобы зайти в конкретный раздел на платформе, нужно сделать много кликов или знать конкретный адрес страницы. Благодаря данному скрипту больше не нужно будет сидеть и искать страницу, а она будет вынесена сразу в системное меню

💡 ЧТО НУЖНО ДЛЯ РАБОТЫ СКРИПТА

— Иметь право «Может настраивать аккаунт» (выдается с помощью главного аккаунта на платформе)

🎥 ВИДЕО С ДЕМОНСТРАЦИЕЙ РАБОТЫ СКРИПТА И ЕГО НАСТРОЕК

Видео с демонстрацией работы скрипта и его настроек

🚀 САМ СКРИПТ

(() => {
	/**
	 * Plugin Name: Добавление кастомного пункта меню в системное меню
	 * Description: Скрипт позволяет добавить любой пункт меню по своему желанию в системное меню в разделе "Настройки аккаунта" на GetCourse
	 * Version: 1.0
	 * Author: Трофимов Никита Игоревич (Бородатый Геткурс)
	 * Author URL: https://t.me/NiktarioN
	 */

	const addNewItemMenuToMainSettingMenu = () => {
		//////////////////////////////////////////////////////////////////////////////////////
		// ПАНЕЛЬ УПРАВЛЕНИЯ. НАЧАЛО

		// Указываем pathname для системной страницы
		const PAGE_MAIN_SETTINGS_PATHNAME = '/saas/account';

		// Указываем селектор блока главного меню на системной странице
		const MAIN_MENU_BLOCK_SELECTOR = '#yw0';

		/**
		 * Массив со значениеми кастомных пунктов меню
		 * Значения массива, относящиеся к одному пункту меню, оборачиваем в []
		 * Пишем значения массива в одинарных кавычках
		 * Перечисляем значения массива через запятую
		 * Значения массива:
		 * 1 - Заголовок пункта меню
		 * 2 - Ссылка без домена на нужную страницу
		 */
		const NEW_MENU_ITEMS_ARRAY = [
			['API', '/saas/account/api'],
			['Настройки тегов', '/pl/tag/index'],
			['Причины отказа от заказа', '/pl/list-value/index?objectType=14'],
		];

		//////////////////////////////////////////////////////////////////////////////////////
		// ПАНЕЛЬ УПРАЛЕНИЯ. КОНЕЦ

		if (!window.location.pathname.includes(PAGE_MAIN_SETTINGS_PATHNAME)) {
			return;
		}

		mainMenuBlock = document.querySelector(MAIN_MENU_BLOCK_SELECTOR);
		if (!mainMenuBlock) {
			return;
		}

		const createNewMenuItem = (title, link) => {
			const item = document.createElement('li');
			item.innerHTML = `<a href="${link}">${title}</a>`;
			return item;
		};

		NEW_MENU_ITEMS_ARRAY.forEach(([title, link]) => {
			mainMenuBlock.appendChild(createNewMenuItem(title, link));
		});
	};

	window.addEventListener('DOMContentLoaded', addNewItemMenuToMainSettingMenu);
})();

📍 Скрипт желательно добавлять через темы и активировать на всей платформе в разделе «Счетчики и скрипты»

💭 Обсудить решение можно под этим постом: https://t.me/borodach_getcourse/319

Мой канал в Telegram: https://t.me/borodach_getcourse

Мой канал на YouTube: https://www.youtube.com/channel/UCkI_5scRF3PAMeyD06EphTQ