как расширить фасетный поиск, передав дополнительный аргумент URL в alfresco 5.1.1

#alfresco-share #aikau

#alfresco-поделиться #aikau

Вопрос:

Мы хотим настроить фасетный поиск, передав дополнительный аргумент в URL-адрес фасетного поиска и прочитав его в orgalfrescoslingshotsearchsearch.get.js —->search.lib.js .

http://localhost:8080/share/page/dp/ws/faceted-search#searchTerm=Koala.jpgamp;scope=repoamp;nodeRef=test

В searchDocLib json мы присвоили значение nodeRef для selectedContainer, но этот аргумент не поступает search.get.js . В принципе, как передать дополнительный аргумент в searchDocLib?Как включить журналы для faceted-search.get.js так что инструкции регистратора должны быть напечатаны в share.log?

var noderef = (page.url.args[«nodeRef»] != null) ? page.url.args[«nodeRef»]: «»;

logger.log(page.url.templateArgs.nodeRef «….nodeRef = » nodeRef);

 // Build the searchDocLib model 
var searchDocLib = { 
id: "FCTSRCH_SEARCH_RESULTS_LIST", 
name: "alfresco/documentlibrary/AlfSearchList", 
config: { 
  viewPreferenceProperty: "org.alfresco.share.searchList.viewRendererName", 
  view: viewRendererName, 
  waitForPageWidgets: true, 
  useHash: true, 
  useLocalStorageHashFallback: true, 
  hashVarsForUpdate: [ 
    "searchTerm", 
    "facetFilters", 
    "sortField", 
    "sortAscending", 
    "query", 
    "scope", 
    "selectedContainer" 
  ], 
  selectedScope: "repo", 
  useInfiniteScroll: true, 
  siteId: null, 
  rootNode: repoRootNode, 
  repo: false, 
  selectedContainer: noderef, 
  additionalControlsTarget: "FCTSRCH_RESULTS_MENU_BAR", 
  additionalViewControlVisibilityConfig: hideOnZeroResultsConfig, 
  widgets: [ 
  { 
    id: "FCTSRCH_SEARCH_ADVICE_NO_RESULTS", 
    name: "alfresco/documentlibrary/views/AlfSearchListView", 
    config: { 
      widgetsForNoDataDisplay: widgetsForNoDataDisplay, 
      a11yCaption: msg.get("faceted-search.results.caption"), 
      a11yCaptionClass: "hiddenAccessible", 
      widgetsForHeader: [ 
        { 
          id: "FCTSRCH_THUMBNAIL_HEADER_CELL", 
          name: "alfresco/documentlibrary/views/layouts/HeaderCell", 
          config: { 
            label: msg.get("faceted-search.results.heading.thumbnail"), 
            class: "hiddenAccessible", 
            a11yScope: "col" 
          } 
        }, 
        { 
          id: "FCTSRCH_DETAILS_HEADER_CELL", 
          name: "alfresco/documentlibrary/views/layouts/HeaderCell", 
          config: { 
            label: msg.get("faceted-search.results.heading.details"), 
            class: "hiddenAccessible", 
            a11yScope: "col" 
          } 
        }, 
        {
          id: "FCTSRCH_ACTIONS_HEADER_CELL", 
          name: "alfresco/documentlibrary/views/layouts/HeaderCell", 
          config: { 
            label: msg.get("faceted-search.results.heading.actions"), 
            class: "hiddenAccessible", 
            a11yScope: "col" 
          } 
        } 
      ], 
      widgets: [ 
        { 
          id: "FCTSRCH_SEARCH_RESULT", 
          name: "alfresco/search/AlfSearchResult", 
          config: { 
            enableContextMenu: false 
          } 
        } 
      ] 
    } 
    }, 
    { 
      id: "FCTSRCH_GALLERY_VIEW", 
      name: "alfresco/documentlibrary/views/AlfGalleryView", 
      config: { 
        showNextLink: true, 
        nextLinkLabel: msg.get("faceted-search.show-more-results.label"), 
        widgetsForNoDataDisplay: widgetsForNoDataDisplay, 
        widgets: [ 
          { 
            id: "FCTSRCH_GALLERY_VIEW_THUMBNAIL_DOC_OR_FOLDER", 
            name: "alfresco/search/SearchGalleryThumbnail", 
            config: { 
              widgetsForSelectBar: [ 
                { 
                  id: "FCTSRCH_GALLERY_VIEW_MORE_INFO_OR_FOLDER", 
                  name: "alfresco/renderers/MoreInfo", 
                  align: "right", 
                  config: { 
                    filterActions: true, 
                    xhrRequired: true
                  } 
                } 
              ], 
              publishTopic: "ALF_NAVIGATE_TO_PAGE", 
              renderFilter: [ 
                { 
                  property: "type", 
                  values: ["document","folder"], 
                  negate: false 
                } 
              ] 
            } 
          }, 
          { 
            id: "FCTSRCH_GALLERY_VIEW_THUMBNAIL_OTHER", 
            name: "alfresco/search/SearchGalleryThumbnail", 
            config: { 
              widgetsForSelectBar: [ 
                { 
                  id: "FCTSRCH_GALLERY_VIEW_MORE_INFO_OTHER", 
                  name: "alfresco/renderers/MoreInfo", 
                  align: "right", 
                  config: { 
                    filterActions: true, 
                    allowedActionsString: "["document-delete"]", 
                    xhrRequired: true 
                  } 
                } 
              ], 
              publishTopic: "ALF_NAVIGATE_TO_PAGE", 
              renderFilter: [ 
                { 
                  property: "type", 
                  values: ["document","folder"], 
                  negate: true 
                } 
              ] 
            } 
          } 
        ] 
      } 
    }, 
    { 
      id: "FCTSRCH_INFINITE_SCROLL", 
      name: "alfresco/documentlibrary/AlfDocumentListInfiniteScroll" 
    } 
  ] 
} 
};
  

Ответ №1:

Я написал сообщение в блоге, посвященное настройке страницы поиска. Хотя это не совсем тот же вариант использования, принцип остается тем же — вы захотите создать свой собственный SearchService (расширяющий стандартный), а затем поменять свой на стандартный в модели страницы фасетного поиска. Вы захотите расширить onSearchRequest функцию, чтобы включить дополнительный параметр запроса.