Contents

Tips og Tricks

Standardinstallasjonen av CMS Made Simple kommer med et standard sett av maler og funksjonalitet.

Denne seksjonen samler noen vanlige tips for å hjelpe deg til å endre installasjonen slik at den passer bedre til din webside.

Se også Ofte Spurte Spørsmål for flere nyttige tips og tricks - artikkelen Pretty URLs flyttet dit.

Beskytte e-postlinker mot spam (mailto)

E-postadresser på dine websider kan høstes av spammere. Her er et hendig Smarty tricks for å kode e-postadressene så de vises og fungerer normalt i en nettleser, men ikke er så lett synlig for systemer som automatisk skanner for dem. Denne teknikken kalles noen ganger for "email obfuscation."

I stedet for å legge til e-postlinken direkte i HTML-koden som <a href="mailto:me@example.com">, så bruker du Smarty {mailto} for å kode e-postadressen:

{mailto address="me@example.com" encode="javascript"}

[Tagger|Taggen] {mailto} vil automatisk kode e-postadressen til JavaScript, hex eller annet format og skjule den for spam-roboter. Koden ovenfor er kodet slik:

<script>
   eval(unescape('%64%6f% ... snipped ...%61%3e%27%29%3b'))
</script>

{mailto} støtter også ulike parametre som gjør at du kan spesifisere metoden for koding av adressen, tekst som vises i e-postlinken, e-postens emne, flere mottakere og enda mer. Du kan lese mer detaljert om dette i manualen for {mailto} på Smartys hjemmeside.

LDAP Integrasjon

Selv om CMSms har egen administrasjon av brukere og grupper og autentisering-/autoriseringsfunksjoner, så er det kanskje noen brukere som vil bruke en eksisterende database i en LDAP-mappe. CMSms (v1.0.4) har ikke foreløpig et bulletin valg som kan integreres med en LDAP-mappe. Men noen brukere har publisert tips for å få det til, og de har fått det til i produksjonssider.

Du kan lese den første LDAP-tråden i forumet for å få litt mer bakgrunnsinformasjon om dette. Hvis du ønsker å integrere CMSmn med din LDAP-mappe, anbefales å lese denne tråden med tips.

Beskytte mot å vise mappeinnhold

Hvis du bruker Apache web server (og jeg mistenker at det er det samme med andre), så er det slik at hvis noen navigerer til www.yourwebsite.com/somefolder/, så vil han/hun se innholdet i denne mappen, som kan være bra... dersom du hadde FTP server og ønsket at det var det som skulle skje. Den enkle løsningen for å unngå dette, er å plassere en enkel index.html fil med en eller annen advarsel i disse mappene. Filene vil fremdeles være tilgjengelig fra websidene, men den som prøvde å finne tak i filstrukturen din får en advarsel.

NB: Dette er ikke den sikreste måten å håndtere dette på, men det er den raskeste.

En annen mulighet er via .htaccess eller httpd.conf filene.

Du kan beskytte en mappe med .htaccess på følgende måte. Du må lage eller endre en .htaccess fil slik at den inneholder:

#option to remove directory listings in this folder

Options -Indexes

Dette vil hindre opplisting av innholdet i mappen hvor .htaccess ligger men det vil fremdeles være mulig å vise index.php og index.html hvis den faktisk finnes i denne mappen. Du kan gjøre dette globalt for alle mappene (hele webområdet ditt) ved å skrive inn den samme informasjonen i .htaccess filen i root-mappen. Den samme metoden kan også brukes i httpd.conf-filer.

Tilpassete feilmeldinger for Error 401, 403 og 404

Det er ganske vanlig at en webserver har aliaser og virtuelle verter. Derfor kan det i noen tilfeller være bedre at webserveren håndterer feilmeldinger heller enn cms-et. På den måten blir det like feilmeldinger uansett hvilket alias eller virtuell vert som har forårsaket feilen.

Derfor kan vi bruke en kombinasjon av Apaches ErrorDocument handler og cmsms sin Side-innhold slik at vi får en konsistent visning av feilmeldinger. Det er bare feilmeldingene med kodene 401, 403 og 404 som er satt opp, men denne prosessen kan lett brukes også for andre feilmeldingskoder. I et miljø med delt vert, _burde_ også apache konfigurasjonen kunne legges til i en .htaccess-fil i stedet for direkte i apache.conf.

Denne prosessen er testet på en installasjon av CentOS 5 x86_64, og da dette ble skrevet, var CentOS 5 i versjon 5.1. Apache var ikke konfigurert med virtuelle verter, men den hadde flere aliaser.

1.) Første steg er å sette opp PrettyURLs ved å bruke mod_rewrite slik det er beskrevet i CMSMS OSS. Du må skrive følgende i cmsms sin config.php-fil:

$config['assume_mod_rewrite'] = true;
$config['page_extension'] = '.html';
$config['internal_pretty_urls'] = false;
$config['use_hierarchy'] = true;  //optional

2.) Så må du redigere apache.conf og skrive følgende:

<Directory "/path/to/your/cmsms">
        Options -Indexes +FollowSymLinks
        Order allow,deny
        Allow from All
        RewriteEngine on

        # 301 Redirect all requests that don't contain a dot or trailing slash to
        # include a trailing slash
        RewriteCond %{REQUEST_URI} !/$
        RewriteCond %{REQUEST_URI} !\.
        RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

        # Rewrites urls in the form of /parent/child/
        # but only rewrites if the requested URL is not a file or directory
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</Directory>

NB: CMSms-mappen ble definert som DocumentRoot, slik at andre relaterte direktiver i apache.conf ble oppdatert i henhold til dette.

I apache.conf må du også definere sidene for feilmeldingene:

ErrorDocument 401 /error-401.html
ErrorDocument 403 /error-403.html
ErrorDocument 404 /error-404.html

3.) Lag sidene for feilmeldinger i CMSMS Admin panelet:

F.eks.

Error 401 Feilside

 Main tab
   content type:	Content
   title:		Error 401
   menu text:		Error 401
   parent:		None
   template:		Din standard-mal
   content:		Det du vil at feilmeldingen skal vise
 Options tab
   Active: avkrysset
   Show in Menu: ikke avkrysset
   Cachable: ikke avkrysset
   Page Alias: error-401


De andre feilmeldingssidene lager du på samme måte.


4.) Start Apache på nytt og test.


Hvis PrettyURLs er aktivert og du bruker mod_rewrite, så skal du nå kunne finne http://www.yourdomain.com/error-401.html. Apache kan nå sende alle 401-feil til denne siden, uansett alias eller virtuell vert.

Vær oppmerksom på at dette ikke var testet i et delt vertsmiljø.

En privat side med nedlastinger for innloggete brukere

Du trenger tre moduler dersom du vil ha en privat side som inneholder nedlastbare dokumenter for innloggete brukere. De tre modulene er Front End Users, Custom Content og Uploads. Du bør også lage en mappe, f.eks. /uploads/privatedocs til å lagre dokumentene og plassere en .htaccess fil i mappen som sier ganske enkelt "Deny from all".

På siden (eller malen for siden) som skal vise listen over dokumentene, må du skrive noe sånt som dette:

{ if $ccuser->loggedin() }
	{cms_module module="Uploads" category="mycategory" mode="summary" sortorder="date_desc" template="mytemplate"}
{else}
	<p>Dette er bare tilgjengelig for innloggete brukere.</p>
	{cms_module module=FrontEndUsers form="login" nocaptcha="1" returnto="$page_alias"}
{/if}

"if $ccuser->loggedin()" sjekker om en bruker er logget inn. Det er også andre valg som for eksempel lar deg sjekke om brukeren er medlem av en spesiell gruppe. Les dokumentasjonen for modulen for mer informasjon.

"{cms_module module="Uploads" osv. viser en liste over dokumenter som er tilgjengelige for nedlasting. Les dokumentasjonen for mer informasjon om parametre for denne funksjonen.

Nå er det bare innloggete brukere som kan se listen over filer, og .htaccess hindrer at personer forsøker å gå direkte til dokumentmappen via nettleseren.

Hvis du ønsker at autoriserte brukere også skal kunne laste opp dokumenter, kan du legge til en side som inneholder noe slikt:

{ if $ccuser->loggedin() }
	{cms_module module="Uploads" category="mycategory" mode="upload" noauthor="1" nocaptcha="1"}
{else}
	<p>Dette er bare tilgjengelig for innloggete brukere.</p>
	{cms_module module=FrontEndUsers form="login" nocaptcha="1" returnto="$page_alias"}
{/if}

User Handbook/Tips And Tricks/no

From CMSMS

Arvixe - A CMSMS Partner