Seite 1 von 1

linkmodul erweitert gesucht

Verfasst: Mi 28. Dez 2005, 22:10
von rezeptionist
Hallo Community.
Ich suche ein Linkmodul bei dem ich zb eine pdf datei aus der Dateiverwaltung auswähle und danach zum Dateityp passend der Richtige icon davorgesetzt wird !

geht das Überhaupt ?

Ansatz wäre dieses Linkmodul

Code: Alles auswählen

<?php 

if ("CMS_LINKDESCR[1]" != "") {
echo '<div id="downloads">';
echo "<b>Download:</b> <a href=\"CMS_LINK[1]\" target=\"CMS_LINKTARGET[1]\">CMS_LINKDESCR[1]</a>";
echo '    </div>';
}

?>
greets

Verfasst: Mi 28. Dez 2005, 22:32
von i-fekt
Du könntest ja nach Dateiendung ein Icon ausgeben. Dazu schaust du mit einem substring, ob die letzten vier Zeichen ".pdf" sind und dann kannst du reagieren.

Code: Alles auswählen

$der_link = "CMS_LINK[1]";
$wasbinich = substr("$der_link", -1, 4);

if( $wasbbinich==".pdf" ) {
  echo "Ich bin ein Link zu einem PDF.";
}
Ungetestet.

Verfasst: Do 29. Dez 2005, 00:24
von rezeptionist
danke i-fekt das war der schubser in die richtige richtung

habe es jetzt mal nur mit 2 Typen gemacht (jpg und gif)

Code: Alles auswählen

<?php

$fileende = 'CMS_LINK[1]';
$label = substr("$fileende", -4, 4);

if ($label == ".jpg")
  {
    echo "<img src=\"images/jepeg.jpg\" alt=\"CMS_LINKDESCR[1]\" width=\"9\" height=\"9\" /><a href=\"CMS_LINK[1]\" target=\"CMS_LINKTARGET[1]\" title=\"CMS_LINKDESCR[1]\">CMS_LINKDESCR[1]</a>";
  }
  else
  {
if ($label == ".gif")
  {
    echo "<img src=\"images/gif.jpg\" alt=\"CMS_LINKDESCR[1]\" width=\"9\" height=\"9\" /><a href=\"CMS_LINK[1]\" target=\"CMS_LINKTARGET[1]\" title=\"CMS_LINKDESCR[1]\">CMS_LINKDESCR[1]</a>";
  }
}
?> 
ich denke es geht auch eleganter but it works

greets

Verfasst: Do 29. Dez 2005, 14:02
von rezeptionist
hm der code war wohl nicht der bringer da gabs dann leicht durcheinander im Backend

hier mal einer ohne durcheinander

Code: Alles auswählen


<?php
$filebesc = "CMS_LINKDESCR[1]";
$fileende = 'CMS_LINK[1]';
$filepfad = 'CMS_LINK[1]';
$desjpg = "<img src=\"images/bullets/jpg.gif\" />";
$desgif = "<img src=\"images/bullets/gif.gif\" />";

$label = substr("$fileende", -4, 4);

if ($label == ".jpg")
  {
    echo "$desjpg <a href=\"$filepfad\" width=\"16px\" height=\"16px\" >$filebesc</a>";
  }
  else
  {
if ($label == ".gif")
  {
    echo "$desgif <a href=\"$filepfad\" width=\"16px\" height=\"16px\" >$filebesc</a>";
  }
  
}
?>  
Wenn ich jetzt noch ne idee hätte wie ich das hinbekomme das ich das mehrfach einsetzen könnte

greets

Verfasst: Do 29. Dez 2005, 15:07
von HerrB
a) statt CMS_LINKDESCR[1] etwas mit CMS_LINKDESCR[$container] versuchen (kann sein, dass man das noch etwas anders schreiben muss, gucke ich mir heute abend mal an.

b) Allgemein: Statt if ... then... else die switch-Anweisung verwenden. Ich bastele Dir da auch gerne was.

Gruß
HerrB

Verfasst: Do 29. Dez 2005, 15:09
von rezeptionist
ja gerne

werde es syncron dazu auch mal weiterversuchen soweit es die Zeit zulässt damit ich es auch verstehe :wink:

greets and thanks

Verfasst: Fr 30. Dez 2005, 10:36
von rezeptionist
ok das mit dem switch war ja noch pille palle (hab sogar ich hinbekommen aber das mit der variablen im CMS_LINKDESCR[$zb] habe jetzt echt alles versucht aber es haut nicht hin das er mir die linkdescr hochzählt.


greets

Verfasst: Fr 30. Dez 2005, 11:58
von stese
keine ahnung ob das so geht wie HerrB sagt, daher hier einfachkeitshalber eingebaut.

die ganze switch geschichte kannst du dir auch sparen indem du die dateiendung nimmst und dem link eine class mit der dateiendung gibst. über css kannst du dann je nach angegebener class ein bild vor den link setzen oder nicht.

ausschauen würde das ganze z.b. so:

Code: Alles auswählen

<?php

if ("CMS_LINKDESCR[$container]" != "") {
   $str_linkclass="";
   if ("CMS_LINK[$container]" != "") {
      $arr_fileparts = pathinfo("CMS_LINK[$container]");
      if (isset($arr_fileparts["extension"]) && !empty($arr_fileparts["extension"]) && strlen(trim($arr_fileparts["extension"])) > 0) {
         $str_linkclass=' class="' . trim($arr_fileparts["extension"]) . '"';
      }
   }
   
echo '<div id="downloads">';
echo "<b>Download:</b> <a href=\"CMS_LINK[$container]\" target=\"CMS_LINKTARGET[$container]\"${str_linkclass}>CMS_LINKDESCR[$container]</a>";
echo '    </div>';
}

?>
ergeben würde das ganze sowas:

Code: Alles auswählen

<b>Download:</b> <a href="upload/datei.pdf" target="_blank" class="pdf">Beschreibung</a>
danach fügst du in deinem css folgende beispielhafte zeile hinzu um ein pdf symbol einer pdf datei zuzuweisen:

Code: Alles auswählen

#download a.pdf {
padding-left:20px;
background:url(../images/ico_pdf.gif) no-repeat top left;
}

Verfasst: Fr 30. Dez 2005, 12:27
von rezeptionist
Danke Stese,
aber leider sieht mein link so aus

Code: Alles auswählen

<div id="downloads"><b>Download:</b><a href="CMS_LINK[]" target="CMS_LINKTARGET[]">CMS_LINKDESCR[]</a></div>
egal welchen wert ich $container gebe



greets

Verfasst: Fr 30. Dez 2005, 12:40
von HerrB
Ich habe ja gesagt, dass ich da nochmal nachsehen muss - es war wohl eine andere Variable oder ein anderer Aufbau. Leider bin ich da gestern abend nicht zu gekommen, ich gucke es mir heute an. Versprochen.

Gruß
HerrB

Verfasst: Fr 30. Dez 2005, 12:46
von rezeptionist
kein problem dachte mir vielleicht bekomme ich es ja trotzdem hin um dich zu entlasten grins :wink:

greets

Verfasst: Sa 31. Dez 2005, 18:37
von HerrB
Die Variable heißt $cCurrentContainer.

Bitte mal diesen Code testen:

Code: Alles auswählen

<?php
if ("CMS_LINKDESCR[$cCurrentContainer]" != "") {
   $str_linkclass="";
   if ("CMS_LINK[$cCurrentContainer]" != "") {
      $arr_fileparts = pathinfo("CMS_LINK[$cCurrentContainer]");
      if (isset($arr_fileparts["extension"]) && !empty($arr_fileparts["extension"]) && strlen(trim($arr_fileparts["extension"])) > 0) {
         $str_linkclass=' class="' . trim($arr_fileparts["extension"]) . '"';
      }
   }
   
   echo '<div id="downloads">';
   echo "<b>Download:</b> <a href=\"CMS_LINK[$cCurrentContainer]\" target=\"CMS_LINKTARGET[$cCurrentContainer]\"${str_linkclass}>CMS_LINKDESCR[$cCurrentContainer]</a>";
   echo '</div>';
}

?>
Gruß
HerrB

Verfasst: Sa 31. Dez 2005, 18:49
von rezeptionist
ne leider gehts auch nicht

bekomme als ausgabe im frontend wie im backend

Code: Alles auswählen

CMS_LINKDESCR[72]
beim rollover wird folgender link angezeigt

Code: Alles auswählen

CMS_LINK[72]

schade


greets

Verfasst: Sa 31. Dez 2005, 22:51
von stese
ja habe es gerade getestet - das liegt daran, dass die zahl nicht schon im modul drinnen steht sondern erst bei der ausgabe generiert wird ... momentan fällt mir keine schnelle lösung für das CMS_LINK etc problem ein ... also verallgemeinern kannst du das modul so schnell nicht - ausser HerrB der mehr ahnung vom contenido core hat, weiss eine lösung wie man es anstellt, dass "CMS_LINK[72]" dann schon im modul steht, da die variablen durch parsen des php codes ersetzt werden und nicht erst durch parsen des ausgabecodes (wie soll das auch funktionieren)

hmmm

Verfasst: Sa 31. Dez 2005, 22:53
von rezeptionist
hm daran hab ich auch schon gedacht da soweit mein verständnis ja zuerst der contype abgearbeitet wird und dann erst der code von daher denke ich das man es evtl von der con_type seite her besser bewältigen könnte hm aber mal abwarten vielleicht fällt HerrB ja noch was ein

hab grad beim rumstöbern etwas gefunden was vielleicht interessant sein könnte bzw eine alternative

http://www.contenido.org/forum/viewtopi ... ght=cmsimg

http://contenido.de/forum/viewtopic.php ... e&start=15




greets