Перейти к содержимому


Фотография

Ide Для Разработки И Отладки Плагинов Для Dune Hd


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 103

#21 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 16 March 2020 - 13:19

Разрабатываю на b9 - она последняя для 301 модели.

А почему если я был в screen 4 я хочу вернуться в screen 2, а не screen 3? И почему я не могу использовать 

MediaURL::encode(array('screen_id' => self::ID, 'path' => '..') 

ведь я же хочу подняться на один уровень выше? Или я не понимаю чего то важного?

можете , но это

MediaURL::encode(array('screen_id' => self::ID, 'path' => '..')  

должно соответствовать MediaURLпри открытии scren 2. Если вы открываете изначально screen 2 так же то оно его откроет. 

 

НО через open_folder это открытие нового окна выходит.


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#22 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 16 March 2020 - 13:30

можете , но это

MediaURL::encode(array('screen_id' => self::ID, 'path' => '..')  

должно соответствовать MediaURLпри открытии scren 2. Если вы открываете изначально screen 2 так же то оно его откроет. 

 

НО через open_folder это открытие нового окна выходит.

А я могу не открывать новое окно, а вернуться в уже открытый screen 2?


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#23 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 16 March 2020 - 13:30

Тогда что бы не плодить открытые окна и что бы можно было использовать штатный ретурн, подскажите какой функцией можно перечитать содержимое вышестоящего каталога? При использовании штатного ретурна. каталог не перечитывается и отображаются даже уже удаленные объекты (например по smb). Собственно поэтому и решил писать обработчик для return. 

ActionFactory::replace_path($n, null, $post_action);

но я не знаю работает ли оно на b9. Можно еще по таймеру перечитывать постоянно нужное окно, не знаю на сколько это уместно в вашем случае. 

 

До этого я так же переоткрывал что бы обновить окно. Теперь пользуюсь replace_path в нем возможно в $post_action добавить функцию что бы перечитать окно. 

 

Могу ошибатся но вроде у Brigadir в домашнем есть какойто самописный аналог replace_path для b9. Я в эту сторону не смотрел та как на b9 все равно 

 почти ничего не работает из vod изза https

Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#24 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 16 March 2020 - 13:47

ActionFactory::replace_path($n, null, $post_action);

но я не знаю работает ли оно на b9. Можно еще по таймеру перечитывать постоянно нужное окно, не знаю на сколько это уместно в вашем случае. 

 

 

Нашел данную функцию в Базинге - часа через три буду дома проверю. Спасибо большое за помощь.


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#25 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 16 March 2020 - 14:55

Я конечно не знаю что вы там строите но еще один вариант это не открывать окна вообще (вернее открыть только раз), а далее просто перечитывать одно и тоже окно с нужными параметрами 

ActionFactory::invalidate_folders(array($media_url));

или 

ActionFactory::update_regular_folder($range, true, $sel_ndx);

тогда в функцию которая на return/enter передаете параметры которые будут соответствовать нужному вам окну. Так помоему реализовано в плагине главтв. 


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#26 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 16 March 2020 - 20:33

В результате получился такой код.

public function get_action_map(MediaURL $media_url, &$plugin_cookies) {
		$actions = array();
		$press_key_return = UserInputHandlerRegistry::create_action($this, 'press_key_return');
    	$popup_menu_action = UserInputHandlerRegistry::create_action($this, 'popup_menu');
    	$popup_menu_action['caption'] = 'Действия';
		$actions[GUI_EVENT_KEY_POPUP_MENU] = $popup_menu_action;
		$actions[GUI_EVENT_KEY_ENTER] = UserInputHandlerRegistry::create_action($this, 'press_key_enter');
		$actions[GUI_EVENT_KEY_RETURN] = ActionFactory::replace_path($media_url->windowCounter);
        return $actions;
    }
------------------------------------------------------------------------------------------------------------------------

$control_id = $user_input->control_id;
		$selected_media_url = MediaURL::decode($user_input->selected_media_url);
		$actions = $this->get_action_map($selected_media_url, $plugin_cookies);

		     switch ($control_id) {
		      case 'launch_plugin':
		     return ActionFactory::open_folder();  
		      case 'press_key_enter':
				 return ActionFactory::open_folder();
		      case 'press_key_return':
				 $postaction = ActionFactory::invalidate_folders(array($user_input->parent_media_url));
				 return $action = ActionFactory::replace_path($media_url->windowCounter - 1, null, $postaction);

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


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#27 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 16 March 2020 - 21:52

$actions[GUI_EVENT_KEY_RETURN] = ActionFactory::replace_path($media_url->windowCounter);

замените на 

$actions[GUI_EVENT_KEY_RETURN] = UserInputHandlerRegistry::create_action($this, 'press_key_return');

Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#28 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 16 March 2020 - 22:09

Плагин запустился, но ретурн не работает.


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#29 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 16 March 2020 - 22:20

Судя по функции HD::get_version эта функция на b9 действительно не идет.


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#30 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 16 March 2020 - 23:54

Ну после того вышла другая b9, и я не проверял. 

тогда используйте обновление одного окна ну или как вы и планировали открывать окна


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#31 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 17 March 2020 - 12:25

У меня последняя b9, я просто в подписи ошибся. Поправил.

А для open_folder все таки аргументы не подскажете? Что то никак не могу додумать. Например, если я хочу подняться в вышестоящий каталог по файловой системе Дюны (../)


case 'press_key_return':
return ActionFactory::open_folder(MediaURL::encode(array('screen_id' => self::ID, 'path' => $selected_media_url->path . '/..' . '/..')), null);
break;

При таком варианте. где бы не находился выкидывает в корень файловой системы.


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#32 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 17 March 2020 - 13:08

Я конечно не знаю что вы там строите но еще один вариант это не открывать окна вообще (вернее открыть только раз), а далее просто перечитывать одно и тоже окно с нужными параметрами 

ActionFactory::invalidate_folders(array($media_url));

или 

ActionFactory::update_regular_folder($range, true, $sel_ndx);

тогда в функцию которая на return/enter передаете параметры которые будут соответствовать нужному вам окну. Так помоему реализовано в плагине главтв. 

 

А можете если не сложно рассказать подробнее об этом способе?


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#33 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 18 March 2020 - 11:04

вы открываете окно 1 раз. Оно у вас открывается с какими то входящими параметрами в $media_url.  При переходе в следующее окно не используете ActionFactory::open_folder так как оно открывает новое окно, а используете ActionFactory::invalidate_folders(array($media_url));  с обновленными параметрами в $media_url, текущее окно просто перечитается с новыми параметрами. Я это пока не использовал нигде в таком ключе, но на 90% уверен что так реализовано в главтв навигация по страницам. 


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#34 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 19 March 2020 - 03:32

case 'press_key_return':
$parent_media_url = MediaURL::decode($user_input->parent_media_url);
$arr['screen_id'] = self::ID;
$pos = strrpos($parent_media_url->path, '/');
$arr['path'] = substr($parent_media_url->path, 0, $pos); 
$pos = strrpos($parent_media_url->dest, '/');
$arr['dest'] = substr($parent_media_url->dest, 0, $pos);
$media_url = MediaURL::encode($arr);
$range_return = HD::create_regular_folder_range($this->get_all_folder_items(MediaURL::decode($media_url), $plugin_cookies));
return ActionFactory::invalidate_folders(array($media_url), ActionFactory::update_regular_folder($range_return, true, $user_input->sel_ndx));

В результате данного кода все таки удалось подняться в вышестоящий каталог по файловой структуре Дюны. Но адресная строка не поменялась и parent_media_url теперь равен selected_media_url. Я правильно понимаю, что родительский каталог обновляет ActionFactory::invalidate_folders? Почему в моем случае она этого не делает? Или другая какая функция?

[2649] [t775786496] [2020-03-18 23:24:08.953634] php engine: handler_id => main_handler
[2649] [t775786496] [2020-03-18 23:24:08.953769] php engine: control_id => popup_menu
[2649] [t775786496] [2020-03-18 23:24:08.953902] php engine: parent_media_url => {"screen_id":"file_tree","path":"/codecpack/WWW/cgi-bin","dest":"/codecpack/WWW"}
[2649] [t775786496] [2020-03-18 23:24:08.954121] php engine: selected_media_url => {"screen_id":"file_tree","path":"/codecpack/WWW/cgi-bin","dest":"/codecpack/WWW"}
[2649] [t775786496] [2020-03-18 23:24:08.954262] php engine: sel_ndx => 0
[2649] [t775786496] [2020-03-18 23:24:08.954381] php engine: ...>


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#35 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 19 March 2020 - 16:15

А она и недолжна менятся invalidate_folders/update_regular_folder обновляет текущее окно. Перехода никуда происходит. Вам надо логику всего плагина передать с учетом этого. Так как заголовок окна менятся не будет и медиаурл тоже.

Поэтому с какогото мемента вы вообще не используйте опен фолджер а только  invalidate_folders/update_regular_folder и для открытия нужных окон. Вернее это будет не открытие а обновление текущего окна.


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#36 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 19 March 2020 - 19:15

Спасибо Вам большое - разобрался. Подскажите, пожалуйста, еще про функцию get_folder_view($media_url, &$plugin_cookies)? Я так понял она автоматически вызывается при каждом вызове open_folder()? А если я использую обновление одного окна как мне ее вызвать?


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#37 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 20 March 2020 - 00:06

На счет этого не подумал. У вас сильно отличаются оформления окон? 

Такой вариает через обновление для однотипных окон думаю использовать только можно. 


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#38 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 20 March 2020 - 05:29

Окна однотипные. Я хочу вызвать get_folder_view что бы передавать текущий путь в адресную строку. При использовании open_folder() путь передавался через ViewParams::extra_content_objects. Его возвращала функция get_folder_view. Какие существуют варианты при обновлении одного окна?


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#39 TrippyCat

TrippyCat

    Пользователь

  • Пользователи
  • PipPipPipPipPipPipPip
  • 27062 сообщений
  • Gender:Male

Отправлено 20 March 2020 - 13:39

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


Dune Store Extension (Дюнастор расширенный)
Faq По Плеерам Dune - в процессе заполнения.

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном дюне (обычно внутренний диск) папку "dune_plugin_logs". После чего начните пользоваться плагином, и в папке dune_plugin_logs появится файл лога. (папку создавать с нижними подчеркиваниями). К файлу лога добавляйте расширение txt иначе на форум не загрузить или упакуйте файл лога в zip архив.

Хотел бы настойчиво попросить всех изменить свои подписи до такого вида (указание модели и прошивки, это сэкономит время вам и авторам плагинов) Faq По Плеерам Dune - п.12 - Как сделать подпись на форуме :
Dune Pro 4K(tv292a) - всегда последняя
Dune Neo 4K T2 Plus Version - всегда последняя
Dune Solo 4K (всегда последняя) Сист.флешка присутствует

Обновите парсеры это означает кнопка попап пункт "обновить" на иконке плагина или перегрузите плеер или в настройках плагина Bazinga.

#40 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 20 March 2020 - 15:04

А если положить на форму лейбл, обновить его чтоб текст появился тоже не удастся? Тоже get_folder_view надо вызывать?


Dune 301 (150721_0136_B9) Сист.флешка присутствует