Schemata in Override on custom field URL abfragen

Mehr
19 Juli 2019 08:03 - 19 Juli 2019 08:03 #46915 von patrick
Hallo zusammen

Ich habe vom Custom field "URL" einen Override angelegt:
/html/plg_fields_url/url.php

In dieser Datei will ich das Schemata abfragen, weiss aber nicht wie.

Der Grund ist, dass das URL-Feld mit Schemata "mailto" nicht wirklich funktioniert. Entweder wird als URL
Code:
<a href"http://www.einedomain.dd/meinemail@domain.dd"
generiert oder aber der Maillink wird korrekt erstellt, im Frontend aber ist folgendes sichtbar: mailto:meinemail@domain.dd.

Obiges hängt davon ab ob ich im Beitrag und dort im Custom field das mailto: mit eingebe oder nicht.

Nun möchte ich in der URL.php folgende Abfrage erstellen:
Code:
if($schemata == "mailto") { echo sprintf('<a href="mailto:%s"%s>%s</a>', htmlspecialchars($value), $attributes, htmlspecialchars($value) ); } else { echo sprintf('<a href="%s"%s>%s</a>', htmlspecialchars($value), $attributes, htmlspecialchars($value) ); }

Hat mir jemand einen Tipp wie ich das Schemata ins $schemata bringe?

Vielen Dank!

Grüsse
Patrick

InitCom: Webagentur für Webdesign // CMS Joomla! // PrestaShop

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Juli 2019 14:08 #46925 von King Louis
Hoi Patrick

Wenn ich Dich richtig verstehe, möchtest Du den Wert des Custum Field (vom HTML Form Feld 'URL' ) in die PHP Variable $schemata bringen.

Ich habe kürzlich versucht (mit meinen eher bescheidenen php-Kenntnissen) mit einem php-script Texte aus einem J!-Form zu lesen (ich habe versucht ein eigenes Modul zu erstellen). Die Datenübername hat mindestens funktioniert.:oops:

Dabei habe das folgerndermassen gemacht (habe hier Deine Bezeichnungen eingesetzt):

Die Variable URL wird im <form>...</form> zugeweisen: Variable im HTML: URL
Im php wird die Variable dann so an php übergeben: $schemata = $_POST('URL');. Dieser Wert wird dann in php weiterverwendet.

Ich hoffe ich habe Dich richtig verstanden und das hilft Dir weiter.

Viele Grüsse
Urs

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Juli 2019 14:45 #46926 von patrick
Hoi Urs und vielen Dank für deinen Input.

King Louis schrieb: Wenn ich Dich richtig verstehe, möchtest Du den Wert des Custum Field (vom HTML Form Feld 'URL' ) in die PHP Variable $schemata bringen.

Nicht ganz. Nicht die URL sondern das hinterlegte Schemata soll in die Variable. Leider funktioniert es mit deinem Ansatz nicht. Ich suche mal weiter :)

Grüsse
Patrick

InitCom: Webagentur für Webdesign // CMS Joomla! // PrestaShop

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
22 Juli 2019 08:38 #46927 von Tribal6
Hoi Patrick
Hab das mal bei mir lokal 'nachgebaut' (Custom-Field 'Url' mit Override), und ja, das ist nicht ideal.
Quick and dirty gings mal so:
Code:
<?php /** * @package Joomla.Plugin * @subpackage Fields.URL * * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $value = $field->value; $mailSchema = 'mailto:'; $isMail = (false !== strpos($value, $mailSchema, 0)); if ($value == '') { return; } $attributes = ''; if (!JUri::isInternal($value)) { $attributes = ' rel="nofollow noopener noreferrer" target="_blank"'; } echo sprintf('<a href="%s"%s>%s</a>', htmlspecialchars($value), $attributes, htmlspecialchars(($isMail) ? str_replace($mailSchema, '', $value) : $value) );

Damit wird, bei mir zumindest, die Mailadresse nicht 'cloaked', sondern im Klartext angezeigt. Ich bau das auch grad noch mit ein :)

Tue das, was du kannst, mit dem was du hast, da wo du bist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
22 Juli 2019 08:43 #46928 von Tribal6
...und hier mit verschleierter Mailadresse:
Code:
<?php /** * @package Joomla.Plugin * @subpackage Fields.URL * * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $value = $field->value; $mailSchema = 'mailto:'; $isMail = (false !== strpos($value, $mailSchema, 0)); if ($value == '') { return; } $attributes = ''; if (!JUri::isInternal($value)) { $attributes = ' rel="nofollow noopener noreferrer" target="_blank"'; } if($isMail) { echo JHtml::_('email.cloak',str_replace($mailSchema, '', $value)); } else { echo sprintf('<a href="%s"%s>%s</a>', htmlspecialchars($value), $attributes, htmlspecialchars($value) ); }

Tue das, was du kannst, mit dem was du hast, da wo du bist.
Folgende Benutzer bedankten sich: RePao, patrick

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
22 Juli 2019 11:15 #46929 von patrick
Hi Roger und danke

Funktioniert perfekt!!!

InitCom: Webagentur für Webdesign // CMS Joomla! // PrestaShop

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
22 Juli 2019 16:44 #46930 von Tribal6
;)
Aber gerne doch, wir Joomla-Hoschies müssen ja schliesslich zusammenhalten. :D

Und mein kühles Feierbend-Cider schmeckt mir so noch besser 8)

Tue das, was du kannst, mit dem was du hast, da wo du bist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Moderatoren: pascaleadiheutschi.chTribal6RePaoDragonlordChris Hoefliger
Powered by Kunena Forum

Joomla! Verband Schweiz - Mitglied werden