CMS - Der Dirigent » Support » Anwenderforum

Neue Umfrage | neues Thema | Antworten

DediFlex um {target} erweitern

« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken

roberto
Geschrieben am: 12. Feb 2004 - 10:15


Unicoder


Gruppe: Tester
Beiträge: 1853
Mitgliedsnummer: 343
Mitglied seit: 16. Oct 2003


Für alle, die es auch gestört hat, einen Link auf ein Download-File mit {fileurl} nur ohne Angabe eines Target machen zu können: Man konnte zwar ein Target auswählen, das hatte aber keine Auswirkungen auf den generierten HTML-Code.
Damit das funktioniert, habe ich die Frontendausgabe des Moduls DeDiFlex so erweitert:


mehr CODE
  // {target} ersetzen
  $mod['target'] = (int) $mod['start'];
  while ($mod['tpl_pos'] = strpos (' '.$mod['output'], '{target}')) {
   $mod['tmp'] = <dedi:mod type="file" id="$mod['target']" mode="target" addslashes="true">;
          $mod['output'] = substr_replace ($mod['output'], $mod['tmp'], $mod['tpl_pos']-1, 8);
  $mod['target'] = $mod['target']+1;
  }

Das in Zeile 184 einfügen.
Im Template kann man dann {target} benutzen, beispielsweise:


mehr CODE

<div class="titlelink"><a href="{fileurl}" target="{target}"><img src="cms/img/but_download.gif" border="0">{filedesc}</a>{editfile}</div>
<div style="margin-left:20px;margin-bottom:10px">{filename} ({filesize})</div>


Ich mache das so, weil beispielsweise bei PDFs u.U. das PDF im selben Browserfenster geöffnet wird (was ich nicht so toll finde).

Grüße

Roberto

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
oberbilker
Geschrieben am: 14. Feb 2005 - 09:14


Unregistered








hallo roberto,
genau das habe ich gebraucht, eben aus den gleichen gründen wie du. leider habe ich ein wenig schwierigkeiten deinen code einzufügen, da bei mir die zeile 184 nicht wirklich wie die passende aussieht:
zeilen 180-200

mehr CODE
$db->query($sql);
$sql = "UPDATE ".$dedi_db['content']."
         SET typenumber=typenumber+100
                WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."'
                AND container='".$dedi_mod['container']['id']."'
                AND typenumber BETWEEN ".$mod['sort']." AND ".$mod['sort2']."";
$db->query($sql);
$sql = "UPDATE ".$dedi_db['content']."
         SET typenumber=typenumber+".$mod['sort']."
                WHERE idsidelang='".$con_side[$idcatside]['idsidelang']."'
                AND container='".$dedi_mod['container']['id']."'
                AND typenumber BETWEEN 0 AND 100";
$db->query($sql);

// Cache löschen
clear_cache();

// Seite neu laden
header ('Status: 302 Moved Temporarily');
header ('Location:'.$con_side[$idcatside]['link']);
exit;

kannst du mir da bitte weiterhelfen?

mal eine andere frage, es ist sehr gut, dass du an dieser stelle dfas modul funktioneller machst, aber wird das dann auch vom eigentlichen autor beachtet? sinnvoller wäre ja schon, wenn derjenige den code auch in der orginal-download-datei ändert.

greetz, sebastian
Top
roberto
Geschrieben am: 14. Feb 2005 - 11:18


Unicoder


Gruppe: Tester
Beiträge: 1853
Mitgliedsnummer: 343
Mitglied seit: 16. Oct 2003


Du holst hier aber einen hornalten Post hoch. Die Anpassung bezog sich auf das Modul DeDi-Flex Version 0.58.
Aktuell ist aber die Version 0.91. Da (und auch bei den Versionen 0.68 und 0.69) stimmt die Zeilennummer natürlich nicht mehr. Auch sonst hat sich der Code ja geändert.
Hoffentlich hast Du nichts dagegen, die Anpassung für die Version 0.91 zu posten - auch wenn ich mich nicht mit dem Entwickler des Moduls abgesprochen habe biggrin.gif .
Die Zeilen 335 - 430 der Frontend-Ausgabe im Modul durch folgenden Code ersetzen:

mehr CODE
  // Steuerungsausgabe
  if ($dedi_mod['modul']['id'] == '1' && ($dedi_side['edit'] || $dedi_side['edit_all'])) {
   echo '<div align="right">';   // Elemente ersetzen
  $mod['elements'] = array('text','textarea','wysiwyg','wysiwyg2','sourcecode','image','imagethumb','imageurl',
     'imagewidth','imageheight','link','linkurl','linktarget','linkdesc','editlink','fileurl', 'filetarget', 'editfile','filedesc','filename','filesize');
  foreach ($mod['elements'] as $mod['element']) $mod[$mod['element']] = (int) $mod['start'];
  while(preg_match("/\{(".implode('|',$mod['elements']).")\}/",$mod['output'],$match)){
   switch($match[1]) {
    case "text":
     $mod['tmp'] = <dedi:mod type="text" id="$mod['text']" addslashes="true">;
     $mod['text']++;
     break;
    case "textarea":
     $test = 'textarea';
     $mod['tmp'] = <dedi:mod type="textarea" id="$mod['textarea']" title="$test" addslashes="true">;
     $mod['textarea']++;
     break;
    case "wysiwyg":
     $mod['tmp'] = <dedi:mod type="wysiwyg" id="$mod['wysiwyg']" addslashes="true">;
     $mod['wysiwyg']++;
     break;
    case "wysiwyg2":
     $mod['tmp'] = <dedi:mod type="wysiwyg2" id="$mod['wysiwyg2']" addslashes="true">;
     $mod['wysiwyg2']++;
     break;
    case "sourcecode":
     $mod['tmp'] = <dedi:mod type="sourcecode" id="$mod['sourcecode']" addslashes="true">;
     $mod['sourcecode']++;
     break;
    case "image":
     $mod['tmp'] = <dedi:mod type="image" id="$mod['image']" addslashes="true">;
     $mod['image']++;
     break;
    case "imagethumb":
     $mod['tmp'] = <dedi:mod type="image" id="$mod['imagethumb']" mode="thumb" addslashes="true">;
     $mod['imagethumb']++;
     break;
    case "imageurl":
     $mod['tmp'] = <dedi:mod type="image" id="$mod['imageurl']" mode="url" addslashes="true">;
     $mod['imageurl']++;
     break;
    case "imagewidth":
     $mod['tmp'] = <dedi:mod type="image" id="$mod['imagewidth']" mode="width" addslashes="true">;
     $mod['imagewidth']++;
     break;
    case "imageheight":
     $mod['tmp'] = <dedi:mod type="image" id="$mod['imageheight']" mode="height" addslashes="true">;
     $mod['imageheight']++;
     break;
    case "link":
     $mod['tmp'] = <dedi:mod type="link" id="$mod['link']" addslashes="true">;
     $mod['link']++;
     break;
    case "linkurl":
     $mod['tmp'] = <dedi:mod type="link" id="$mod['linkurl']" mode="url" addslashes="true">;
     $mod['linkurl']++;
     break;
    case "linkdesc":
     $mod['tmp'] = <dedi:mod type="link" id="$mod['linkdesc']" mode="desc" addslashes="true">;
     $mod['linkdesc']++;
     break;
    case "linktarget":
     $mod['tmp'] = <dedi:mod type="link" id="$mod['linktarget']" mode="target" addslashes="true">;
     $mod['linktarget']++;
     break;
    case "editlink":
     $mod['tmp'] = <dedi:mod type="link" id="$mod['editlink']" mode="editbutton" addslashes="true">;
     $mod['editlink']++;
     break;
    case "fileurl":
     $mod['tmp'] = <dedi:mod type="file" id="$mod['fileurl']" mode="url" addslashes="true">;
     $mod['fileurl']++;
     break;
    case "filetarget":
     $mod['tmp'] = <dedi:mod type="file" id="$mod['filetarget']" mode="target" addslashes="true">;
     $mod['filetarget']++;
     break;
    case "editfile":
     $mod['tmp'] = <dedi:mod type="file" id="$mod['editfile']" mode="editbutton" addslashes="true">;
     $mod['editfile']++;
     break;
    case "filedesc":
     $mod['tmp'] = <dedi:mod type="file" id="$mod['filedesc']" mode="desc" addslashes="true">;
     $mod['filedesc']++;
     break;
    case "filename":
     $mod['tmp'] = <dedi:mod type="file" id="$mod['filename']" mode="url" addslashes="true">;
     $mod['tmp'] = substr(strrchr($mod['tmp'], '/'), 1);
     $mod['filename']++;
     break;
    case "filesize":
     $mod['tmp'] = <dedi:mod type="file" id="$mod['filesize']" mode="path" addslashes="true">;
     if (is_file($mod['tmp'])) {
      $mod['tmp'] = filesize($mod['tmp']);
      if ($mod['tmp'] > 1048576) $mod['tmp'] = sprintf( "%01.2f", $mod['tmp']/1048576).' mByte';
      else $mod['tmp'] = ($mod['tmp'] > 1024) ? sprintf( "%01.2f", $mod['tmp']/1024).' kByte': $mod['tmp'].' Byte';
     } else $mod['tmp'] = '';
     $mod['filesize']++;
     break;
   }
   $mod['output'] = preg_replace("/".$match[0]."/",$mod['tmp'],$mod['output'],1);
  }

Für das Target musst Du im Template dann {filetarget} verwenden. Habe ich nur oberflächlich getestet. Sollte so aber funktionieren.

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
oberbilker
Geschrieben am: 14. Feb 2005 - 11:38


Unregistered








QUOTE
Du holst hier aber einen hornalten Post hoch.


oh man, du hast recht, 12.02.04 statt 05. undich hab schon gedacht, na so ein glück aber auch, dass ich den brand neuen thread (kein eintag vor mir) genau passend entdeckt habe. laugh.gif
ich benutze ja auch die aktuelle 0.91 version. aber zb. eine gelinkte pdf öffnet sich im selben frame, statt im neuen fenster, wie ausgewählt. also problemstellung wie gehabt.
ich teste gleich mal.
danke schon mal, ich hoffe ich hab dich nicht zu sehr erschrocken... blink.gif

greetz, seb
Top
Eppi
Geschrieben am: 14. Feb 2005 - 13:01


.....................noname


Gruppe: Admin
Beiträge: 8077
Mitgliedsnummer: 1
Mitglied seit: 23. Mar 2003


trotzdem find ich es klasse, das du dir die mühe machst nach schon bestehenden beiträgen zu suchen und in diesen weiterzuschreiben!

gruß, paul

--------------------

"Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
Top   
oberbilker
Geschrieben am: 15. Feb 2005 - 08:51


Unregistered








danke, läuft nu so wie soll smile.gif

bis in einem jahr...

greetz, seb*
Top

Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

5 Antworten seit 12. Feb 2004 - 10:15

Thema abonnieren | Thema versenden | Thema drucken


Neue Umfrage | neues Thema

Home | Das Projekt | Download | Entwicklung | Dokumentation | Forum | Impressum