linkmodul erweitert gesucht

Gesperrt
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

linkmodul erweitert gesucht

Beitrag 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
greets
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag 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.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag 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;
}
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

kein problem dachte mir vielleicht bekomme ich es ja trotzdem hin um dich zu entlasten grins :wink:

greets
greets
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag 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
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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
greets
Gesperrt