From 679d7116abdfa73029f5d0a4e4abbcc34e154f40 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 03:58:59 +0200 Subject: [PATCH] fix: add menu item via menu:start + append to .menu__list (bylampa API); HTTPS base URL --- plugin.js | 56 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/plugin.js b/plugin.js index f796a59..3b2a6dc 100644 --- a/plugin.js +++ b/plugin.js @@ -2,7 +2,7 @@ 'use strict'; var PLUGIN = { name: 'mymovies', title: 'Мои фильмы' }; - var DEFAULT_BASE = 'http://e9ghwyp5n5kyfshk55krbhki.31.129.103.242.sslip.io/'; + var DEFAULT_BASE = 'https://movies-lmp-18.dynv6.net/'; function base() { var b = Lampa.Storage.get(PLUGIN.name + '_base', DEFAULT_BASE); @@ -106,30 +106,48 @@ .replace(/>/g, '>').replace(/"/g, '"'); } - // ---- Пункт меню (нативный API Lampa) ---- - function addMenu() { - Lampa.Controller.add('menu', { - component: PLUGIN.name, - name: PLUGIN.title, - icon: 'archive', - action: function () { - Lampa.Activity.push({ - url: '', - component: PLUGIN.name, - title: PLUGIN.title, - page: PLUGIN.title - }); - } + // ---- Пункт меню ---- + // bylampa строит главное меню из массива menu_items и ПЕРЕД отрисовкой + // шлёт событие 'menu:start' с body = jQuery-объект меню (.menu__list внутри). + // Правильный способ добавить пункт — append'ить
  • в .menu__list при каждой сборке. + function addMenuItem() { + var list = $('.menu__list'); + if (!list.length) return; + if (list.find('[data-action="' + PLUGIN.name + '"]').length) return; // уже добавлен + + var item = $( + '
  • ' + ); + item.on('hover:enter', function () { + Lampa.Activity.push({ + url: '', + component: PLUGIN.name, + title: PLUGIN.title, + page: PLUGIN.title + }); }); + list.append(item); + Lampa.Selector.update(); } function start() { - addMenu(); + // 1) подписываемся на сборку меню (срабатывает при каждом открытии) + Lampa.Listener.follow('menu', function (e) { + if (e.type === 'start') { + setTimeout(addMenuItem, 50); + } + }); + // 2) если меню уже отрисовано в DOM — добавляем сразу + addMenuItem(); } - // Если Lampa уже загружена и Controller готов — стартуем сразу. - // Иначе ждём события готовности (плагин подгружен на старте Lampa). - if (window.Lampa && Lampa.Controller) { + // Стартуем когда Lampa готова (или сразу, если уже готова) + if (window.Lampa && Lampa.Listener && Lampa.Activity) { start(); Lampa.Listener.follow('app', function (e) { if (e.type === 'ready') start();