PHP code example of icybee / module-pages
1. Go to this page and download the library: Download icybee/module-pages 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/ */
icybee / module-pages example snippets
$query = $app->models['pages']
->select('nid, parent_id, slug, pattern')
->filter_by_site_id($site_id = 1)
->ordered;
$blueprint = Blueprint::from($query);
$blueprint = $app->models['pages']->blueprint($site_id = 1);
$subset = $app->models['pages']->blueprint($site_id = 1)->subset(123);
$subset = $app->models['pages']->blueprint($site_id = 1)->subset(null, 2);
use Icybee\Modules\Pages\BlueprintNode;
$subset = $app->models['pages']
->blueprint($site_id = 1)
->subset(null, null, function(BlueprintNode $node) {
return !$node->is_online;
});
/* or
->subset(function(BlueprintNode $node) {
return !$node->is_online;
}); */
$blueprint->populate();
foreach ($blueprint as $node)
{
var_dump($node->record);
}
# or
foreach ($blueprint->populate() as $record)
{
var_dump($record);
}
$blueprint->ordered_nodes; // an array of BlueprintNodes instances
$blueprint->ordered_records; // an array of Page instances
foreach ($blueprint->index as $node);
# or
foreach ($blueprint as $node);
use Icybee\Modules\Pages\NavigationElement;
echo new NavigationElement($blueprint);
use Icybee\Modules\Pages\BlueprintNode;
use Icybee\Modules\Pages\NavigationElement;
$app->events->attach(function(NavigationElement\BeforePopulateEvent $event, NavigationElement $target) {
$event->blueprint = $event->blueprint->subset(function(BlueprintNode $node) {
return $node->nid == 5;
});
});
use Icybee\Modules\Pages\NavigationElement;
$app->events->attach(function(NavigationElement\PopulateEvent $event, NavigationElement $target) {
foreach ($event->blueprint as $node)
{
$link = $node->renderables['link'];
$link['href'] = '#';
$link['target'] = '_blank';
}
});
use Icybee\Modules\Pages\Page;
use Icybee\Modules\Pages\PageRenderer;
$page = Page::form([
'title' => "My page",
'body' => "My body"
]);
$renderer = new PageRenderer;
$html = $renderer($page);
$html = $page->render();
$html = (string) $page;
use ICanBoogie\Prototype;
Prototype::from('Icybee\Modules\Pages\Page')['render'] = function(Page $page)
{
// …
return $html;
};
use Icybee\Modules\Pages\PageRenderer;
$app->events->attach(function(PageRenderer\BeforeRenderEvent $event, PageRenderer $target) {
$event->context['my_variable'] = "My value";
$event->document->css->add('/public/page.css');
$event->document->js->add('/public/page.js');
});
use Icybee\Modules\Pages\PageRenderer;
$app->events->attach(function(PageRenderer\RenderEvent $event, PageRenderer $target) {
$event->html .= "<!-- My awesome comment -->";
});
// …
$event->inject($fragment, 'body');
// …
// …
$event->replace($placeholder, $fragment);
// …
echo "Home page URL: " . $app->site->home->url;