Опубликовано: 9 июня 20187 г Пытаюсь сделать пользовательский виджет для приложения Membemap 3.5.0, чтобы в боковой столбик главной страницы сайта выводить карту с маркерами без всяких кнопок и т.п. В самом приложении шаблон вывода карты такой: {{if request.do != 'embed'}} {{if request.clubId > 0 AND $club instanceof \IPS\Member\Club }} {{if settings.clubs and settings.clubs_header == 'full'}} {template="header" app="core" group="clubs" params="$club, \IPS\membermap\Markers\Groups::load( \IPS\membermap\Map::i()->getMemberGroupId() )"} {{endif}} {{endif}} <div class="ipsPageHeader ipsClearfix"> <header class='ipsSpacer_bottom'> <h1 class="ipsType_pageTitle">{lang="frontnavigation_membermap"}</h1> <div class='ipsPos_right ipsResponsive_noFloat'> <ul class="ipsToolList ipsToolList_horizontal ipsClearfix"> {{if $canAdd OR $canEdit}} <li id='membermap_addLocation_wrapper' class='ipsToolList_primaryAction'> <a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" href="#" title='' id="membermap_button_addLocation">{lang="membermap_button_addLocation"}</a> </li> <li id='membermap_myLocation_wrapper' class='ipsToolList_primaryAction' style='display:none;'> <a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" data-ipsmenu href='#elMyLocationMenu' id='elMyLocationMenu' title=''> {lang="membermap_button_myLocation"} <i class='fa fa-caret-down'></i> </a> <div id='elMyLocationMenu_menu' class='ipsMenu ipsMenu_auto ipsHide'> <ul> <li class="ipsMenu_item" id="membermap_button_editLocation"> <a href="#">{lang="membermap_button_editLocation"}</a> </li> <li class='ipsMenu_sep'><hr></li> <li class="ipsMenu_item" id="elMyLocationMenuGoHome"> <a href="{url='app=membermap&module=membermap&controller=showmap&goHome=1' seoTemplate='membermap'}">{lang="membermap_goHome"}</a> </li> </ul> </div> </li> {{endif}} <li> {{$unapproved = \iPS\membermap\Markers\Groups::getTotalUnapprovedCount();}} <a href="{url='app=membermap&module=markers&controller=groups' seoTemplate='markers'}" title='{lang="membermap_browse_markers"}' class='ipsButton ipsButton_medium ipsButton_fullWidth ipsButton_link'> <i class="icon-newspaper"></i> {lang="membermap_browse_markers"} {{if $unapproved > 0}} <strong class='ipsType_warning ipsType_medium'><i class='fa fa-warning'></i> {$unapproved}</strong>{{endif}} </a> </li> {{if \IPS\Member::loggedIn()->isAdmin()}} <li class='ipsToolList_primaryAction ipsResponsive_hidePhone'> <a href='#elToolsMenu' id='elToolsMenu' data-ipsmenu class='ipsButton ipsButton_normal ipsButton_link'> {lang="membermap_adminTools"} <i class='fa fa-caret-down'></i> </a> <div id='elToolsMenu_menu' class='ipsMenu ipsMenu_auto ipsHide'> <ul> <li class="ipsMenu_item" id='elToolsMenuBrowserCache'> <a href="{url='app=membermap&module=membermap&controller=showmap&dropBrowserCache=1' seoTemplate='membermap'}">{lang="membermap_rebuildBrowserCache"} <time></time></a> </li> <li class="ipsMenu_item" > <a href="{url='app=membermap&module=membermap&controller=showmap&rebuildCache=1' seoTemplate='membermap'}" data-action='ipsMenu_ping'> {{if $cacheTime > 0}} {lang="membermap_rebuildServerCache" htmlsprintf="\IPS\DateTime::ts( $cacheTime )->html( true, true )"} {{else}} {lang="membermap_rebuildServerCache_notSet"} {{endif}} </a> </li> </ul> </div> </li> {{endif}} </ul> </div> </header> </div> {{endif}} <section> <div id='membermapWrapper'> <div id="mapWrapper" class='ipsLayout_content clearfix'> <div id='mapCanvas'></div> </div> </div> <div class='ipsPad_top' id="membermap_counter"> <p>{lang="membermap_showing_markers"}</p> </div> </section> <div id='mapMarkers' class='ipsHide' data-markers='{expression="json_encode( $markers )"}'></div> Что нужно взять из этого шаблона для того, чтобы виджет заработал? Как изменить код? Для создания виджета используя плагин Advanced Custom Widgets 1.0.2, в котором поле вставки кода может быть в режиме TXT и HTML. Изменено 9 июня 20187 г пользователем Zero108
Опубликовано: 9 июня 20187 г Для создания виджета используя плагин Advanced Custom Widgets 1.0.2, в котором поле вставки кода может быть в режиме TXT и HTML. Что нужно взять из этого шаблона для того, чтобы виджет заработал?По сути <section> <div id='membermapWrapper'> <div id="mapWrapper" class='ipsLayout_content clearfix'> <div id='mapCanvas'></div> </div> </div> <div class='ipsPad_top' id="membermap_counter"> <p>{lang="membermap_showing_markers"}</p> </div> </section> <div id='mapMarkers' class='ipsHide' data-markers='{expression="json_encode( $markers )"}'></div>Можете вообще использовать iframe с адресом https://www.a108.net/holy_places/?do=embed, чтобы подключались все нужные js-скрипты
Опубликовано: 9 июня 20187 г Автор Спасибо за ответ. Я не совсем понимаю, что делать. Я вставил выделенный код как html. Он не заработал. Iframe попробовал - добавляется полоса прокрутки и border. Посмотрю, можно ли побороть с помощью css. Дивом вставить по простому нельзя? Нужно смотреть, каких js не хватает? Изменено 9 июня 20187 г пользователем Zero108
Опубликовано: 9 июня 20187 г Автор С ифреймом много возни с css: не получается убрать рамку у ифрейма (border) и отступ сверху.
Опубликовано: 9 июня 20187 г Автор А как в виджете выше добавить заголовок такого вида, чтобы он работал? <h3 class="ipsWidget_title ipsType_reset">{lang="frontnavigation_membermap"}</h3> Простой вставкой в HTML редакторе не работает. Изменено 9 июня 20187 г пользователем Zero108
Опубликовано: 10 июня 20187 г Простой вставкой в HTML редакторе не работает.Значит не поддерживается / не обрабатываются подобные теги.
Опубликовано: 10 июня 20187 г Автор Через Pages - Блоки научился делать. Будут ковырять css. Изменено 10 июня 20187 г пользователем Zero108
Опубликовано: 10 июня 20187 г А есть ли какой-то способ вывести языковую строку в виджете? Например, какой-то php скрипт или набор команд, которые будут обрабатываться в html режиме редактора?Только просить автора. Но я так и не понял, как кастомные блоки, созданные в Pages, можно применять в качестве виджетов. В списке виджетов выбираете "Custom Blocks (Select one of the custom blocks you have created)" и добавляете, например, в сайдбар.В конфигурации выбираете из выпадающего списка созданный блок.
Пытаюсь сделать пользовательский виджет для приложения Membemap 3.5.0, чтобы в боковой столбик главной страницы сайта выводить карту с маркерами без всяких кнопок и т.п. В самом приложении шаблон вывода карты такой:
{{if request.do != 'embed'}} {{if request.clubId > 0 AND $club instanceof \IPS\Member\Club }} {{if settings.clubs and settings.clubs_header == 'full'}} {template="header" app="core" group="clubs" params="$club, \IPS\membermap\Markers\Groups::load( \IPS\membermap\Map::i()->getMemberGroupId() )"} {{endif}} {{endif}} <div class="ipsPageHeader ipsClearfix"> <header class='ipsSpacer_bottom'> <h1 class="ipsType_pageTitle">{lang="frontnavigation_membermap"}</h1> <div class='ipsPos_right ipsResponsive_noFloat'> <ul class="ipsToolList ipsToolList_horizontal ipsClearfix"> {{if $canAdd OR $canEdit}} <li id='membermap_addLocation_wrapper' class='ipsToolList_primaryAction'> <a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" href="#" title='' id="membermap_button_addLocation">{lang="membermap_button_addLocation"}</a> </li> <li id='membermap_myLocation_wrapper' class='ipsToolList_primaryAction' style='display:none;'> <a class="ipsButton ipsButton_medium ipsButton_important ipsButton_fullWidth" data-ipsmenu href='#elMyLocationMenu' id='elMyLocationMenu' title=''> {lang="membermap_button_myLocation"} <i class='fa fa-caret-down'></i> </a> <div id='elMyLocationMenu_menu' class='ipsMenu ipsMenu_auto ipsHide'> <ul> <li class="ipsMenu_item" id="membermap_button_editLocation"> <a href="#">{lang="membermap_button_editLocation"}</a> </li> <li class='ipsMenu_sep'><hr></li> <li class="ipsMenu_item" id="elMyLocationMenuGoHome"> <a href="{url='app=membermap&module=membermap&controller=showmap&goHome=1' seoTemplate='membermap'}">{lang="membermap_goHome"}</a> </li> </ul> </div> </li> {{endif}} <li> {{$unapproved = \iPS\membermap\Markers\Groups::getTotalUnapprovedCount();}} <a href="{url='app=membermap&module=markers&controller=groups' seoTemplate='markers'}" title='{lang="membermap_browse_markers"}' class='ipsButton ipsButton_medium ipsButton_fullWidth ipsButton_link'> <i class="icon-newspaper"></i> {lang="membermap_browse_markers"} {{if $unapproved > 0}} <strong class='ipsType_warning ipsType_medium'><i class='fa fa-warning'></i> {$unapproved}</strong>{{endif}} </a> </li> {{if \IPS\Member::loggedIn()->isAdmin()}} <li class='ipsToolList_primaryAction ipsResponsive_hidePhone'> <a href='#elToolsMenu' id='elToolsMenu' data-ipsmenu class='ipsButton ipsButton_normal ipsButton_link'> {lang="membermap_adminTools"} <i class='fa fa-caret-down'></i> </a> <div id='elToolsMenu_menu' class='ipsMenu ipsMenu_auto ipsHide'> <ul> <li class="ipsMenu_item" id='elToolsMenuBrowserCache'> <a href="{url='app=membermap&module=membermap&controller=showmap&dropBrowserCache=1' seoTemplate='membermap'}">{lang="membermap_rebuildBrowserCache"} <time></time></a> </li> <li class="ipsMenu_item" > <a href="{url='app=membermap&module=membermap&controller=showmap&rebuildCache=1' seoTemplate='membermap'}" data-action='ipsMenu_ping'> {{if $cacheTime > 0}} {lang="membermap_rebuildServerCache" htmlsprintf="\IPS\DateTime::ts( $cacheTime )->html( true, true )"} {{else}} {lang="membermap_rebuildServerCache_notSet"} {{endif}} </a> </li> </ul> </div> </li> {{endif}} </ul> </div> </header> </div> {{endif}} <section> <div id='membermapWrapper'> <div id="mapWrapper" class='ipsLayout_content clearfix'> <div id='mapCanvas'></div> </div> </div> <div class='ipsPad_top' id="membermap_counter"> <p>{lang="membermap_showing_markers"}</p> </div> </section> <div id='mapMarkers' class='ipsHide' data-markers='{expression="json_encode( $markers )"}'></div>Что нужно взять из этого шаблона для того, чтобы виджет заработал? Как изменить код?
Для создания виджета используя плагин Advanced Custom Widgets 1.0.2, в котором поле вставки кода может быть в режиме TXT и HTML.
Изменено пользователем Zero108