diff --git a/autoload/front/factory/class.Articles.php b/autoload/front/factory/class.Articles.php
index 4938bc7..baf1e33 100644
--- a/autoload/front/factory/class.Articles.php
+++ b/autoload/front/factory/class.Articles.php
@@ -2,26 +2,19 @@
namespace front\factory;
class Articles
{
- static private function slugify($text) {
- $text = strtolower($text);
- $text = preg_replace('/[^\p{L}\p{Nd}]+/u', '-', $text);
- $text = trim($text, '-');
- return $text;
- }
-
static public function generateTableOfContents($content) {
$result = '';
$currentLevel = [];
- preg_match_all('/<(h[1-6])([^>]*)>(.*?)<\/\1>/', $content, $matches, PREG_SET_ORDER);
- // preg_match_all('/<(h[1-6])[^>]*>(.*?)<\/\1>/', $content, $matches, PREG_SET_ORDER);
+ // preg_match_all('/<(h[1-6])([^>]*)>(.*?)<\/\1>/', $content, $matches, PREG_SET_ORDER);
+ preg_match_all('/<(h[1-6])[^>]*>(.*?)<\/\1>/', $content, $matches, PREG_SET_ORDER);
$firstLevel = true;
foreach ($matches as $match) {
$level = intval(substr($match[1], 1));
$headingText = strip_tags($match[2]);
- $slug = self::slugify($headingText);
+ $slug = \S::seo( $headingText );
while ($level < count($currentLevel)) {
$result .= '';
@@ -46,16 +39,16 @@ class Articles
preg_match('/\sid="([^"]*)"/', $match[2], $idMatches);
$id = isset($idMatches[1]) ? $idMatches[1] : '';
- $result .= sprintf(
- '%s',
- urlencode(strtolower($id)),
- $match[3]
- );
// $result .= sprintf(
// '%s',
- // $slug,
- // $headingText
+ // urlencode(strtolower($id)),
+ // $match[3]
// );
+ $result .= sprintf(
+ '%s',
+ $slug,
+ $headingText
+ );
}
while (!empty($currentLevel)) {
@@ -75,10 +68,15 @@ class Articles
$level = $matches[1];
$attrs = $matches[2];
$content = $matches[3];
+
+ // usuniecie tagow
+ $cleanText = strip_tags($content);
+
$id_attr = 'id=';
$id_attr_pos = strpos($attrs, $id_attr);
+
if ($id_attr_pos === false) { // jeśli nie ma atrybutu id
- $id = \S::seo( $content );
+ $id = \S::seo( $cleanText );
$attrs .= sprintf(' id="%s"', $id);
}