Author Topic: Feedback-Modul  (Read 26488 times)

Offline jacobi22

  • Posts: 5834
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Feedback-Modul
« Reply #100 on: July 30, 2015, 12:49:26 PM »
Quote
"action" Argument. Wo versteckt sich das? Noch Ideen?

das wird, je nach geplanter action in diesen Funktionen zusammengebaut. In den htt-Dateien wird der Platzhalter {action} verwendet. Dort wäre schon Platz für einen festen Parameter, auch, wenn es eher zu den "Todsünden" gehören würde  (siehe {action}&meinParameter=meinWert )

z.b. frontend.dialog.htt
Code: [Select]
<form name="fb_dialog" action="{action}&meinParameter=meinWert" method="post">
Wenn du es dynamisch brauchst, suche dir erst das entsprechende Template (die richtige htt-Datei), in der du diesen Parameter verwenden möchtest und suche dann in den Funktionen, wo dieses Template eingebunden wird

Es wäre sicher hilfreich, wenn du ein paar Details angibst, welchen Parameter an welcher Stelle mit welchen Daten zu welchem Zweck, sonst wird es ein Ratespiel
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline Psp

  • Posts: 86
Re: Feedback-Modul
« Reply #101 on: August 05, 2015, 05:25:43 PM »
Hallo,
die gewünschten Details:

es muss jeweils eine ID (integer) des zu kommentierenden Datansatzes eingebunden werden
(gewünschtes Ergebnis: z.B. Xy.php?ereignisid=259&fb_action=feedback#fb_anchor),
damit man nach abschicken des Kommentars wieder auf der gleichen Seite wie zuvor landet.

Gruß

Psp


Offline DarkViper

  • Forum administrator
  • *****
  • Posts: 3008
  • Gender: Female
Re: Feedback-Modul
« Reply #102 on: August 06, 2015, 11:07:58 AM »
Quote
"action" Argument. Wo versteckt sich das? Noch Ideen?
das wird, je nach geplanter action in diesen Funktionen zusammengebaut. In den htt-Dateien wird der Platzhalter {action} verwendet. Dort wäre schon Platz für einen festen Parameter, auch, wenn es eher zu den "Todsünden" gehören würde  (siehe {action}&meinParameter=meinWert )
z.b. frontend.dialog.htt
Code: [Select]
<form name="fb_dialog" action="{action}&meinParameter=meinWert" method="post">Wenn du es dynamisch brauchst, suche dir erst das entsprechende Template (die richtige htt-Datei), in der du diesen Parameter verwenden möchtest und suche dann in den Funktionen, wo dieses Template eingebunden wird

Urgs...  ich bekomm da immer eine Gänsehaut, wenn ich solche Konstrukte in Formularen sehe.. (die übrigens ab der nächsten WB-Version -nach 2.8.4- nicht mehr funktionieren werden!)
So'n bisserl POST, bisserl 'GET' und den Rest schick mer dann per DHL oder Hermes hinterher....  :roll:

weshalb nicht einfach einheitlich??:
Code: [Select]
<form name="fb_dialog" action="{action}" method="post">
    <input typ="hidden" name="meinParameter" value="meinWert">
Wobei {action} eine saubere URL sein muss (die nach den Regeln natürlich auch ein Anchor-Element -z.B. #fb_anchor - enthalten darf)

Die globale Variable $_SERVER['PHP_SELF'] ist übrigens eine recht unsichere Angelegenheit und es wird dringend von ihrer Verwendung abgeraten. Wenn schon über das $_SERVER [] Array arbeiten, dann besser mittels $_SERVER['SCRIPT_NAME'].
Soll das aktuelle Script aufgerufen werden, kann mit folgendem Code die absolute URL des Scriptes bestimmt werden:

$sActionUrl 
=  str_replace(str_replace('\\''/'WB_PATH), WB_URLstr_replace('\\''/'__FILE__)).'#fb_anchor';
// wird in 2.8.4 deutlich einfacher. //


Manuela
(die wieder zuhause ist..)
PS:
Ich frage mich des öfteren, wie manche Leute erwarten, dass Programme sauber, differenziert und nach Regeln arbeiten sollen, wenn schon der Code dazu chaotisch und regelfrei aufgebaut wird.. :roll:
Der blaue Planet - er ist nicht unser Eigentum - wir haben ihn nur von unseren Nachkommen geliehen

"You have to take the men as they are… but you can not leave them like that !" :-P
Das tägliche Stoßgebet: Oh Herr, wirf Hirn vom Himmel !

Offline Stefek

  • Posts: 6177
  • Gender: Male
  • ("ړ)
Re: Feedback-Modul
« Reply #103 on: August 06, 2015, 04:45:48 PM »
Urgs...  ich bekomm da immer eine Gänsehaut, wenn ich solche Konstrukte in Formularen sehe.. (die übrigens ab der nächsten WB-Version -nach 2.8.4- nicht mehr funktionieren werden!)
So'n bisserl POST, bisserl 'GET' und den Rest schick mer dann per DHL oder Hermes hinterher....  :roll:

Kannst Du mal erläutern, was genau (welche Art von Konstrukten) nicht mehr funktionieren wird?

Quote
Ich frage mich des öfteren, wie manche Leute erwarten, dass Programme sauber, differenziert und nach Regeln arbeiten sollen, wenn schon der Code dazu chaotisch und regelfrei aufgebaut wird..
Und ich wunder mich manchmal, warum es Leute gibt, die Support an Laien geben und im gleichen Atemzug sich über fehlende Perfektion ärgern.

Stefek
"Gemeinsam schafft man mehr."

gemeinsam
1. mehreren Personen oder Dingen in gleicher Weise gehörend, eigen
2. in Gemeinschaft [unternommen, zu bewältigen]; zusammen, miteinander
#Duden

Online dbs

  • Betatester
  • **
  • Posts: 7903
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Feedback-Modul
« Reply #104 on: November 15, 2015, 09:19:42 PM »
Hallo,

bin jetzt mit der Suche nicht weit gekommen. Erhalte das hier mit PHP5.5 und Version 0.33 und 1.0
Code: [Select]
Notice: Undefined property: templateParser::$html in ...\modules\newsletter\class.parser.php on line 42
Ja, da steht newsletter, aber ich befinde mich auf der Seite Feedback.
Newsletter ist in Version 0.19 installiert. Nach Deinstallation erscheint obige Meldung dann mit feedback statt newsletter.

Gabs da schon eine Lösung?

Gruß
dbs

Offline Psp

  • Posts: 86
Re: Feedback-Modul- Sprache
« Reply #105 on: December 08, 2015, 12:02:35 AM »
Ich mache eine Seite auf Französisch - leider ist Feedback auf Deutsch (die Sprache der Seite selbst steht auch auf Französisch.- was kann man machen? Danke!

Offline jacobi22

  • Posts: 5834
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Feedback-Modul
« Reply #106 on: December 08, 2015, 12:21:26 AM »
Quote
Ich mache eine Seite auf Französisch - leider ist Feedback auf Deutsch (die Sprache der Seite selbst steht auch auf Französisch.- was kann man machen? Danke!

Im Ordner modules / feedback / languages findest du (in meiner Version) sechs verschiedene Sprachdateien.
Kopiere davon die, die dir an leichtesten zum Übersetzen gefällt (z.b. DE.php) und speichere sie im gleichem Ordner als FR.php

Wenn du diesen Datei dann öffnest, findest du dort die einzelnen Sprachvariablen in dieser Form

Quote
define('fb_error_add_record',                              '<p>Beim Hinzuf&uuml;gen eines Datensatz ist ein Fehler aufgetreten</p><p>[%s] <strong>%s</strong></p>');
Wichtig im grünen Teil:  bitte keine dieser HTML-Tags (wie </strong></p> usw) oder Platzhalter wie  %s oder [%s] entfernen, sonst funktioniert die Ausgabe nicht mehr oder die Optik wird verändert

der rot markierte Teil ist der Bezeichner, den darfst du nicht ändern
der grün markierte Teil ist dann die jeweilige Sprachvariable

Bezeichner und Variable stehen jeweils in Hochkommas, diese Schreibweise ist unbedingt einzuhalten, nach diesem Schema

define ('Bezeichner', 'Variable');

Beachte, das jede zur Verfügung stehende Sprachdatei sofort eingebunden wird, wenn der Name der Sprachdatei mit der aktuell aktiven Sprache übereinstimmt (Sprache = FR, Dateiname = FR)
Willst du dieses sofortige Einbinden verhindern, bis du alles fertig übersetzt hast, benenne die Datei bis dahin um, z.b. FR_trans.php

Tip: Zur Not läßt sich dieses Bearbeiten mit einem einfachen Editor wie Notepad erledigen, mit einem Editor wie Notepad++ hat man aber eine bessere Übersicht
« Last Edit: December 08, 2015, 12:35:09 AM by jacobi22 »
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline jacobi22

  • Posts: 5834
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Feedback-Modul
« Reply #107 on: December 08, 2015, 12:28:57 AM »
Noch ein Tip...
In den Sprachdateien ist es notwendig, Sonderzeichen entsprechend zu konvertieren

Dies läßt sich sehr einfach mit der Eingabe des gewünschten Textes in eine Wysiwyg-Section machen

Text, z.b. Effacer l'archive zip après décompression in den Wysiwyg-Editor schreiben und dann (ohne Speichern) auf Quelltext umschalten

Ergebnis
Quote
<p>Effacer l&#39;archive zip apr&egrave;s d&eacute;compression</p>

Diesen Text dann kopieren und in die Sprachdatei einfügen. Die beiden <p></p> läßt du am besten beim Kopieren weg. Sofern sie nötig sind, stehen sie ja schon in der zu übersetzenden Sprachdatei
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline Psp

  • Posts: 86
Re: Feedback-Modul
« Reply #108 on: December 10, 2015, 06:23:23 PM »
Danke jacobi22!

Dein Tipp mit dem Wysiwyg ist auch sonst sehr gut, wenn man mit Fremdsprachen kämpft. Werde das fertige Werk dann hier posten..

Noch ne Frage zum Feedback: wie kann ich die Feedback Sprache erzwingen? Hab z.B. unabsichtlich Englisch auf ner spanischen Seite. - Bei den Frontend und Backend Spracheinstellungen ist es etwas merkwürdig.

Offline jacobi22

  • Posts: 5834
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Feedback-Modul
« Reply #109 on: December 10, 2015, 07:47:09 PM »
Grundsätzlich ist es so, das WB immer zuerst nach einer englischen Sprache in einem Modul sucht. Ist die Sprache der Seite dann eine andere, wird dieses Englisch ersetzt durch die Sprache, die für diese Seite eingestellt wurde, in der sich die Section "Feedback" befindet, das wäre bei mir z.b. zum Test mal französisch



Differenzieren muß man grundsätzlich zwischen Front- und Backend, weil dort (im Backend) deine User-Spezifische Sprache auch noch rein spielt. Im Frontend gilt eigentlich nur:
gibt es eine Datei für die eingestellte Seitesprache, nimm die. Gibt es keine Datei für die eingestellte Seitesprache, nimm die der WB-Projektsprache (WB-Optionen). Ist auch die nicht verfügbar, nimm die Sprache des Browsers und ist auch die nicht als Sprachdatei verfügbar, nimm englisch

Wir nehmen an, du hast die Seiten nach diesem Modell im Designer-Guide aufgebaut, je eine Seite Typ Menu-Link, die dann DE, EN und FR heißt
dazu jeweils Unterseiten entsprechend dem Muster.
WB liest dann die jeweilige Sprache der Seite und liefert diese als Konstante LANGUAGE mit

Nun kommt in der view.php des Feedback-Moduls dieser Baustein hier
Code: [Select]
<?php
if(!file_exists(WB_PATH .'/modules/feedback/languages/' .LANGUAGE .'.php')) {
    require_once(
WB_PATH .'/modules/feedback/languages/DE.php');
} else {
        require_once(
WB_PATH .'/modules/feedback/languages/' .LANGUAGE .'.php');
}

Hier hat das Feedback-Modul einen Unterschied zur herkömmlichen Vorgehensweise, da es die Datei DE.php läd, üblich wäre EN.php
Die Schaltung heißt "übersetzt: Wenn keine Datei in dieser (gewählten) Sprache existiert, lande als Standardsprache (hier) die DE.php)

Dieser Code sorgt dafür, das die jeweilige Sprache für diese Seite geladen wird. Ist die Seitensprache (also LANGUAGE) gleich DE, dann läd er die DE.php. Ist die Seitensprache FR, dann die FR.php

findet er in einer dieser Sprachdateien eine der aufgerufenen Sprachvariablen nicht, schaut er in der englischen Sprachdatei und gibt sie dann in englisch aus
Findet er die Sprachvariable überhaupt nicht, gibt es bei eingeschalteter PHP-Fehleranzeige eine Notice, ohne Fehleranzeige bleibt der Platz dann leer

Nun wird kompliziert....
ein angemeldeter User im Backend......   :-D

Jeder User mit WB-Account im Backend kann dort auch seine bevorzugte Sprache einstellen.
Im Normalfall wird im Backend die Sprache angezeigt, die unter Optionen als Hauptsprache definiert wurde. Hat ein User eine davon abweichende Sprache, bekommt er, solang verfügbar, für jedes Modul diese Sprache angezeigt.
Ist die Sprache nicht verfügbar, kommt wieder Hauptsprache

Am praktischem Beispiel  schaut das Ganze für mich im Feedback-Modul so aus
 - WB-Hauptsprache ist bei mir deutsch
 - Meine Usersprache wäre Schwedisch
 - die Seitensprache der Seite mit dem Feedback-Modul wäre französisch, ich habe aber keine französische oder schwedische Sprachdatei im Modul

meine Ausgabe im Backend wäre dann in Deutsch - kompliziert, oder?  :wink:

Quote
wie kann ich die Feedback Sprache erzwingen? Hab z.B. unabsichtlich Englisch auf ner spanischen Seite.

Ganz wichtig ist die korrekte Trennung der Einzelnen Seiten bzw deren Zuordnung zu einer Sprache. Damit das alles sauber funktioniert, habe ich mir in der Seitenübersicht kleine Fähnchen hingebaut, schaut hier etwas bunt aus, hilft aber  ;-)


Änderung in der Datei admin / pages / index.php // ~Zeile 200 in diesem Block hier

Code: [Select]
<td class="list_page_title">
                <?php echo ($page['page_title']); ?>
                </td>

hinzufügen von

Code: [Select]
<img src="<?php echo THEME_URL?>/images/flags/<?php echo strtolower (($page['language'])); ?>.png" alt="<?php echo strtoupper (($page['language'])); ?>" title="<?php echo strtoupper (($page['language'])); ?>" />
macht im Ergebnis dann dies
Code: [Select]
<td class="list_page_title">
                <img src="<?php echo THEME_URL?>/images/flags/<?php echo strtolower (($page['language'])); ?>.png" alt="<?php echo strtoupper (($page['language'])); ?>" title="<?php echo strtoupper (($page['language'])); ?>" />
                    <?php echo ($page['page_title']); ?>
                </td>
P.S.: macht aber den Aufbau der Seitenübersicht langsamer, gerade bei komplexen Seiten, darum wird in der WB 2.8.4 auf Fähnchen verzichten und statt dessen das Sprachkürzel ausgegeben


Gerade beim Kopieren von Seiten mit dem AdminTool PageCloner oder beim Anlegen von vielen Seiten in einem Rutsch passieren dann falsche Sprachzuordnung. klick man z.b. in der Seitenübersicht rechts auf das "Hinzufügen Seite"-Symbol, wird die Sprache dieser Seite übernommen.
Und legt man unterhalb der Seitenübersicht in diesem Menü eine neue Seite an, wird die WB-Hauptsprache eingestellt.
Ich mußte schon mal 100 Seiten auf einen Schlag neu einstellen, weil allesamt die gleiche Sprache hatten, ich aber Seitenstrukturen für 5 Sprachen falsch aufgebaut hatte.

Darum bei Problemen immer zuerst die Spracheinstellungen dieser Seite  und seiner Eltern kontrollieren.
Hilfreich kann es auch sein, wenn man sich die aktuelle Sprache der Seite im Frontend ausgeben läßt, an einer Stelle, die man gut sieht, die aber auch nicht den Besucher stört

Ausgabe (gehört irgendwo ins Template in den <body>-Bereich
Code: [Select]
<?php echo "Language: ".LANGUAGE?>
Ausgabe wäre dann so
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline Psp

  • Posts: 86
Re: Feedback-Modul
« Reply #110 on: December 12, 2015, 01:39:55 PM »
Danke jacobi22 für die ausführliche Antwort!

Ich habe allerdings die Sprachen jeweils auf eigenen WB - und z.T. auf getrennten Servern liegen. Deshalb würde ich die Feedbacksprache gerne hard coden können. Kann ich das in dem von Dir zitierten Code?
Code: [Select]
<?php
if(!file_exists(WB_PATH .'/modules/feedback/languages/' .LANGUAGE .'.php')) {
    require_once(
WB_PATH .'/modules/feedback/languages/DE.php');
} else {
        require_once(
WB_PATH .'/modules/feedback/languages/FR.php');
}

Oder gibt es eine bessere Stelle?

Danke!

Offline jacobi22

  • Posts: 5834
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Feedback-Modul
« Reply #111 on: December 12, 2015, 02:02:03 PM »
Quote
Ich habe allerdings die Sprachen jeweils auf eigenen WB - und z.T. auf getrennten Servern liegen

na denn wäre es ja noch einfacher. Hier brauchst du nur die Sprache in den WB-Optionen und die Sprache auf der Seite mit dem Feedbackmodul auf FR für französisch stellen

genannter Aufruf sollte zum einen in fast allen Dateien vorhanden sein, fürs Frontend dann in der view.php

Code: [Select]
<?php
if(!file_exists(WB_PATH .'/modules/feedback/languages/' .LANGUAGE .'.php')) {
    require_once(
WB_PATH .'/modules/feedback/languages/EN.php');
} else {
        require_once(
WB_PATH .'/modules/feedback/languages/FR.php');
}

Zeile 1 fragt ab, ob die Sprachdatei in der eingestellten Seitensprache vorhanden ist, diese Zeile sollte nicht geändert werden. Ganz wörtlich heißt es: wenn die Sprachdatei mit der aktuellen Seitensprache nicht vorhanden ist, mach weiter mit Zeile 2, d.h. Zeile 2 ist der Errsatz und sollte immer englisch sein, also EN.php

ist die geforderte Datei in der eingestellten Seitensprache vorhanden, mach weiter mit Zeile 4

Zeile 4 wäre hardgecodet so wie bei dir bzw wie hier oben im Code

sollte aber eigentlich so lauten
Code: [Select]
require_once(WB_PATH .'/modules/feedback/languages/' .LANGUAGE .'.php');
Natürlich steht es dir frei, das festzuschreiben, die Seite wird aber crashen, wenn sich im Projekt mal irgend etwas ändert.
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline jacobi22

  • Posts: 5834
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Feedback-Modul
« Reply #112 on: June 19, 2017, 01:03:12 PM »
PHP 7 macht ein paar Veränderungen im Modul notwendig, die dbs hier beschrieben und ausgearbeitet hatte

* 1.1.0 - 19.06.2017 (jacobi22)
* fixed: fix different functions in class.feedback.php && class.usecaptcha.ph p (thx to dbs)
* fixed: some corrections at the INSERT's for MYSQL-STRICT_MODE
* fixed: update forum-links on help pages

* 1.0.1 - 22.11.2015
* fixed: Notice: Undefined property: templateParser::$html in ...\modules\feedback\class.parser.php on line 42

Download im Addon-Bereich unter
https://addon.WebsiteBaker.org/pages/en/browse-add-ons.php?id=0A88F324
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

 

postern-length