44 $permalink = trim($permalink);
54 $hit = dbxContentPermalinkIndex::resolve($permalink,
$lng);
55 if (is_array($hit) && (
int) ($hit[
'cid'] ?? 0) > 0) {
56 return (
int) $hit[
'cid'];
59 $db =
dbx()->get_system_obj(
'dbxDB');
60 if (!is_object(
$db)) {
64 $dd = dbxContentLng::ddContent(
$lng);
65 $rec =
$db->select1(
$dd, array(
'permalink' => $permalink),
'id', 0);
66 if (is_array($rec) && (
int) ($rec[
'id'] ?? 0) > 0) {
67 return (
int) $rec[
'id'];
70 $masterLng = strtolower(trim((
string)
dbx()->get_config(
'dbx',
'default_lng',
'de')));
71 if ($masterLng !==
'' && $masterLng !==
$lng) {
72 $ddMaster = dbxContentLng::ddContent($masterLng);
73 $rec =
$db->select1($ddMaster, array(
'permalink' => $permalink),
'id', 0);
74 if (is_array($rec) && (
int) ($rec[
'id'] ?? 0) > 0) {
75 return (
int) $rec[
'id'];
84 if ($permalink ===
'') {
88 $cid = $this->resolveCidByPermalink($permalink);
90 return dbx()->get_system_obj(
'dbxTPL')->get_tpl(
'dbx|alert-info', array(
91 'msg' =>
'Hilfe-Seite noch nicht angelegt. Im CMS unter Ordner <code>'
92 . htmlspecialchars(self::HELP_ROOT, ENT_QUOTES,
'UTF-8')
93 .
'</code> eine Seite mit Permalink <code>'
94 . htmlspecialchars($permalink, ENT_QUOTES,
'UTF-8')
95 .
'</code> anlegen (Thema: <code>'
96 . htmlspecialchars($topic, ENT_QUOTES,
'UTF-8')
101 $contentObj =
dbx()->get_include_obj(
'dbxContent_content');
102 if (!is_object($contentObj) || !method_exists($contentObj,
'renderPage')) {
106 return $contentObj->renderPage($cid, array(
107 'admin_help' =>
true,
109 'skip_cache' =>
true,
110 'template' =>
'c-content-help',
116 $modul = trim($modul);
118 $title = trim($title);
119 if (!preg_match(
'/^[a-zA-Z][a-zA-Z0-9_]*$/', $modul)
121 || !preg_match(
'/^[a-zA-Z0-9_.:-]+$/',
$form)) {
122 return dbx()->get_system_obj(
'dbxTPL')->get_tpl(
'dbx|alert-danger', array(
123 'msg' =>
'Der Formular-Kontext ist ungueltig.',
128 $title = ucwords(str_replace(array(
'-',
'_',
'.'),
' ',
$form));
131 $registry =
dbx()->get_include_obj(
'dbxModuleRegistry',
'dbxAdmin');
133 if (is_object($registry) && method_exists($registry,
'renderFormHelp')) {
134 $detail = (string)$registry->renderFormHelp($modul,
$form, array(
135 'modul' => htmlspecialchars($modul, ENT_QUOTES,
'UTF-8'),
136 'form' => htmlspecialchars(
$form, ENT_QUOTES,
'UTF-8'),
137 'form_title' => htmlspecialchars($title, ENT_QUOTES,
'UTF-8'),
140 $detail = str_ireplace(
141 array(
'[modul=',
'[/modul]',
'[tpl=',
'[dbx:'),
142 array(
'[modul=',
'[/modul]',
'[tpl=',
'[dbx:'),
146 return dbx()->get_system_obj(
'dbxTPL')->get_tpl(
'dbxAdmin|admin-help-form', array(
147 'form_title' => htmlspecialchars($title, ENT_QUOTES,
'UTF-8'),
148 'form_id' => htmlspecialchars(
$form, ENT_QUOTES,
'UTF-8'),
149 'form_modul' => htmlspecialchars($modul, ENT_QUOTES,
'UTF-8'),
150 'form_detail' => $detail,
154 public function run(): string {
155 dbx()->set_system_var(
'dbx_page',
'_window');
157 $topic = trim((
string)
dbx()->get_modul_var(
'topic',
'',
'parameter'));
159 $topic = trim((
string)
dbx()->get_modul_var(
'dbx_run2',
'',
'parameter'));
162 $help =
dbx()->get_include_obj(
'dbxAdminHelp',
'dbxAdmin');
163 $isFormHelp = ($topic ===
'form');
168 if (!$isFormHelp && ($topic ===
'' || !isset(
$topics[$topic]))) {
169 $topic =
'dashboard';
174 $formModul = trim((
string)
dbx()->get_modul_var(
'help_modul',
'',
'parameter'));
175 $formId = trim((
string)
dbx()->get_modul_var(
'help_form',
'',
'parameter'));
176 $formTitle = trim((
string)
dbx()->get_modul_var(
'help_title',
'',
'varchar'));
177 $content = $this->renderFormHelp($formModul, $formId, $formTitle);
179 $content = $this->renderTopic($topic);
181 if (trim(strip_tags((
string)
$content)) ===
'') {
182 $content =
dbx()->get_system_obj(
'dbxTPL')->get_tpl(
'dbx|alert-info', array(
183 'msg' =>
'Fuer diesen Bereich ist noch keine Hilfe hinterlegt.',
188 if ($isFormHelp && is_object(
$help) && method_exists(
$help,
'formHelpWindowBarTemplateData')) {
189 $bar =
$help->formHelpWindowBarTemplateData($formTitle);
190 } elseif (is_object(
$help) && method_exists(
$help,
'helpWindowBarTemplateData')) {
191 $bar =
$help->helpWindowBarTemplateData($topic);
194 return dbx()->get_system_obj(
'dbxTPL')->get_tpl(
'dbxAdmin|admin-help-shell', array_merge(
195 is_array($bar) ? $bar : array(),
197 'frame_id' =>
'dbx_context_help_' . preg_replace(
'/[^a-z0-9_-]+/i',
'_', $topic),
198 'frame_panel_class' =>
'dbx-admin-help py-3 dbx-context-help-preview',
199 'frame_form_open' =>
'',
200 'frame_form_close' =>
'',
201 'frame_subbar' =>
'',
202 'frame_body_class' =>
'dbx-admin-help-body dbx-context-help-body',
203 'frame_body_head' =>
'',
204 'frame_body_tail' =>
'',
205 'frame_panel_attrs' =>
'',