Hallo,
ich suche nach einem Modul um ein Ärzteverzeichnis in Text- u. Linkform aufzubauen.
Das Verzeichnis sollte möglichst alphabetisch geordnet werden, bzw. sein.
Der Aufbau sollte so ähnlich aussehen:
Kategorien,
z.B. Augenheilkunde, Innere Medizin, Chirurgie, u.s.w.
In den Kategorien Ärzte mit
Dr. med. Name (als Link), Straße, Stadt, Telefon
Das ganze kann eine lange Liste sein, es muss nichts aufgeklappt, oder sonstige Effekte vorh. sein.
Welches Modul wäre dafür geeignet?
Verzeichnis in Text- u. Linkform
Re: Verzeichnis in Text- u. Linkform
Hallo cyberman,Hast du dir schon mal CompanyDirectory angesehen?
"Company Business List" u. drei andere habe ich unter CMSms 1.6.6 probiert, schmeißen haufenweise Fehlermeldungen raus. Wäre eine tolle Sache wenn Modul-Autoren zuk. einen Vermerk im FORGE hinzufügen, bis zu welcher Version Module lauffähig sind. Falls das zu diesem Zeitpunkt möglich ist, in die Zukunft zu gucken?, man könnte sich Zeit mit der Installation unkompatibler Module sparen?
"CompanyDirectory" ist genau wonach ich gesucht habe, tausend Dank!
Re: Verzeichnis in Text- u. Linkform
Ich habe eine Frage zu den eingetr. E-Mail-Adressen des CompanyDirectory-Moduls.
E-Mail-Adressen werden lesbar mail@domain.com eingetragen, das wird vielen Ärzten nicht gefallen.
Gibts eine allg. Möglichkeit Mailadressen einer Domain zu schützen???
E-Mail-Adressen werden lesbar mail@domain.com eingetragen, das wird vielen Ärzten nicht gefallen.
Gibts eine allg. Möglichkeit Mailadressen einer Domain zu schützen???
Re: Verzeichnis in Text- u. Linkform
Du könntest statt der Adressen ein Formular bauen. Zum Mailadressen schützen gibt es viele Ansätze, allerdings funktioniert keine zu 100%.
-
- Power Poster
- Posts: 751
- Joined: Fri Sep 12, 2008 2:34 pm
Re: Verzeichnis in Text- u. Linkform
Ich habe mir für CMSms einen prefilter gebaut welcher die E-Mailadressen javascript mässig verschlüsselt. Zudem ersetzt er das @ in einer E-Mailadresse durch ein (at).
Erstelle die Datei prefilter.mailsecure.php:
Diese Datei musst du in den Ordner ./plugins speichern.
In dein Template musst du folgendes JavaScript einbinden:
Damit hast du mal automatisch alle E-Mailadressen geschützt. Der Link wird dann jeweils in etwa so dargestellt:
Ich kann im Moment aber nicht sagen ob dies auch für das auch für Module funktioniert. Das habe ich noch nicht ausprobiert, da bei mir die E-Mailadressen in der Regel im Content zu finden sind.
Allerdings kannst du wahrscheinlich auch im Template des CompanyDirectory einen Schutz einbauen in dem du die Ausgabe der E-Mailadresse über eine Funktion verschlüsselst.
Erstelle die Datei prefilter.mailsecure.php:
Code: Select all
<?php
function smarty_cms_prefilter_mailsecure($tpl_source, &$smarty)
{
return encrypt_content_email($tpl_source);
}
function myMailEncrypt($string,$back=0,$method=1) {
$out = '';
if ($method === 'ascii') {
for ($a=0; $a<strlen($string); $a++) {
$out .= '&#'.ord(substr($string, $a, 1)).';';
}
} else {
for ($a=0; $a<strlen($string); $a++) {
$charValue = ord(substr($string,$a,1));
$charValue+= intval($method)*($back?-1:1);
$out.= chr($charValue);
}
}
return $out;
}
function encrypt_content_email($content) {
// Attribute, ggf. aendern
$atzeichen = "(at)"; // Ersatzzeichen fuer das @
// hier via regEx alle email-adressen heraussuchen
preg_match_all("/(mailto:)?([a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}|museum))/im",$content,$matches);
// hier jetzt alle gefundenen durchgehen und ersetzen
if ( isset ($matches[0][0]) and $matches[0][0] != '') {
for ($m = 0; $m < count ($matches[0]); $m++) {
$mystring = $matches[0][$m];
$findme = 'mailto:';
$pos = strpos($mystring, $findme);
$encrypted_email_address = "";
if ($pos === false) {
$encrypted_email_address .= str_replace("@",$atzeichen,$mystring);
} else {
$encrypted_email_address .= "javascript:linkTo_UnCryptMailto('".myMailEncrypt($mystring)."')";
}
$content = str_replace($matches[0][$m],$encrypted_email_address,$content);
}
}
return $content;
}
?>
In dein Template musst du folgendes JavaScript einbinden:
Code: Select all
{literal}
<__script__ type="text/javascript"> <!--
function UnCryptMailto( s )
{
var n = 0;
var r = "";
for( var i = 0; i < s.length; i++)
{
n = s.charCodeAt( i );
if( n >= 8364 )
{
n = 128;
}
r += String.fromCharCode( n - 1 );
}
return r;
}
function linkTo_UnCryptMailto( s )
{
location.href=UnCryptMailto( s );
}
// -->
</__script>
{/literal}
Damit hast du mal automatisch alle E-Mailadressen geschützt. Der Link wird dann jeweils in etwa so dargestellt:
Code: Select all
<a href="javascript:linkTo_UnCryptMailto('nbjmup;jogpAbsdbtq/psh')">email(at)domain.com</a>
Allerdings kannst du wahrscheinlich auch im Template des CompanyDirectory einen Schutz einbauen in dem du die Ausgabe der E-Mailadresse über eine Funktion verschlüsselst.
[this message is written with 100% recycled bits]
Re: Verzeichnis in Text- u. Linkform
Ich habs installiert. Es funktioniert wie beschrieben wunderbar bei vorh. Seitencontent.Ich habe mir für CMSms einen prefilter gebaut welcher die E-Mailadressen javascript mässig verschlüsselt. Zudem ersetzt er das @ in einer E-Mailadresse durch ein (at).
Beim Modul funktioniert es nicht, die E-Mail-Adressen Übergabe wird davon nicht beeinflusst.Ich kann im Moment aber nicht sagen ob dies auch für das auch für Module funktioniert. Das habe ich noch nicht ausprobiert, da bei mir die E-Mailadressen in der Regel im Content zu finden sind.
Im Modul-Template wird die Mailadresse so übergeben:
Code: Select all
{if $entry->contact_email ne ''}
<a href="mailto:{$entry->contact_email}">{$entry->contact_email}</a>
{/if}
Ich vermute Nein?
Ich habe im CompanyDirectory - Ordner (.php + .tpl) dateiübergreifend nach dem Eintrag "mailto:" gesucht, konnte aber leider nichts finden. Wo hat Robert Campbell das "mailto:" untergebracht? Im {$entry->contact_email} habe ich doch keine Möglichkeit was zu ändern, oder?