Plugins and pages

    Modify all the fields of the pages via plugins.

    Modify the content of the pages

    The following code shows you how to modify the page content with a plugin.

    <?php
    class ModContent extends Plugin {
    
        // This hook is loaded when the pages are already set
        function beforeSiteLoad() {
            global $content;
    
            // Foreach loaded page, modify the page's content
            foreach ($content as $key=>$page) {
                // Get the page content
                $pageContent = $page->contentRaw();
    
                // Search and replace the string
                $newPageContent = str_replace("<!-- Dynamic -->", "Dynamic content", $pageContent);
    
                // Set the new page content
                $page->setField('content', $newPageContent);
            }
        }
    }
    ?>

    This plugin executes the beforeSiteLoad hook (which is executed before the users can see the content) then modifies the content by searching for the <!-- Dynamic --> string, and replacing it with the Dynamic content string.

    Modify the title of the pages

    The following code shows how to modify the page title via a plugin.

    <?php
    class ModTitle extends Plugin {
    
        // This hook is loaded when the pages are already set
        function beforeSiteLoad() {
            global $content;
    
            // Foreach loaded page, modify the page's title
            foreach ($content as $key=>$page) {
                // Get the page title
                $title = $page->title();
    
                // Get the page creation date
                $date = $page->date();
    
                // Concatenate title and date
                $newTitle = $title.' '.$date;
    
                // Set the new title
                $page->setField('title', $newTitle);
            }
        }
    }
    ?>

    The plugin executes the beforeSiteLoad hook (which is executed before the users can see the content), then modifies the page title with the current title and the creation date.