Helper na tvorbu externích odkazů
- knyttl
- Člen | 196
Asi by bylo fajn mít helper na Tvorbu odkazů, například něco ve stylu:
<?php
$odkaz = "http://www.root.cz/clanky/velky-test-php-frameworku-zend-nette-php-a-ror";
?>
Potom {$odkaz|website} v šabloně by vytvořilo:
<a href=„http://www.root.cz/clanky/velky-test-php-frameworku-zend-nette-php-a-ror“ target=„_blank“>www.root.cz/…nette-php-a-ror</a>
Jde mi hlavně o to rozumné zkrácení URL. Zatím můj nástřel (funkční):
<?php
public static function website( $url ) {
if( preg_match( "/^[ftphs]{3,5}:\/\/(.+?)[\/]?$/", $url, $regs ) )
$url = $regs[1];
$visible = $url;
if( strlen( $visible ) > 30 ) {
preg_match( "/^(.*?)\/.*(.{15})$/", $url, $regs );
$visible = $regs[1]."/…".$regs[2];
}
return '<a href="http://'.$url.'" target="_blank">'.$visible.'</a>';
}
}
?>
Ano, to matchování url je příliš prosté, to se určitě musí zlepšit. Pro moje účely ale zatím postačovalo.
Editoval knyttr (26. 8. 2010 20:04)
- westrem
- Člen | 398
Najme mi pride trochu proti logike, ze v premennej mas „iba“ odkaz ale helper generuje cely HTML tag, ktory nejak nemas ako v tom helperi moznost pozmenit a ak by si to aj chcel bolo by to uz nie uplne koser.
Dalsia vec je napr. to, ze taky target="_blank"
nie je validny
pod XHTML 1.0 strict.
To skratenie URL ide pekne spravit aj kombinaciou truncate a substr na koniec retazca.
V konecnom dosledku preto suhlasim s redhead-om