Ошибка рендеринга шаблонизатора

Обнаружена проблема при обработке шаблона.

Сообщение об ошибке

Unknown "clean_page_desc" filter.
Файл:
/home/redgard/web/top-vibe.com/public_html/src/template/sphere/struct.html
Строка:
12
Тип:
Twig\Error\SyntaxError
Шаблон:
stream.html
  1. <meta charset="UTF-8">
  2. <meta name='viewport' content='width=device-width, initial-scale=1.0'>
  3. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  4. <title>{% block title %}{% endblock %} {{ config().other().getAllTitlePage() }}</title>
  5. <meta name="Description" content="{% if pageDesc is defined and pageDesc %}{{ pageDesc|clean_page_desc }}{% else %}{{ title }} {{ config().other().getAllTitlePage() }}{% endif %}">
  6. <meta name="keywords" content="{{ config().other().getKeywords() }}">
  7. <meta property="og:title" content="{{ title }} {{ config().other().getAllTitlePage() }}">
  8. <meta property="og:description" content="{{ config().other().getKeywords() }}">
  9. <meta property="og:image" content="{{config().logo().getLogo()}}">
  1. {%extends 'struct.html'%}
  2. {%block title%}{{phrase('stream')}}{%endblock%}
  3. {%block content%}
  4. <div class="container-fluid">
  5. <div class="row">
  6. {%if getUser().isAuth()%}
  7. <div class="col-xl-12">
  8. <div class="card custom-card">
  9. <div class="card-body">
  10. <div class="row g-3">
  11. <div class="col-sm-4">
  12. <h6 class="fw-semibold mb-0">{{phrase('streaming_game_on_our_server')}}</h6>
  13. <p class=" text-muted">{{phrase('add_channel_link')}}</p>
  14. </div>
  15. <div class="col-sm">
  16. <input value="" id="channel" class="form-control me-auto" type="text"
  17. placeholder="https://www.youtube.com/watch?v=jNQXAC9IVRw"
  18. aria-label="">
  19. </div>
  20. <div class="col-auto">
  21. <button id="add_new_stream" type="submit" class="btn btn-primary">{{ phrase('Add link') }}</button>
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. {%endif%}
  28. {%for stream in streams()%}
  29. {%set userInfo = getUser(stream.user_id)%}
  30. <div id="stream_{{stream.id}}" class="col-xl-4">
  31. <div class="card custom-card">
  32. <div class="card-header">
  33. <div class="d-sm-flex align-items-top">
  34. <span class="avatar avatar-sm">
  35. {%if userInfo.isAvatarVideo()%}
  36. <video src="{{ userInfo.getAvatar() }}" class="img-fluid rounded-circle" autoplay loop muted playsinline style="width:32px; height:32px; object-fit:cover;"></video>
  37. {%else%}
  38. <img src="{{userInfo.getAvatar()}}" alt="img">
  39. {%endif%}
  40. </span>
  41. </div>
  42. <span class="badge bg-info-transparent rounded-pill">{{userInfo.getName()}}</span>
  43. {%if userInfo.getId() == getUser().getId()%}
  44. <div class="unstyled inbox-pagination ms-auto mb-0 ps-3">
  45. <span>
  46. <a href="javascript:void(0);" id="delete_stream" data-object-id="{{stream.id}}" class="text-muted d-inline-flex">{{ phrase('delete') }}</a>
  47. </span>
  48. </div>
  49. {%endif%}
  50. </div>
  51. <div class="card-body ">
  52. <div class="ratio ratio-16x9 mb-0">
  53. {%if stream_get_platform(stream.channel) == 'trovo'%}
  54. <a href="{{stream.channel}}" target="_blank" class="glightbox card" >
  55. <img src="uploads/images/stream/trovo.jpg" class="" alt="image">
  56. </a>
  57. {%else%}
  58. <iframe width="560" height="315" src="{{ stream_link_rev(stream.channel) }}"
  59. title="Video player" style="border:0px"
  60. allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
  61. allowfullscreen=""></iframe>
  62. {%endif%}
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. {%endfor%}
  68. </div>
  69. </div>
  70. {%endblock%}
  71. {%block js%}
  72. {%if getUser().isAuth()%}
  73. <script>
  74. $("#delete_stream").on("click", function () {
  75. let id = $(this).attr("data-object-id");
  76. AjaxSend("/stream/delete", "POST", {
  77. id: id
  78. }, true).then(function (response) {
  79. responseAnalysis(response);
  80. if (response.ok) {
  81. $("#stream_" + id).remove();
  82. }
  83. });
  84. })
  85. $("#add_new_stream").on("click", function () {
  86. AjaxSend("/stream/add", "POST", {
  87. channel: $("#channel").val()
  88. });
  89. })
  90. </script>
  91. {%endif%}
  92. {%endblock%}
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/ExpressionParser.php (строка 576)
Twig\ExpressionParser->getFilterNodeClass()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/ExpressionParser.php (строка 561)
Twig\ExpressionParser->parseFilterExpressionRaw()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/ExpressionParser.php (строка 423)
Twig\ExpressionParser->parseFilterExpression()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/ExpressionParser.php (строка 291)
Twig\ExpressionParser->parsePostfixExpression()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/ExpressionParser.php (строка 177)
Twig\ExpressionParser->parsePrimaryExpression()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/ExpressionParser.php (строка 72)
Twig\ExpressionParser->getPrimary()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Parser.php (строка 130)
Twig\ExpressionParser->parseExpression()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/TokenParser/IfTokenParser.php (строка 41)
Twig\Parser->subparse()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Parser.php (строка 173)
Twig\TokenParser\IfTokenParser->parse()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Parser.php (строка 83)
Twig\Parser->subparse()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Environment.php (строка 524)
Twig\Parser->parse()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Environment.php (строка 552)
Twig\Environment->parse()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Environment.php (строка 382)
Twig\Environment->compileSource()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Template.php (строка 282)
Twig\Environment->loadTemplate()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Template.php (строка 98)
Twig\Template->loadTemplate()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/Template.php (строка 222)
Twig\Template->getParent()
/home/redgard/web/top-vibe.com/public_html/vendor/twig/twig/src/TemplateWrapper.php (строка 50)
Twig\Template->hasBlock()
/home/redgard/web/top-vibe.com/public_html/src/template/tpl.php (строка 2702)
Twig\TemplateWrapper->hasBlock()
/home/redgard/web/top-vibe.com/public_html/src/controller/stream/stream.php (строка 90)
Ofey\Logan22\template\tpl::display()
[Внутренняя функция]
Ofey\Logan22\controller\stream\stream::show()
/home/redgard/web/top-vibe.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php (строка 430)
call_user_func_array()
/home/redgard/web/top-vibe.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php (строка 416)
Bramus\Router\Router->invoke()
/home/redgard/web/top-vibe.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php (строка 280)
Bramus\Router\Router->handle()
/home/redgard/web/top-vibe.com/public_html/src/route/route_registry.php (строка 76)
Bramus\Router\Router->run()
/home/redgard/web/top-vibe.com/public_html/index.php (строка 11)
require('/home/redgard/web/top-vibe.com...')

Переменные доступные в шаблоне:

__route__ (string)
"/stream"
my_stream (boolean)
false
dir (string)
""
protocol (string)
"https"
path (string)
""
template (string)
"/src/template/sphere/"
pointTime (string)
"0.03"

Возможные решения

Проверьте синтаксис и логику шаблона.
Убедитесь, что все переменные и функции определены и доступны.
Проверьте, не используются ли устаревшие методы или функции.