forum.bitel.ru
http://forum.bitel.ru/

messageType.specialEditor если их больше чем один?
http://forum.bitel.ru/viewtopic.php?f=49&t=13080
Страница 1 из 1

Автор:  Dog [ 24 окт 2018, 00:49 ]
Заголовок сообщения:  messageType.specialEditor если их больше чем один?

помогите разобраться в JSP
в файле /webapps/WEB-INF/jspf/user/message/process_message_edit.jsp
Код:
...
<%-- подготовка форм со специальными редакторами --%>
<c:forEach var="messageType" items="${config.typeMap.values()}">
   <c:if test="${messageType.specialEditor}">
      <html:form action="/user/message" styleId="${editorUiid}-${messageType.getClass().getName()}" styleClass="editorStopReload" style="display: none;">
           <input type="hidden" name="action" value="messageUpdate"/>
           <html:hidden property="processId"/>
           <html:hidden property="id"/>
     
         <c:set var="endpoint" value="user.process.message.editor.jsp"/>
         <%@ include file="/WEB-INF/jspf/plugin_include.jsp"%>   
      </html:form>
   </c:if>
</c:forEach>
...


т.е. если у MessageType стоит isSpecialEditor=true, то он загрузит форму сообщения из указанного в плагине партиала.
но если таких типов сообщений несколько, то получается такая штука - все специальные редакторы появляются одновременно:
Вложение:
2018-10-23_21-06-59.png
2018-10-23_21-06-59.png [ 9.52 КБ | Просмотров: 6714 ]


как зафильтровать не активные\не выбранные?

Автор:  Dog [ 24 окт 2018, 02:19 ]
Заголовок сообщения:  Re: messageType.specialEditor если их больше чем один?

Вложение:
2018-10-23_23-16-38.png
2018-10-23_23-16-38.png [ 71.76 КБ | Просмотров: 6712 ]


а вообще, каким образом оно туда влетает? что там делает партиал от phpbb модуля?

Автор:  Dog [ 24 окт 2018, 02:48 ]
Заголовок сообщения:  Re: messageType.specialEditor если их больше чем один?

разобрался, потому что plugin_include.jsp сам по себе грузит все партиалы всех плагинов на этом эндпоинте:

Код:
<c:set var="endpoint" value="user.process.message.editor.jsp"/>
<%@ include file="/WEB-INF/jspf/plugin_include.jsp"%>


Код:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="/WEB-INF/jspf/taglibs.jsp"%>

<c:forEach items="${ctxPluginManager.pluginList}" var="plugin">
   <c:set var="plugin" value="${plugin}" scope="request"/>
   
   <c:set var="page" value="${plugin.endpoints[endpoint]}"/>
   <c:if test="${not empty page}">
      <jsp:include page="${page}"/>
   </c:if>   
</c:forEach>


либо делать другой plugin_include.jsp либо задавать ендпоинт из конфига плагина

сделал через другой plugin_include_one.jsp
Код:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ include file="/WEB-INF/jspf/taglibs.jsp"%>

<c:set var="page" value="${plugin.endpoints[endpoint]}"/>
<c:if test="${not empty page}">
   <jsp:include page="${page}"/>
</c:if>



Код:
<%-- подготовка форм со специальными редакторами --%>
<c:forEach var="messageType" items="${config.typeMap.values()}">
   <c:if test="${messageType.specialEditor}">
      <html:form action="/user/message"
         styleId="${editorUiid}-${messageType.getClass().getName()}"
         styleClass="editorStopReload" style="color: red; display: none;">
         <input type="hidden" name="action" value="messageUpdate" />
         <html:hidden property="processId" />
         <html:hidden property="id" />

         <c:set var="plugin" value="${ctxPluginManager.pluginMap[messageType.pluginId]}" scope="request"/>
         <c:set var="endpoint" value="user.process.message.editor.jsp" />
         <%@ include file="/WEB-INF/jspf/plugin_include_one.jsp"%>
               
      </html:form>
   </c:if>
</c:forEach>

Автор:  Администратор [ 25 окт 2018, 02:56 ]
Заголовок сообщения:  Re: messageType.specialEditor если их больше чем один?

Цитата:
либо делать другой plugin_include.jsp либо задавать ендпоинт из конфига плагина

В плагин вынести было бы удобнее.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/