aboutsummaryrefslogtreecommitdiff
path: root/app/class/Modelrender.php
diff options
context:
space:
mode:
authorvincent-peugnet <v.peugnet@free.fr>2020-04-09 00:38:20 +0200
committervincent-peugnet <v.peugnet@free.fr>2020-04-09 00:38:20 +0200
commit1270f3300998afbc5defab832e02cc831f486d9f (patch)
tree1710425ba321873785a7643f722332bb6bed5296 /app/class/Modelrender.php
parente91dfdbc7549b60a6bc2decff885a26f7fbb365f (diff)
parentf718dc515b3d617e24578dfa875ae786e93f8295 (diff)
downloadwcms-1270f3300998afbc5defab832e02cc831f486d9f.tar.gz
wcms-1270f3300998afbc5defab832e02cc831f486d9f.zip
Merge branch 'master' of https://github.com/vincent-peugnet/wcms
Diffstat (limited to 'app/class/Modelrender.php')
-rw-r--r--app/class/Modelrender.php20
1 files changed, 13 insertions, 7 deletions
diff --git a/app/class/Modelrender.php b/app/class/Modelrender.php
index 29a3fa7..091179d 100644
--- a/app/class/Modelrender.php
+++ b/app/class/Modelrender.php
@@ -437,17 +437,23 @@ class Modelrender extends Modelpage
$max = 6;
}
- $sum = [];
$text = preg_replace_callback(
- '/<h([' . $min . '-' . $max . '])(\s+(\s*\w+="\w+")*)?\s*>(.+)<\/h[' . $min . '-' . $max . ']>/mU',
- function ($matches) use (&$sum) {
- $cleanid = idclean($matches[4]);
- $sum[$cleanid][$matches[1]] = $matches[4];
- return '<h' . $matches[1] . $matches[2] . ' id="' . $cleanid . '">' . $matches[4] . '</h' . $matches[1] . '>';
+ "/<h([$min-$max])((.*)id=\"([^\"]*)\"(.*)|.*)>(.+)<\/h[$min-$max]>/mU",
+ function ($matches) {
+ $level = $matches[1];
+ $beforeid = $matches[3];
+ $id = $matches[4];
+ $afterid = $matches[5];
+ $content = $matches[6];
+ // if no custom id is defined, use idclean of the content as id
+ if (empty($id)) {
+ $id = idclean($content);
+ }
+ $this->sum[] = new Header($id, intval($level), $content);
+ return "<h$level $beforeid id=\"$id\" $afterid>$content</h$level>";
},
$text
);
- $this->sum[$element] = $sum;
return $text;
}