View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000503SAS.Планета[All Projects] Хотелкаpublic20-03-2011 19:0901-10-2013 10:24
ReporterTolik 
Assigned ToGarl 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version121010 
Target Version131111Fixed in Version131111 
Summary0000503: Добавить меню карт второго уровня
DescriptionТ.к. карт становится всё больше с каждым днём, назрела необходимость группировать их в 2-уровневое меню. Например, Карты - Локальные - ДубльГис.

Параметры можно назвать, например, так:
ParentSubMenu=Локальные
ParentSubSubMenu=ДубльГис
Tagszmp
Attached Files

- Relationships

-  Notes
(0001323)
Garl (manager)
21-03-2011 09:28

как вариант можно использовать пустой zmp для обозначения группы меню, тогда можно будет не только ссылаться на родителя но и делать много многоуровнево вложенные менюшки.
(0001326)
feya (manager)
21-03-2011 14:42

Такого - ParentSubSubMenu мне кажется лучше не делать, если уж делать то нормальные многоуровневые с делителем через слеш.
(0001327)
vdemidov (manager)
21-03-2011 15:02

А мне понравилась идея делать подменю при помощи ссылки на родительский zmp. Тогда появится возможность относительно легко переименовывать и локализировать подменю.
(0001328)
feya (manager)
21-03-2011 15:06

>А мне понравилась идея делать подменю при помощи ссылки на родительский zmp
Это как?
(0001329)
vdemidov (manager)
21-03-2011 15:16

Ну делается например файлик с расширением zmpgrp или любым на наш выбор. В нем прописывается его GUID, родительский GUID и название в том числе и локализации.
Еще можно добавить параметр описывающий, что делать именно подменю или просто сгруппировать вместе и отделить от остальных разделителями
(0001330)
vdemidov (manager)
21-03-2011 15:31

Если добавить к этому возможность перекрыть этот файлик лежащим на уровень выше в структуре папок, то вообще гибкая структура выйдет.
(0001331)
Tolik (manager)
21-03-2011 16:46

Ок, ParentSubSubMenu - не оч. хор. идея.
Предлагаю ещё одну.
Требования:
1. Не переписывать _все_ существующие zmp
2. Не плодить слишком много новых файлов
3. Не использовать GUID для описания иерархии, а пользоваться читабельными человеческими идентификаторами.
Поэтому создаём один файл, например, maps\sas.maps\groups.ini
и прописываем в нём всю структуру меню, как-то так:

[Main]
Локальные карты
Исторические

[Локальные карты]
ДубльГис
UMAP

[Исторические]
Московская область
Уральский ФО

2gis.khabarovsk.zmp не переписываем, в нём ParentSubMenu=ДубльГис, попадает в меню Локальные карты - ДубльГис.
Также добавить разделы для разных языков.
(0001332)
vdemidov (manager)
21-03-2011 17:00

И как предлагаете потом эти groups.ini из разных репозиториев между собой объединять?
(0001333)
feya (manager)
21-03-2011 19:02

vdemidov, идея с отдельными файлами интересная, но соглашусь с Tolik'о - плодить лишние файлы в zmp не есть гуд. Предложеный мной вариант со слешами имеет только один недостаток - приходится во всех zmp хранить название пути подменю и соответственно их переводы, но это уже опробовано временем и вроде особо никого не напрягало. Еще плюс - это самый простой и безболезненный вариант)
(0001335)
Tolik (manager)
21-03-2011 19:31
edited on: 21-03-2011 19:53

> И как предлагаете потом эти groups.ini из разных репозиториев между собой объединять?
Например, так:
В sas.maps\groups.ini
[Main]
menu1
menu2

В plus.maps\groups.ini
[Main]
menu1
menu3

После парсинга и объединения должно получиться
[Main]
menu1
menu2
menu3

(я надеюсь, это не сложно реализовать)

(0001336)
Tolik (manager)
21-03-2011 19:44

feya, а что со слешами? Так, что ли?
ParentSubMenu=Локальные/ДубльГис

Да тоже неплохо.
Во всяком случае понятно и никакой путаницы. Только zmp придётся исправить и обратной совместимости не будет. Ну и ладно.

Кстати, pnum ещё напрягает, как-то он непредсказуемо действует на все эти группы... Один неправильный pnum портит всю картину. Надо ещё как-то определять положение группы в подменю. Тут groups.ini таки имеет преимущество :)
(0001338)
vdemidov (manager)
21-03-2011 20:33

Лично мне очень хочется убрать из zmp локализованное название подменю, разделитель и pnum.
(0001339)
Tolik (manager)
21-03-2011 21:07

Да, и разделители тоже вечно появляются где попало.
Ну и как это сделать, все настройки внешнего вида перенести в .ini?
(0001340)
vdemidov (manager)
21-03-2011 21:20

Ну да. Если выделить инфу о группировке zmp в отдельные ini, то от разделителей можно избавиться введя группы без выделения в подменю.
(0001341)
Garl (manager)
22-03-2011 05:38

прошу учесть что некоторые имеют привычку сносить .ini файлы,
поэтому информацию о группах хранить в ini файле - не сильно айс.

>Лично мне очень хочется убрать из zmp локализованное название подменю, разделитель и pnum.
согласен.
(0001342)
Tolik (manager)
22-03-2011 06:11

Я и сам их часто тру :)
Но это не проблема: они ж будут в репозиториях.
(0001343)
feya (manager)
22-03-2011 06:56

к чему же в итоге придем?
В принципе хранение отображения zmp в меню согласен перенести в отдельный файл, но не вариант если их будет несколько ибо это вызовет путаницу еще поболе чем сейчас.
(0001346)
Garl (manager)
22-03-2011 08:19

озвучу универсальный подход как я его вижу

Имеем ZMP "Локальные карты" (допустим в основном репозитории) {889E44B1-413F-49D9-B5C7-3E20851B5C40}

ZMP с группой Допустим "локальные непривязанные карты" GUID {B67EF627-B412-4AE0-80FE-A50300AFECAA}
указываем что у него родитель "Локальные карты" {889E44B1-413F-49D9-B5C7-3E20851B5C40}

имеем скрипт карты в котором указываем родителя {B67EF627-B412-4AE0-80FE-A50300AFECAA}
карта города мухосранска


в идеале если у нас присутствуют в одной папке файлы слитые из двух репозиториев то у нас получится
"Локальные карты"->"локальные непривязанные карты"->"карта города мухосранска "

если же у нас слит только плюсовый репозиторий то врехнегородителя не будет, будет только
"локальные непривязанные карты"->"карта города мухосранска "


в чём плюс:
+не подвязаны под конфиги,
+чётко видно кто кому подчинён,
+отсутствие какого либо родителя не влияет на работоспособность.

минусы:
pnum, всётаки его придется использовать для сортировки, можето только у групп, но всётаки.
(0001347)
vdemidov (manager)
22-03-2011 08:26

Ну несколько их будет по любому. Во-первых нужно что бы каждый репозиторий мог более менее независимо задать структуру. Плюс нужно что бы пользователь мог ее перекрыть не исправляя файлы входящие в репозиторий. Так что инфа из них должна будет собираться или в maps.ini или в глобальный groups.ini
(0001348)
Tolik (manager)
22-03-2011 08:26

> не вариант если их будет несколько ибо это вызовет путаницу еще поболе чем сейчас.

Тогда пусть будет один: maps\sas.maps\groups.ini
Если карты какой-то группы существуют только в плюсовом репозитории, группу под них всё равно пропишем в основном. А отображать пустую группу в меню не надо (если плюсовой не подгружен).
(0001349)
Tolik (manager)
22-03-2011 08:28

maps\sas.maps\groups.ini будет жить в репозитории, а если пользователь пересортирует по-своему, его структура запишется в maps/maps.ini
(0001350)
Tolik (manager)
22-03-2011 08:33
edited on: 22-03-2011 08:36

Если всё же выберем вариант с отдельными групповыми zmp, то _убедительно_прошу_ ссылки на родителя указывать не по GUID, а по имени файла.

muhosransk.zmp:
name=Мухосранск
ParentSubMenu=LocalNotFixed.grp

LocalNotFixed.grp:
name=Локальные непривязанные
ParentSubMenu=Local.grp

Local.grp:
name=Локальные
ParentSubMenu=

(0001351)
vdemidov (manager)
22-03-2011 11:00

Увы, мне с GUID-ами будет на порядок проще все это сделать. Так что или по гуидам, или вообще никак.
(0001352)
Garl (manager)
22-03-2011 11:06

никто не мешает сделать внешний редактор меню, который будет GUID представлять по человечески :)
(0001356)
feya (manager)
22-03-2011 12:37

если ссылаться на другие zmp то только по GUID, это без вариантов.
(0001357)
Tolik (manager)
22-03-2011 12:38

тогда без гуёв не обойтись

а может всё-таки ini?
(0001358)
Garl (manager)
22-03-2011 12:44

Tolik, не боись ГУИДов, в них сила.
а вот как описывать саму группу zmp файлом или в инишке - остаётся вопрос открытый.
(0001359)
vdemidov (manager)
22-03-2011 12:58

Ну что описывать группу отдельным файлом мы уже определились. Имхо делать фиктивный zmp смысла нимного, ибо общего у них будет только наличие GUID и названия.
(0001360)
Tolik (manager)
22-03-2011 15:33

Я что-то не понял последнюю фразу.
Описывать _одну_ группу отдельным файлом? Это не то же самое, что "фиктивный zmp"?

И ещё оч. интересует target version. При таком бурном обсуждении странно, что её нет.
(0001361)
vdemidov (manager)
22-03-2011 15:44

"фиктивный zmp" это зип файл или папка с кучей файлов. Имхо в данном случае ни то, ни другое нафиг не нужно. Так что это будет файл с каким-то другим расширением.
А target version нет, поскольку я пока не уверен как стоит это все реализовывать. В любом случае, не в ближайшем релизе.
(0001362)
Garl (manager)
22-03-2011 15:49

семь раз отмерь - один запрограммируй :)
(0001363)
feya (manager)
22-03-2011 19:47

Читаю читаю и толком не понимаю что в итоге будет) Аналог текущего maps.ini или для каждого подменю свой файл?
(0001365)
vdemidov (manager)
22-03-2011 20:26

А бог его знает что в итоге будет. Мне кажется для каждого подменю свой файл и groups.ini для пользовательских настроек. Или более сложный maps.ini. Или
(0001366)
Garl (manager)
23-03-2011 05:11

а давайте поОФФТОПим и вспомним программы где такое или примерно такое уже делалось.

мне кроме Нортон Коммандера и ДосНавигатора ничего больше не приходит на ум.
у первого всё в одном файле, у второго можно подменюшки хранить в разных файлах, но у них другая структура меню.
больше ничего не припомню.
(0001368)
feya (manager)
23-03-2011 08:38

а используя отдельные файлы для подменю как избавимся от pnum и сепараторов?
(0001369)
Garl (manager)
23-03-2011 09:04

чую vdemidov оставит сепараторы и pnum только для групп, а из zmp его ликвидируют.
(0003824)
vdemidov (manager)
09-09-2011 20:07

Скорее всего будет что-то такое:
1. Вложенность подменю будет скорее всего произвольная
2. Для каждого конкретного подменю можно будет задавать его тип (полноценное подменю, просто группа пунктов с заголовком в начале и разделителем в конце, просто группа пунктов ограниченная разделителями)
3. Внутри групп и подменю сортировка идет просто по алфавиту
Как это все задавать и что делать с переводами на другие языки я еще не придумал.
(0003866)
zOn (reporter)
12-09-2011 04:45

почему вы не хотите уйти от сортировки в zmp? почему не раскладывать их по папкам и подпапкам и так же отображать в САС?
видимо из-за проблем с обновлением?
можно ведь сложить всё 1 раз по папкам и создать (по требованию) индексный файл, а после этого уже до балды где лежит zmp - он будет в программе отображаться так, как для этого GUID записанно в индексе.
(0003868)
Tolik (manager)
12-09-2011 04:52

И имя подменю тогда будет совпадать с именем директории?
Но как быть с разными языками?
И как определять порядок пунктов меню? (только по алфавиту - плохо)
Так что без ini файла (файлов) не обойтись.
(0003869)
zOn (reporter)
12-09-2011 04:55

>Но как быть с разными языками?
поклонники инглиша и так не создают папок на русском.

вот с сортировкой еще не придумал. может всё же по pnum в самих zmp?
(0003872)
Tolik (manager)
12-09-2011 05:04

Вот именно, я всё называю по-английски или латиницей. Уж очень задолбала меня кириллица, всю жизнь от неё одни проблемы.
Но вы-то хотите видеть русские имена в меню?
По pnum неудобно: чтобы передвинуть подменю, приходится редактировать все zmp в нём.
(0003874)
zOn (reporter)
12-09-2011 05:05

>Но вы-то хотите видеть русские имена в меню?
да. и папки у меня по-русски. т.е. имя папки=пункт меню.
(0013012)
Garl (manager)
01-10-2013 10:14

Собственно реализована возможность многоуровневого меню

ParentSubMenu=пункт1\пункт2\пункт3\пункт4\... и т.д.

- Users who viewed this issue
User List Anonymous (2844x)
Total Views 2844
Last View 06-04-2020 01:46

- Issue History
Date Modified Username Field Change
20-03-2011 19:09 Tolik New Issue
20-03-2011 22:25 gpsMax Tag Attached: zmp
21-03-2011 09:28 Garl Note Added: 0001323
21-03-2011 14:42 feya Note Added: 0001326
21-03-2011 15:02 vdemidov Note Added: 0001327
21-03-2011 15:06 feya Note Added: 0001328
21-03-2011 15:16 vdemidov Note Added: 0001329
21-03-2011 15:31 vdemidov Note Added: 0001330
21-03-2011 16:46 Tolik Note Added: 0001331
21-03-2011 17:00 vdemidov Note Added: 0001332
21-03-2011 19:02 feya Note Added: 0001333
21-03-2011 19:31 Tolik Note Added: 0001335
21-03-2011 19:44 Tolik Note Added: 0001336
21-03-2011 19:51 Tolik Note Edited: 0001335 View Revisions
21-03-2011 19:53 Tolik Note Edited: 0001335 View Revisions
21-03-2011 20:33 vdemidov Note Added: 0001338
21-03-2011 21:07 Tolik Note Added: 0001339
21-03-2011 21:20 vdemidov Note Added: 0001340
22-03-2011 05:38 Garl Note Added: 0001341
22-03-2011 06:11 Tolik Note Added: 0001342
22-03-2011 06:56 feya Note Added: 0001343
22-03-2011 08:19 Garl Note Added: 0001346
22-03-2011 08:26 vdemidov Note Added: 0001347
22-03-2011 08:26 Tolik Note Added: 0001348
22-03-2011 08:28 Tolik Note Added: 0001349
22-03-2011 08:33 Tolik Note Added: 0001350
22-03-2011 08:34 Tolik Note Edited: 0001350 View Revisions
22-03-2011 08:36 Tolik Note Edited: 0001350 View Revisions
22-03-2011 11:00 vdemidov Note Added: 0001351
22-03-2011 11:06 Garl Note Added: 0001352
22-03-2011 12:37 feya Note Added: 0001356
22-03-2011 12:38 Tolik Note Added: 0001357
22-03-2011 12:44 Garl Note Added: 0001358
22-03-2011 12:58 vdemidov Note Added: 0001359
22-03-2011 15:33 Tolik Note Added: 0001360
22-03-2011 15:44 vdemidov Note Added: 0001361
22-03-2011 15:49 Garl Note Added: 0001362
22-03-2011 19:47 feya Note Added: 0001363
22-03-2011 20:26 vdemidov Note Added: 0001365
23-03-2011 05:11 Garl Note Added: 0001366
23-03-2011 08:38 feya Note Added: 0001368
23-03-2011 09:04 Garl Note Added: 0001369
13-04-2011 08:20 Tolik Status new => acknowledged
09-09-2011 20:07 vdemidov Note Added: 0003824
09-09-2011 20:07 vdemidov Status acknowledged => confirmed
09-09-2011 20:08 vdemidov Target Version => 22xxxx
12-09-2011 04:45 zOn Note Added: 0003866
12-09-2011 04:52 Tolik Note Added: 0003868
12-09-2011 04:55 zOn Note Added: 0003869
12-09-2011 05:04 Tolik Note Added: 0003872
12-09-2011 05:05 zOn Note Added: 0003874
01-10-2013 10:14 Garl Note Added: 0013012
01-10-2013 10:15 Garl Assigned To => Garl
01-10-2013 10:15 Garl Status confirmed => resolved
01-10-2013 10:15 Garl Resolution open => fixed
01-10-2013 10:15 Garl Product Version 110316.Alfa => 131111
01-10-2013 10:15 Garl Fixed in Version => 131111
01-10-2013 10:15 Garl Target Version 22xxxx => 131111
01-10-2013 10:23 vdemidov Product Version 131111 => 121010



Copyright © 2007 - 2020 SAS.Planet Team