Verzeichnis in Text- u. Linkform

Hilfe zu Modulen und Tags
Post Reply
dylan

Verzeichnis in Text- u. Linkform

Post by dylan »

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?
cyberman

Re: Verzeichnis in Text- u. Linkform

Post by cyberman »

Hast du dir schon mal CompanyDirectory angesehen?
dylan

Re: Verzeichnis in Text- u. Linkform

Post by dylan »

Hast du dir schon mal CompanyDirectory angesehen?
Hallo cyberman,
"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!
dylan

Re: Verzeichnis in Text- u. Linkform

Post by dylan »

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???
mike-r

Re: Verzeichnis in Text- u. Linkform

Post by mike-r »

Du könntest statt der Adressen ein Formular bauen. Zum Mailadressen schützen gibt es viele Ansätze, allerdings funktioniert keine zu 100%.
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm

Re: Verzeichnis in Text- u. Linkform

Post by nockenfell »

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:

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;
}

?>
Diese Datei musst du in den Ordner ./plugins speichern.

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>
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.
[this message is written with 100% recycled bits]
dylan

Re: Verzeichnis in Text- u. Linkform

Post by dylan »

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).
Ich habs installiert. Es funktioniert wie beschrieben wunderbar bei vorh. Seitencontent.
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.
Beim Modul funktioniert es nicht, die E-Mail-Adressen Übergabe wird davon nicht beeinflusst.


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 bin kein Programmierer - lässt sich der prefilter.mailsecure vielleicht im Modul-Template anwenden?
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?
Post Reply

Return to “Module und Tags”