public function testRegister()
 {
     $instance = new PropertyRegistry();
     $instance->register();
     $this->assertNotEmpty(DIProperty::findPropertyLabel(PropertyRegistry::SBL_PARENTPAGE));
     $this->assertSame(SBL_PROP_PARENTPAGE, DIProperty::findPropertyLabel(PropertyRegistry::SBL_PARENTPAGE));
 }
Пример #2
0
 private function addCallbackHandlers($store, $configuration)
 {
     $propertyRegistry = new PropertyRegistry();
     /**
      * @see https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/docs/technical/hooks.md
      */
     $this->handlers['SMW::Property::initProperties'] = function () use($propertyRegistry) {
         return $propertyRegistry->register();
     };
     /**
      * @see https://www.mediawiki.org/wiki/Manual:Hooks/SkinTemplateOutputPageBeforeExec
      */
     $this->handlers['SkinTemplateOutputPageBeforeExec'] = function (&$skin, &$template) use($store, $configuration) {
         $bySubpageLinksFinder = new BySubpageLinksFinder();
         $bySubpageLinksFinder->setSubpageDiscoverySupportState($configuration['useSubpageFinderFallback']);
         $byPropertyHierarchicalLinksFinder = new ByPropertyHierarchicalLinksFinder($store);
         $byPropertyHierarchicalLinksFinder->setFindClosestDescendantState($configuration['tryToFindClosestDescendant']);
         $byPropertyHierarchicalLinksFinder->setPropertySearchPatternByNamespace($configuration['propertySearchPatternByNamespace']);
         $htmlBreadcrumbLinksBuilder = new HtmlBreadcrumbLinksBuilder($byPropertyHierarchicalLinksFinder, $bySubpageLinksFinder);
         $htmlBreadcrumbLinksBuilder->setLinker(new DummyLinker());
         $htmlBreadcrumbLinksBuilder->setBreadcrumbTrailStyleClass($configuration['breadcrumbTrailStyleClass']);
         $htmlBreadcrumbLinksBuilder->setBreadcrumbDividerStyleClass($configuration['breadcrumbDividerStyleClass']);
         $skinTemplateOutputModifier = new SkinTemplateOutputModifier($htmlBreadcrumbLinksBuilder);
         $skinTemplateOutputModifier->modifyTemplate($template);
         $skinTemplateOutputModifier->modifyOutput($skin->getOutput());
         return true;
     };
     /**
      * @see https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay
      */
     $this->handlers['BeforePageDisplay'] = function (&$output, &$skin) use($configuration) {
         $pageDisplayOutputModifier = new PageDisplayOutputModifier();
         $pageDisplayOutputModifier->setHideSubpageParentState($configuration['hideSubpageParent']);
         $pageDisplayOutputModifier->setSubpageByNamespace($configuration['wgNamespacesWithSubpages']);
         $pageDisplayOutputModifier->modifyOutput($output);
         return true;
     };
 }