neue Seitentemplate-Funktion anlegen
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
neue Seitentemplate-Funktion anlegen
Lieber Markus,
zurzeit gelingt es mir nicht, eine neue Seitentemplate-Funktion zu speichern. Erfolgreich ist nur der Umweg über das Anlegen eines neuen Datensatzes in der Tabelle ..._mod_functions. Dann kann man Änderungen in der neu angelegten Funktion auch speichern. Eine php-Fehlermeldung wird nicht ausgegeben.
Grüße von Horst
zurzeit gelingt es mir nicht, eine neue Seitentemplate-Funktion zu speichern. Erfolgreich ist nur der Umweg über das Anlegen eines neuen Datensatzes in der Tabelle ..._mod_functions. Dann kann man Änderungen in der neu angelegten Funktion auch speichern. Eine php-Fehlermeldung wird nicht ausgegeben.
Grüße von Horst
-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Habe es gerade getestet mit einer einfachen Funktion und keine Probleme bemerkt.
Willst Du ausführlicher werden?
Zur Info: Da der wie auch immer geartete selbst geschriebene Code unmittelbar zur Ausführung gelangt, kann dieser sämtliche CPO-Funktionen blockieren. Man sollte also recht sicher sein, dass der Code funktioniert.
Willst Du ausführlicher werden?
Zur Info: Da der wie auch immer geartete selbst geschriebene Code unmittelbar zur Ausführung gelangt, kann dieser sämtliche CPO-Funktionen blockieren. Man sollte also recht sicher sein, dass der Code funktioniert.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
Re: neue Seitentemplate-Funktion anlegen
Eigentlich sollte auch eine Message ausgegeben werden, was ebenfalls nicht erfolgt.
Ich habe folgenden Code in mod_functions/actions.inc.php gefunden:
Soll ich mal testweise $dbPrefix durch 'sk_cpo_' ersetzen (Prefix meiner Webseiten-Datentabellen) oder macht das keinen Sinn?
Ich habe folgenden Code in mod_functions/actions.inc.php gefunden:
Code: Alles auswählen
= Version: 4.2b / January 2013 ==
*/
// save
if (isset($_POST['action']) && $_POST['action']=='save' && $_POST['function_name']!='' && $_POST['function_code']!='') {
$query = "REPLACE INTO ".$dbPrefix."_mod_functions values ('".$_POST['function_name']."','".$_POST['function_args']."','".addslashes($_POST['function_code'])."') ";
DEBUG(2, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
$message[] = sprintf(__('Function <i>%s</i> saved.'),$_POST['function_name']);
}-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Tja, liegt ganz sicher am seit Jahren ohne Probleme eingesetzten Modul-Code und nicht an Deiner unbekannten "Funktion"...
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Bitte denke doch mal über folgenden Sachverhalt nach:
Vor Deinem Versuch eine selbst gebastelte Funktion zu speichern, hat alles funktioniert.
Mit Deiner selbst gebastelten Funktion gibt nun aber Probleme.
Wo könnte also der Fehler oder die Ursache liegen?
Vor Deinem Versuch eine selbst gebastelte Funktion zu speichern, hat alles funktioniert.
Mit Deiner selbst gebastelten Funktion gibt nun aber Probleme.
Wo könnte also der Fehler oder die Ursache liegen?
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Wenn
und somit alles folgende NICHT funktioniert, könnte es sein, dass Du die Variable $_POST (unbewußt) in Deinem geheimen Code manipulierst.
Ich werde nicht weiter fragen, wenn Du es eben - warum auch immer - geheim halten willst...
Ansonsten gilt das hier geschriebene: viewtopic.php?f=13&t=4800
if (isset($_POST['action']) && $_POST['action']=='save' && $_POST['function_name']!='' && $_POST['function_code']!='') {und somit alles folgende NICHT funktioniert, könnte es sein, dass Du die Variable $_POST (unbewußt) in Deinem geheimen Code manipulierst.
Ich werde nicht weiter fragen, wenn Du es eben - warum auch immer - geheim halten willst...
Ansonsten gilt das hier geschriebene: viewtopic.php?f=13&t=4800
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
Re: neue Seitentemplate-Funktion anlegen
Hallo Markus,
ich habe das Modul lange nicht benutzt, weil alles lief. Gestern stellte ich beim dem Versuch, eine neue Funktion einzurichten, fest, dass dies nur über den Umweg über das Anlegen eines neuen Datensatzes in der Tabelle ging. Sorry aber die Funktion hat dann keine Fehler verursacht und ich habe auch keinen geheimen Code geschrieben...
Beim Anlegen habe ich lediglich eine Kommentarzeile speichern wollen, um dann den restlichen Code zu schreiben. Das geht zurzeit auch nicht...
Nach wie vor kann ich direkt über das Modul keine Funktion neu anlegen. Das ging vor der neuen und jetzt nach der neuen nicht. Deshalb schrieb ich dir.
Hier die Funktion "downloadlinks":
ich habe das Modul lange nicht benutzt, weil alles lief. Gestern stellte ich beim dem Versuch, eine neue Funktion einzurichten, fest, dass dies nur über den Umweg über das Anlegen eines neuen Datensatzes in der Tabelle ging. Sorry aber die Funktion hat dann keine Fehler verursacht und ich habe auch keinen geheimen Code geschrieben...
Beim Anlegen habe ich lediglich eine Kommentarzeile
Code: Alles auswählen
/* testfunktion */Nach wie vor kann ich direkt über das Modul keine Funktion neu anlegen. Das ging vor der neuen und jetzt nach der neuen nicht. Deshalb schrieb ich dir.
Hier die Funktion "downloadlinks":
Code: Alles auswählen
/* Download-Links in Abhängigkeit von der usergroup ausgeben */
/* Usergroup */
$usergroup = $_SESSION['SID_user']['usergroups_id'];
/* usergroups: 1 = gk-mitglieder; 2 = gemeindeuser; 7 = projektchor; 10 = blockierte User */
/* download-links definieren */
if (defined ('LOGIN')){
$dnl_son = '<a href="../_rubric/index.php?rubric=song-download">Liederverzeichnis</a>';
$dnl_adv = '<a href="../_rubric/index.php?rubric=advents-download">Advent & Weihnacht</a>';
$dnl_shk = '<a href="../_rubric/index.php?rubric=download-schatzkiste">Schatzkiste</a>';
$dnl_aud = '<a href="../_rubric/index.php?rubric=audios">Aufnahmen</a>';
$dnl_tze = '<a href="../_rubric/index.php?rubric=taize">Taizé-Osternacht 2021</a>';
$dnl_kon = '<a href="../_rubric/detail.php?rubric=konzerthistorie&nr=5928">Konzert-Historie</a>';
$trennstrich1 = ' - ';
$trennstrich2 = ' - ';
$trennstrich3 = ' - ';
$trennstrich4 = ' - ';
$trennstrich5 = ' - ';
/* usergroup Gemeindeleitung */
if ($usergroup == '2'){
$dnl_shk = ''; $trennstrich1 = ''; $trennstrich2 = '';
$dnl_aud = ''; $trennstrich3 = '';
$dnl_tze = ''; $trennstrich4 = '';
$dnl_kon = ''; $trennstrich5 = '';}
/* Projektchor-Gruppe */
if ($usergroup == '7'){
$dnl_son = ''; $trennstrich1 = '';
$dnl_adv = ''; $trennstrich2 = '';
$dnl_shk = ''; $trennstrich3 = '';
$dnl_aud = ''; $trennstrich4 = '';
$dnl_kon = ''; $trennstrich5 = '';}
/* rubrikfilter */
switch ($_REQUEST['rubric']){
case 'song-download': $dnl_son = ''; $trennstrich1 = ''; break;
case 'advents-download': $dnl_adv = ''; $trennstrich2 = ''; break;
case 'download-schatzkiste': $dnl_shk = ''; $trennstrich3 = ''; break;
case 'audios': $dnl_aud = ''; $trennstrich4 = ''; break;
case 'taize': $dnl_tze = ''; $trennstrich5 = ''; break;
case 'konzerthistorie': $dnl_kon = ''; $trennstrich5 = ''; break;
}
/* string zusammenbauen */
$downloadLinkString = 'Weitere Downloads:<br>'.$dnl_son.$trennstrich1.$dnl_adv.$trennstrich2.$dnl_shk.$trennstrich3.$dnl_aud.$trennstrich4.$dnl_tze.$trennstrich5.$dnl_kon;
}
/* ausgäbe des link-strings */
return $downloadLinkString;-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Ok,
ich habe Deine beiden Codes als Funktionen problemlos unter einer PHP 8.3 (MariaDB 10.3.39) und einer PHP 8.4 (MariaDB 10.11.7) Installation speichern können.
Der Code sieht auch so aus, als würde er keine Fehler verursachen.
Es scheint auch vor allem auf globale Variablen zurückgegriffen zu werden, so dass kein Globalisieren erforderlich ist.
Da beim Existieren des Datensatzes ein Speichern möglich ist, dürfte der Speichervorgang selbst auch nicht das Problem sein.
Ich habe jetzt auch keinen Hinweis für MariaDB gefunden, dass der REPLACE-Syntax nicht wie gewohnt funktionieren würde.
ich habe Deine beiden Codes als Funktionen problemlos unter einer PHP 8.3 (MariaDB 10.3.39) und einer PHP 8.4 (MariaDB 10.11.7) Installation speichern können.
Der Code sieht auch so aus, als würde er keine Fehler verursachen.
Es scheint auch vor allem auf globale Variablen zurückgegriffen zu werden, so dass kein Globalisieren erforderlich ist.
Da beim Existieren des Datensatzes ein Speichern möglich ist, dürfte der Speichervorgang selbst auch nicht das Problem sein.
Ich habe jetzt auch keinen Hinweis für MariaDB gefunden, dass der REPLACE-Syntax nicht wie gewohnt funktionieren würde.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
Re: neue Seitentemplate-Funktion anlegen
Ich verfahre einfach weiter so, dass ich über "Datentabellen" in der mod_function-Tabelle einen neuen Datensatz anlege und dann damit arbeite.
Danke auf jeden Fall für dein Durchchecken!
Danke auf jeden Fall für dein Durchchecken!
-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Was mir noch auffällt:
setzt voraus, dass
Auch
könnte klemmen, wenn
könnte auch klemmen, wenn die ganzen Variablen nur gesetzt werden, wenn man eingeloggt ist.
Inwiefern das jetzt problematisch ist, hängt vom sonstigen Code ab.
Code: Alles auswählen
$usergroup = $_SESSION['SID_user']['usergroups_id'];
$_SESSION['SID_user']['usergroups_id'] gesetzt ist, ansonsten würde ein Fehler produziert.Auch
Code: Alles auswählen
switch ($_REQUEST['rubric'])$_REQUEST['rubric'] nicht gesetzt ist und könnte einen default-Wert vertragen.Code: Alles auswählen
$downloadLinkString = 'Weitere Downloads:<br>'.$dnl_son.$trennstrich1.$dnl_adv.$trennstrich2.$dnl_shk.$trennstrich3.$dnl_aud.$trennstrich4.$dnl_tze.$trennstrich5.$dnl_kon;Inwiefern das jetzt problematisch ist, hängt vom sonstigen Code ab.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
Re: neue Seitentemplate-Funktion anlegen
Ich habe mal diesen Code gelöscht, da $usergroup im _global_header definiert wird und nur beim Zusammenstellen des Ausgabestrings verwendet. Dadurch werden alle Variablen weiter oben definiert, ob nun 'LOGIN' gesetzt ist oder nicht.
Code: Alles auswählen
$usergroup = $_SESSION['SID_user']['usergroups_id'];Code: Alles auswählen
if (defined ('LOGIN'))Code: Alles auswählen
/* string zusammenbauen */
if (defined ('LOGIN')){
$downloadLinkString = 'Weitere Downloads:<br>'.$dnl_son.$trennstrich1.$dnl_t25.$trennstrich6.$dnl_adv.$trennstrich2.$dnl_shk.$trennstrich3.$dnl_aud.$trennstrich4.$dnl_tze.$trennstrich5.$dnl_kon;
}-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Ich habe mir den recht simplen Modulcode jetzt zweimal angesehen und keinen Grund dafür gefunden, dass (bei Dir) zwar keine Einträge angelegt werden können, vorhandene Einträge aber bearbeitet und gespeichert werden können. Immerhin passiert das mit ein und der selben Abfrage!
Die einzige (aber wohl unwahrscheinliche) Erklärung wäre das Fehlen von Funktionsname oder Funktionscode, da dann nicht gespeichert wird.
Die einzige (aber wohl unwahrscheinliche) Erklärung wäre das Fehlen von Funktionsname oder Funktionscode, da dann nicht gespeichert wird.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
Re: neue Seitentemplate-Funktion anlegen
Danke, Markus!
Ich habe hin und her probiert. Es will nicht funktionieren. Aber es gibt ja einen Weg...
Grüße von Horst
Ich habe hin und her probiert. Es will nicht funktionieren. Aber es gibt ja einen Weg...
Grüße von Horst
-
MarkusR
- Handbuchversteher
- Beiträge: 7552
- Registriert: 01.01.1970 02:00
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 943 Mal
Re: neue Seitentemplate-Funktion anlegen
Du könntest vor der von Dir genannten Zeile
einfach noch eine Kontrollausgabe mittels
einbauen, da wohl bei der Prüfung auf diese Variablen kein Erfolg gemeldet wird, und somit Abfrage und Meldung nicht ausgeführt werden.
Im Quelltext der Seite sollte dann eine Ausgabe zu sehen sein.
Das ist zumindest das, was ich machen würde.
Nach der Prüfung dann wieder entfernen/auskommentieren.
Code: Alles auswählen
if (isset($_POST['action']) && $_POST['action']=='save' && $_POST['function_name']!='' && $_POST['function_code']!='') {Code: Alles auswählen
print_r($_POST);Im Quelltext der Seite sollte dann eine Ausgabe zu sehen sein.
Das ist zumindest das, was ich machen würde.
Nach der Prüfung dann wieder entfernen/auskommentieren.
Ciao Markus
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
-
hscha
- ConPresso-Experte
- Beiträge: 849
- Registriert: 22.02.2006 23:00
- Wohnort: Berlin
- Hat sich bedankt: 226 Mal
- Danksagung erhalten: 33 Mal
Re: neue Seitentemplate-Funktion anlegen
Danke Markus!
Mit dem eingefügten Code funktioniert auch das Speichern wieder. Ausgabe:
Verstehe das, wer will!
Mit dem eingefügten Code funktioniert auch das Speichern wieder. Ausgabe:
Code: Alles auswählen
Array ( [action] => save [function_name] => testfunction2 [function_args] => [function_code] => /* testfunction 2 */ )