View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000503 | SAS.Планета | Хотелка / Feature request | public | 20-03-2011 19:09 | 01-10-2013 10:24 |
| Reporter | Tolik | Assigned To | Garl | ||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | resolved | Resolution | fixed | ||
| Product Version | 121010 | ||||
| Target Version | 131111 | Fixed in Version | 131111 | ||
| Summary | 0000503: Добавить меню карт второго уровня | ||||
| Description | Т.к. карт становится всё больше с каждым днём, назрела необходимость группировать их в 2-уровневое меню. Например, Карты - Локальные - ДубльГис. Параметры можно назвать, например, так: ParentSubMenu=Локальные ParentSubSubMenu=ДубльГис | ||||
| Tags | zmp | ||||
|
|
как вариант можно использовать пустой zmp для обозначения группы меню, тогда можно будет не только ссылаться на родителя но и делать много многоуровнево вложенные менюшки. |
|
|
Такого - ParentSubSubMenu мне кажется лучше не делать, если уж делать то нормальные многоуровневые с делителем через слеш. |
|
|
А мне понравилась идея делать подменю при помощи ссылки на родительский zmp. Тогда появится возможность относительно легко переименовывать и локализировать подменю. |
|
|
>А мне понравилась идея делать подменю при помощи ссылки на родительский zmp Это как? |
|
|
Ну делается например файлик с расширением zmpgrp или любым на наш выбор. В нем прописывается его GUID, родительский GUID и название в том числе и локализации. Еще можно добавить параметр описывающий, что делать именно подменю или просто сгруппировать вместе и отделить от остальных разделителями |
|
|
Если добавить к этому возможность перекрыть этот файлик лежащим на уровень выше в структуре папок, то вообще гибкая структура выйдет. |
|
|
Ок, ParentSubSubMenu - не оч. хор. идея. Предлагаю ещё одну. Требования: 1. Не переписывать _все_ существующие zmp 2. Не плодить слишком много новых файлов 3. Не использовать GUID для описания иерархии, а пользоваться читабельными человеческими идентификаторами. Поэтому создаём один файл, например, maps\sas.maps\groups.ini и прописываем в нём всю структуру меню, как-то так: [Main] Локальные карты Исторические [Локальные карты] ДубльГис UMAP [Исторические] Московская область Уральский ФО 2gis.khabarovsk.zmp не переписываем, в нём ParentSubMenu=ДубльГис, попадает в меню Локальные карты - ДубльГис. Также добавить разделы для разных языков. |
|
|
И как предлагаете потом эти groups.ini из разных репозиториев между собой объединять? |
|
|
vdemidov, идея с отдельными файлами интересная, но соглашусь с Tolik'о - плодить лишние файлы в zmp не есть гуд. Предложеный мной вариант со слешами имеет только один недостаток - приходится во всех zmp хранить название пути подменю и соответственно их переводы, но это уже опробовано временем и вроде особо никого не напрягало. Еще плюс - это самый простой и безболезненный вариант) |
|
|
> И как предлагаете потом эти groups.ini из разных репозиториев между собой объединять? Например, так: В sas.maps\groups.ini [Main] menu1 menu2 В plus.maps\groups.ini [Main] menu1 menu3 После парсинга и объединения должно получиться [Main] menu1 menu2 menu3 (я надеюсь, это не сложно реализовать) |
|
|
feya, а что со слешами? Так, что ли? ParentSubMenu=Локальные/ДубльГис Да тоже неплохо. Во всяком случае понятно и никакой путаницы. Только zmp придётся исправить и обратной совместимости не будет. Ну и ладно. Кстати, pnum ещё напрягает, как-то он непредсказуемо действует на все эти группы... Один неправильный pnum портит всю картину. Надо ещё как-то определять положение группы в подменю. Тут groups.ini таки имеет преимущество :) |
|
|
Лично мне очень хочется убрать из zmp локализованное название подменю, разделитель и pnum. |
|
|
Да, и разделители тоже вечно появляются где попало. Ну и как это сделать, все настройки внешнего вида перенести в .ini? |
|
|
Ну да. Если выделить инфу о группировке zmp в отдельные ini, то от разделителей можно избавиться введя группы без выделения в подменю. |
|
|
прошу учесть что некоторые имеют привычку сносить .ini файлы, поэтому информацию о группах хранить в ini файле - не сильно айс. >Лично мне очень хочется убрать из zmp локализованное название подменю, разделитель и pnum. согласен. |
|
|
Я и сам их часто тру :) Но это не проблема: они ж будут в репозиториях. |
|
|
к чему же в итоге придем? В принципе хранение отображения zmp в меню согласен перенести в отдельный файл, но не вариант если их будет несколько ибо это вызовет путаницу еще поболе чем сейчас. |
|
|
озвучу универсальный подход как я его вижу Имеем ZMP "Локальные карты" (допустим в основном репозитории) {889E44B1-413F-49D9-B5C7-3E20851B5C40} ZMP с группой Допустим "локальные непривязанные карты" GUID {B67EF627-B412-4AE0-80FE-A50300AFECAA} указываем что у него родитель "Локальные карты" {889E44B1-413F-49D9-B5C7-3E20851B5C40} имеем скрипт карты в котором указываем родителя {B67EF627-B412-4AE0-80FE-A50300AFECAA} карта города мухосранска в идеале если у нас присутствуют в одной папке файлы слитые из двух репозиториев то у нас получится "Локальные карты"->"локальные непривязанные карты"->"карта города мухосранска " если же у нас слит только плюсовый репозиторий то врехнегородителя не будет, будет только "локальные непривязанные карты"->"карта города мухосранска " в чём плюс: +не подвязаны под конфиги, +чётко видно кто кому подчинён, +отсутствие какого либо родителя не влияет на работоспособность. минусы: pnum, всётаки его придется использовать для сортировки, можето только у групп, но всётаки. |
|
|
Ну несколько их будет по любому. Во-первых нужно что бы каждый репозиторий мог более менее независимо задать структуру. Плюс нужно что бы пользователь мог ее перекрыть не исправляя файлы входящие в репозиторий. Так что инфа из них должна будет собираться или в maps.ini или в глобальный groups.ini |
|
|
> не вариант если их будет несколько ибо это вызовет путаницу еще поболе чем сейчас. Тогда пусть будет один: maps\sas.maps\groups.ini Если карты какой-то группы существуют только в плюсовом репозитории, группу под них всё равно пропишем в основном. А отображать пустую группу в меню не надо (если плюсовой не подгружен). |
|
|
maps\sas.maps\groups.ini будет жить в репозитории, а если пользователь пересортирует по-своему, его структура запишется в maps/maps.ini |
|
|
Если всё же выберем вариант с отдельными групповыми zmp, то _убедительно_прошу_ ссылки на родителя указывать не по GUID, а по имени файла. muhosransk.zmp: name=Мухосранск ParentSubMenu=LocalNotFixed.grp LocalNotFixed.grp: name=Локальные непривязанные ParentSubMenu=Local.grp Local.grp: name=Локальные ParentSubMenu= |
|
|
Увы, мне с GUID-ами будет на порядок проще все это сделать. Так что или по гуидам, или вообще никак. |
|
|
никто не мешает сделать внешний редактор меню, который будет GUID представлять по человечески :) |
|
|
если ссылаться на другие zmp то только по GUID, это без вариантов. |
|
|
тогда без гуёв не обойтись а может всё-таки ini? |
|
|
Tolik, не боись ГУИДов, в них сила. а вот как описывать саму группу zmp файлом или в инишке - остаётся вопрос открытый. |
|
|
Ну что описывать группу отдельным файлом мы уже определились. Имхо делать фиктивный zmp смысла нимного, ибо общего у них будет только наличие GUID и названия. |
|
|
Я что-то не понял последнюю фразу. Описывать _одну_ группу отдельным файлом? Это не то же самое, что "фиктивный zmp"? И ещё оч. интересует target version. При таком бурном обсуждении странно, что её нет. |
|
|
"фиктивный zmp" это зип файл или папка с кучей файлов. Имхо в данном случае ни то, ни другое нафиг не нужно. Так что это будет файл с каким-то другим расширением. А target version нет, поскольку я пока не уверен как стоит это все реализовывать. В любом случае, не в ближайшем релизе. |
|
|
семь раз отмерь - один запрограммируй :) |
|
|
Читаю читаю и толком не понимаю что в итоге будет) Аналог текущего maps.ini или для каждого подменю свой файл? |
|
|
А бог его знает что в итоге будет. Мне кажется для каждого подменю свой файл и groups.ini для пользовательских настроек. Или более сложный maps.ini. Или |
|
|
а давайте поОФФТОПим и вспомним программы где такое или примерно такое уже делалось. мне кроме Нортон Коммандера и ДосНавигатора ничего больше не приходит на ум. у первого всё в одном файле, у второго можно подменюшки хранить в разных файлах, но у них другая структура меню. больше ничего не припомню. |
|
|
а используя отдельные файлы для подменю как избавимся от pnum и сепараторов? |
|
|
чую vdemidov оставит сепараторы и pnum только для групп, а из zmp его ликвидируют. |
|
|
Скорее всего будет что-то такое: 1. Вложенность подменю будет скорее всего произвольная 2. Для каждого конкретного подменю можно будет задавать его тип (полноценное подменю, просто группа пунктов с заголовком в начале и разделителем в конце, просто группа пунктов ограниченная разделителями) 3. Внутри групп и подменю сортировка идет просто по алфавиту Как это все задавать и что делать с переводами на другие языки я еще не придумал. |
|
|
почему вы не хотите уйти от сортировки в zmp? почему не раскладывать их по папкам и подпапкам и так же отображать в САС? видимо из-за проблем с обновлением? можно ведь сложить всё 1 раз по папкам и создать (по требованию) индексный файл, а после этого уже до балды где лежит zmp - он будет в программе отображаться так, как для этого GUID записанно в индексе. |
|
|
И имя подменю тогда будет совпадать с именем директории? Но как быть с разными языками? И как определять порядок пунктов меню? (только по алфавиту - плохо) Так что без ini файла (файлов) не обойтись. |
|
|
>Но как быть с разными языками? поклонники инглиша и так не создают папок на русском. вот с сортировкой еще не придумал. может всё же по pnum в самих zmp? |
|
|
Вот именно, я всё называю по-английски или латиницей. Уж очень задолбала меня кириллица, всю жизнь от неё одни проблемы. Но вы-то хотите видеть русские имена в меню? По pnum неудобно: чтобы передвинуть подменю, приходится редактировать все zmp в нём. |
|
|
>Но вы-то хотите видеть русские имена в меню? да. и папки у меня по-русски. т.е. имя папки=пункт меню. |
|
|
Собственно реализована возможность многоуровневого меню ParentSubMenu=пункт1\пункт2\пункт3\пункт4\... и т.д. |
| 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 | |
| 21-03-2011 19:53 | Tolik | Note Edited: 0001335 | |
| 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 | |
| 22-03-2011 08:36 | Tolik | Note Edited: 0001350 | |
| 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 | => 41xxxx |
| 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 | 41xxxx => 131111 |
| 01-10-2013 10:23 | vdemidov | Product Version | 131111 => 121010 |
| 08-08-2025 13:24 | zed | Category | Хотелка => Хотелка / Feature request |