NAVIGATION
This is an old revision of the document!
Wird der Multimedia-CP verwendet um eine intern geladene (Dateizentrale) Flash-SWF-Datei anzuzeigen, wird die Datei im Frontend nicht angezeigt.
Der Grund für dieses Verhalten ist der Schutz des Verzeichnisses ”/filearchive/” durch eine .htaccess Datei.
Es gibt zwei Lösungen für dieses Problem:
1. Die .htaccess Datei deaktivieren
2. Script: Kopieren der gewünschten Datei in ein nicht geschütztes Verzeichnis und bereitstellen der Datei aus diesem Verzeichnis heraus
Ich spreche hier die zweite Methode an.
Während des CP Aufrufs sucht das Script nach der gewünschten Datei im nicht geschützten Verzeichnis. Wenn diese Datei dort nicht existiert, wird eine Kopie der Datei aus ”/filearchive/” in ”/content/tmp/” angelegt und der HTML Quelltext an den neuen Verzeichnisnamen angepasst.
<note> Wenn die Originaldatei in ”/filearchive/” gelöscht wird, bleibt die Kopie in ”/content/tmp/” erhalten !!</note>
Docu: –
Forum: Flash swf file doesn't display in multimedia content part
Autor: K.Heermann (flip-flop) http://planmatrix.de
CMS Version: >= 1.4x
Version: V1.0 (07.09.2010)
Bedingung: → /config/phpwcms/conf.inc.php
Für eine bessere Identifizierung und Laufzeitoptimierung muss <!--COPY_SWF//--> in das Template eingesetzt werden.
Datei: template/inc_cntpart/multimedia/copy_swf.tmpl
[MULTIMEDIA] <!--COPY_SWF//--> <div class="multimedia"> {MULTIMEDIA} </div> [/MULTIMEDIA]
Datei: /template/inc_script/frontend_init/cp_trig_multimedia_copy_swf.php
cp_trig_multimedia_copy_swf.php
<?php // ------------------------------------------------------------------------------------------- // obligate check for phpwcms constants if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");} // ------------------------------------------------------------------------------------------- /** * ***************************************************************************** * SWF file: the files in the directory /filearchive/ are protected by an htaccess file * If you want to give up this protection, this script can be used. * Copy SWF file from folder /filearchive/ into the folder /content/tmp/ * V1.0 07.09.10 K.Heermann http://planmatrix.de * * ---- Template ------------------------------------------ * Please insert <!--COPY_SWF//--> into your multimedia * template for a better identification of this CP. * * folder: /template/inc_cntpart/multimedia/ * * [MULTIMEDIA] <!--COPY_SWF//--> <div class="multimedia"> {MULTIMEDIA} </div> [/MULTIMEDIA] * * ***************************************************************************** */ function CP_MULTIMEDIA_COPY_SWF($text, & $data) { // CP type multimedia = 9 if( $data['acontent_type'] == 9 AND strpos($text, '<!--COPY_SWF//-->') ) { // Is there any swf file in source? if (preg_match('@value="'.PHPWCMS_FILES.'(.*?)\.swf"@i', $text, $filename)) { // Yes it is and we have catched the filename if ($filename[1] ) { $source = PHPWCMS_FILES.$filename[1].'.swf'; // Source dir and filename $target = 'content/tmp/'.$filename[1].'.swf'; // Destination dir and filename $error = false; // file already exists in destination dir? if (!is_file ($target)) { // No, please copy into if (!copy($source, $target)) { $error = true; } } // Change folder in html source $text = preg_replace('@="'.$source.'"@i','="'.$target.'"',$text); } } if ($error) str_replace('<!--COPY_SWF//-->','Error while copying the file!!<br>',$text); else str_replace('<!--COPY_SWF//-->','',$text); } return $text; } // ---- END function register_cp_trigger('CP_MULTIMEDIA_COPY_SWF'); ?>