修改 Alfresco Community 5 中的实时搜索。0.d

Modify live search in Alfresco Commmunity 5.0.d

我正在使用 Alfresco Community 5。0.d 并尝试查找与实时搜索相关的文件。

我想删除或修改实时搜索中的人员查找器。请让我知道文件或实现方式。

Share-header.get.js 信息如下:

if (!user.isAdmin)
{
  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_MY_FILES");
  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_SHARED_FILES");

  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_SITES_MENU");
  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_PEOPLE");

  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_REPOSITORY");
  widgetUtils.deleteObjectFromArray(model.jsonModel, "id", "HEADER_BECPG");
}

//Disable people search 
var headerSearch = widgetUtils.findObject(model.jsonModel, "id", "HEADER_SEARCH");
if (headerSearch)
{ 
  headerSearch.config.showPeopleResults = false;       
  headerSearch.config.placeholder="Search files, sites";      
}

下面是extensions.xml

<extension>
    <modules>
        <module>
            <id>Update Site Header</id>
            <version>1.0</version>

真 org.alfresco.share.header com.site-header share-header

正如我在下面添加的那样,现在我可以看到我的文件、共享文件和其他菜单项正在为用户(非管理员)删除,但搜索框中没有变化。

图片来源:Muralidharan

<auto-deploy>true</auto-deploy>
<evaluator type="default.extensibility.evaluator"/>

html 搜索框结构的屏幕截图。

下面是modules/deploy的截图:

调试模式截图:

提前致谢

我们排除了使用以下脚本的人员搜索。

//Disable people search 
var headerSearch = widgetUtils.findObject(model.jsonModel, "id", "HEADER_SEARCH");
if (headerSearch)
{ 
  headerSearch.config.showPeopleResults = false;       
  headerSearch.config.placeholder="Search files, sites";      
}

我们将这个文件放在以下路径中。 C:\Alfresco5\tomcat\webapps\share\WEB-INF\classes\alfresco\web-extension\site-webscripts\com\quanticate\header\share-header.get.js

使用模块扩展在 Share 中应用您的自定义并将此文件存储到 alfresco\web-extension\site-data\extensions\extensions。xml

<extension>
  <modules>
    <module>
      <id>Menu customisation</id>
      <auto-deploy>true</auto-deploy>
      <evaluator type="default.extensibility.evaluator"/>
       <!-- default.extensibility.evaluator is applied to determine if the module should be executed -->
      <customizations>        
         <customization>
            <targetPackageRoot>org.alfresco</targetPackageRoot>
            <sourcePackageRoot>com.quanticate.header</sourcePackageRoot> <!-- Your package path should go here -->
            <alwaysApply>
               <webscript>share-header</webscript>
            </alwaysApply>
         </customization>
      </customizations>
    </module>
  </modules>
</extension>

您必须覆盖包含网络脚本响应的文件。搜索具有渲染输出和 over-ride 的 Freemarker 模板文件。

我在下方关注 link,效果非常好。

https://community.alfresco.com/message/806438-re-not-able-to-disable-suggestion-in-alfresco?commentID=806438&et=watches.email.thread#comment-806438

总结: 覆盖 live-search-people.get.json.ftl 文件以不产生任何实时搜索结果。

步骤:

  1. 提取alfresco-remote-api-5.0.d (/Applications/alfresco-5.0.d/tomcat/webapps/alfresco/WEB-INF/lib)
  2. 转到 /Applications/alfresco-5.0.d/tomcat/webapps/alfresco/WEB-INF/lib/alfresco-remote-api-5.0.d/alfresco/templates/webscripts/org/alfresco/slingshot/search 并复制 live-search-people.get.json.ftl
  3. 然后转到Applications/alfresco-5.0.d/tomcat/shared/classes/alfresco/extension/templates/webscripts/org/alfresco/slingshot/search(如果不存在则创建新目录)并粘贴之前复制的文件
  4. 在像 sublime text 一样的编辑器中打开该文件并替换为以下代码。

    <#import "../../repository/person/person.lib.ftl" as personLib/>

    <#escape x as jsonUtils.encodeJSONString(x)> { "totalRecords": 0, "startIndex": 0, "items": [ ] }

  5. 重新启动 tomcat 并测试实时搜索。

感谢 Angel 和 Alex 的回答和澄清。

有趣的发现我正在使用 Aikau 1.0.8 因为 Muralidharan 推荐的更改不起作用(旧版本)所以现在当我移动到 Aikau 的新版本 (1.0.101) 时这些更改是好的去。

谢谢 Muralidharan!

/****注意****/

如果您使用的是旧版本的 Aikau(如 1.0.8),则必须重写扩展名 要么 如果您使用较新版本的 Aikau(如 1.0.101),您可以直接进行更改。