PHP code example of flowpack / decoupledcontentstore
1. Go to this page and download the library: Download flowpack/decoupledcontentstore library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
flowpack / decoupledcontentstore example snippets
class Package extends BasePackage
{
public function boot(Bootstrap $bootstrap)
{
$dispatcher = $bootstrap->getSignalSlotDispatcher();
$dispatcher->connect(NodeEnumerator::class, 'nodeEnumerated', MyNodeListsEnumerator::class, 'enumerateNodeLists');
}
}
class NodeListsEnumerator
{
public function enumerateNodeLists(EnumeratedNode $enumeratedNode, ContentReleaseIdentifier $releaseIdentifier, ContentReleaseLogger $logger)
{
$nodeTypeName = $enumeratedNode->getNodeTypeName();
$nodeType = $this->nodeTypeManager->getNodeType($nodeTypeName);
if ($nodeType->isOfType('Vendor.Site:Document.Blog.Folder')) {
// Get the node and count the number of pages to render
// $pageCount = ...
$pageCount = ceil($postCount / (float)$this->perPage);
if ($pageCount <= 1) {
return;
}
// Start after the first page, because the first page will be the document without arguments
for ($page = 2; $page <= $pageCount; $page++) {
$enumeratedNodes[] = EnumeratedNode::fromNode($documentNode, ['page' => $page]);
}
$this->redisEnumerationRepository->addDocumentNodesToEnumeration($releaseIdentifier, ...$enumeratedNodes);
}
}
}