Nu er jeg efterhånden blevet træt af at skrive de samme dumme html js koder igen og igen for at generere et link evt. med et billede, knap eller tekst.
Har her til aften groft skrevet en lille funktion som jeg godt kunne tænke mig at få en lille vurdering af.
Her kommer koden først
function btn($string) {
# Åbner tags
$tag['href'] = form_open_tag("href",$string); // link ex. href='nyside.php?evt_get_var=test&osv'
$tag['post'] = form_open_tag("post",$string); // postdata ex. post='id=test&art=ny&osv'
$tag['link'] = form_open_tag("link",$string); // Bruges hvis der skal udskrives et standard tekst link
$tag['icon'] = form_open_tag("icon",$string); // ikon ex. icon='edit.png:15:15' // fil:højde:bredde
$tag['cf'] = form_open_tag("cf",$string); // Confirm ex. cf='Er du sikker på at du vil trykke?'
$tag['submit'] = form_open_tag("submit",$string); // Bruges hvis der skal insættes en knap
$tag['form_name'] = form_open_tag("form_name",$string); // Bruges hvis en eksisterende form skal submittes
$tag['name'] = form_open_tag("name",$string); // Sætter navnet på en evt. form
$tag['title'] = form_open_tag("title",$string,0); // title tag
$tag['id'] = form_open_tag("id",$string,0); // id tag
$tag['class'] = form_open_tag("class",$string,0); // class tag
# laver form navn hvis ikke angivet
if(!isset($tag['name'])) $tag['name'] = microtime(true);
# Laver linket
if(substr($tag['href'],0,1)=="?" OR !isset($tag['href'])) $tag['href'] = $_SERVER['PHP_SELF'] . $tag['href'];
# Laver JS confirms
if(isset($tag['post']) OR isset($tag['form_name'])) {
$js_href = "document['".$tag['name']."'].submit();";
}
else $js_href = "parent.location='".$tag['href']."';";
if(isset($tag['cf'])) $js = "onclick=\"if(confirm('".$tag['cf']."')){$js_href}\"";
else $js = "onclick=\"$js_href\"";
# Henter icon hvis dette er sat
if(isset($tag['icon'])) {
$icon = explode(":",$tag['icon']);
$icon['h'] = $icon[1];
$icon['w'] = $icon[2];
$icon['file'] = $icon[0];
$icon = icon($icon['file'],$icon['h'],$icon['w']);
}
$shared_tags = $tag['title']." ".$tag['class']." ".$tag['id']." ".$js;
# Generere koden til outputtet
if(!isset($tag['post'])) {
# Generere link
if(isset($tag['icon'])) $out = "<a href=\"#\" $shared_tags>$icon</a>\n";
elseif(isset($tag['submit'])) $out = "<input type=\"button\" value=\"".$tag['submit']."\" $shared_tags>\n";
elseif(isset($tag['link'])) $out = "<a href=\"#\" $shared_tags>". $tag['link'] ."</a>\n";
} else {
# Generere en inline form
$out .= "\n<form name='".$tag['name']."' style='display: inline;' method='post' action='".$tag['href']."'>\n";
$posts = explode("&",$tag['post']);
foreach($posts as $post) {
$p = explode("=",$post);
$out .= " <input type='hidden' name='$p[0]' value='$p[1]'>\n";
}
if(isset($tag['icon'])) $out .= " <a href='#' $shared_tags>$icon</a>\n";
elseif(isset($tag['submit'])) $out .= " <input type='button' value='".$tag['submit']."' $shared_tags>\n";
elseif(isset($tag['link'])) $out .= " <a href='#' $shared_tags>".$tag['link']."</a>\n";
$out .= "</form>\n";
}
#return preg_replace('/\s+/',' ',$out);
return $out;
}
function form_open_tag($tag,$input,$return=1){
preg_match("|".$tag."='(.*?)'|si",$input,$out);
return $out[$return];
}
function icon($name,$height=15,$width=0) {
global $wwwroot;
$icondir = $wwwroot."/icons"; // http://www.dinURL.dk/mappe/til/ikoner
if(!$width==0) $insWidth = " width='$width'";
$insHeight = " height='15'";
return "<img$insHeight$insWidth src='$icondir/$name' border='0'>";
}
Bemærk følgende
$icondir = $wwwroot."/icons"; // http://www.dinURL.dk/mappe/til/ikoner
API kan ses øverst i btn() funktionen
her er et par eksempel kald
echo btn("post='id=test&id1=test2' txt='Virker' cf='confirm text' icon='delete.png:15' title='test'");
echo btn("class='link' icon='edit.png:20' cf='confirm text' title='test'");
echo "<br>";
echo btn("form_name='test' link='virker'");
Håber der er nogle der vil komme med noget feedback til funktionen. Vil gerne have flere input til evt. forbedringer inden jeg implementere funktionen på mit site.
Indlæg senest redigeret d. 18.06.2009 22:19 af Bruger #2345