瀏覽代碼

Add onSinglePageContent event

Daniel Rudolf 8 年之前
父節點
當前提交
d26da62bf1
共有 2 個文件被更改,包括 24 次插入0 次删除
  1. 3 0
      lib/Pico.php
  2. 21 0
      plugins/DummyPlugin.php

+ 3 - 0
lib/Pico.php

@@ -1378,6 +1378,9 @@ class Pico
             if ($file !== $this->requestFile) {
                 $rawContent = $this->loadFileContent($file);
 
+                // trigger onSinglePageContent event
+                $this->triggerEvent('onSinglePageContent', array($id, &$rawContent));
+
                 $headers = $this->getMetaHeaders();
                 try {
                     $meta = $this->parseFileMeta($rawContent, $headers);

+ 21 - 0
plugins/DummyPlugin.php

@@ -232,6 +232,7 @@ class DummyPlugin extends AbstractPicoPlugin
      *
      * @see    Pico::readPages()
      * @see    DummyPlugin::onSinglePageLoading()
+     * @see    DummyPlugin::onSinglePageContent()
      * @see    DummyPlugin::onSinglePageLoaded()
      * @see    DummyPlugin::onPagesDiscovered()
      * @see    DummyPlugin::onPagesLoaded()
@@ -247,6 +248,7 @@ class DummyPlugin extends AbstractPicoPlugin
      *
      * Set `$id` to `null` to remove this page from the pages array.
      *
+     * @see    DummyPlugin::onSinglePageContent()
      * @see    DummyPlugin::onSinglePageLoaded()
      * @see    DummyPlugin::onPagesDiscovered()
      * @see    DummyPlugin::onPagesLoaded()
@@ -258,6 +260,25 @@ class DummyPlugin extends AbstractPicoPlugin
         // your code
     }
 
+    /**
+     * Triggered when Pico loads the raw contents of a single page
+     *
+     * Please note that this event isn't triggered when the currently processed
+     * page is the requested page. The reason for this exception is that the
+     * raw contents of this page were loaded already.
+     *
+     * @see    DummyPlugin::onSinglePageLoaded()
+     * @see    DummyPlugin::onPagesDiscovered()
+     * @see    DummyPlugin::onPagesLoaded()
+     * @param  string $id          relative path to the content file
+     * @param  string &$rawContent raw file contents
+     * @return void
+     */
+    public function onSinglePageContent($id, &$rawContent)
+    {
+        // your code
+    }
+
     /**
      * Triggered when Pico loads a single page
      *