Пример #1
0
 /**
  * Test collection
  */
 public function testCollection()
 {
     $object = new Footnotes();
     $object->addItem(new Footnote());
     // addItem #1
     $this->assertEquals(2, $object->addItem(new Footnote()));
     // addItem #2. Should returns new item index
     $this->assertCount(2, $object->getItems());
     // getItems returns array
     $this->assertInstanceOf('PhpOffice\\PhpWord\\Element\\Footnote', $object->getItem(1));
     // getItem returns object
     $this->assertNull($object->getItem(3));
     // getItem returns null when invalid index is referenced
     $object->setItem(2, null);
     // Set item #2 to null
     $this->assertNull($object->getItem(2));
     // Check if it's null
 }
Пример #2
0
<?php

// Footnotes field method: $page->text()->footnotes()->kt()
field::$methods['footnotes'] = function ($field, $convert = true) {
    $footnotes = new Footnotes($field->value, $field->page);
    $field->value = $convert ? $footnotes->process() : $footnotes->remove();
    return $field;
};
// Kirbytext pre-filter (if option 'footnotes.global' is true)
if (c::get('footnotes.global', false)) {
    kirbytext::$post[] = function ($kirbytext, $value) {
        global $page;
        $footnotes = new Footnotes($value, kirby()->site()->activePage());
        return $footnotes->process($page);
    };
}
/**
 *  Footnotes class
 */
class Footnotes
{
    public $text = '';
    public $page = null;
    private $matches = null;
    private $entries = '';
    private $templates = null;
    private $regexFootnote = '/\\[(\\d+\\..*?)\\]/s';
    private $regexContent = '/\\[\\d+\\.(.*?)\\]/s';
    public function __construct($text, $page)
    {
        $this->text = $text;