CMS - Der Dirigent » Entwicklung » DeDi-Entwicklung
Neue Umfrage | neues Thema | Antworten
Seiten: (2) [1] 2 ( Zum ersten neuen Beitrag )
Tipps & Tricks, code-snippets zur Modulentwicklung
« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken
kfo | Geschrieben am: 27. Jul 2003 - 22:34 |
dedi-ritter Gruppe: Members Beiträge: 384 Mitgliedsnummer: 200 Mitglied seit: 07. Jul 2003 |
nachfolgend code snippets: mehr CODE // pfad zum cms-image-ordner im projektverzeichnis // i.e.: /projekt01/cms/img $pfad = $cfg_client['htmlpath'].'cms/img/'; oder mehr CODE // url zur derzeit angezeigten seite: $con_side[$idcatside]['link'] mehr CODE Hier die Erklärung wie man Funktionen innerhalb von Modulen kapselt. Wenn man das nicht macht kann ein Modul mit Funktionen nicht mehrfach abgearbeitet werden! Dabei wird die Funktion am Anfang des Moduls eingebunden und mit: if (!function_exists('FunktionsName')) { function FunktionsName () { } } mehr CODE Modul mehrfach verwendbar machen: dies wird möglich wenn Ihr die Parameter, die Ihr übergeben müßt innerhalb eines Moduls so anlegt ...&modContainernummer_Modulverdopplungsnummer_Aktion=Parameter&... z.B. ...'&'.$dedi_mod['key'].'Aktion=Parameter&'... Auslesen könnt Ihr es dann so: if(${$dedi_mod['key'].'Aktion'} == 'Parameter') { } mehr CODE Bearbeiten von Content-Typen: Link: $con_side[$idcatside]['link'].'&action=edit&idcatside='.$idcatside.'&content=1.1.1-1,3-1' content="Container"."Verdopplungsnummer"."Typ"-"Typnummer","Typ"-"Typnummer";"Container"."Verdopplungsnummer"."Typ"-"Typnummer","Typ"-"Typnummer"; z.b. content=1.1.2-1,2-2;1.2.2-1,2-2 1.1.2-1 = 1. Container, 1. Kopie, 1.HTML-Eintrag also im Modul <dedi:mod type="wysiwyg" id="1"> ,2-2 = 1. HTML-Eintrag also im Modul <dedi:mod type="wysiwyg" id="2"> 1.2.2-1,2-2 = genau das gleiche, nur daß das Modul gedoppelt wurde und jetzt der 2. Eintrag bearbeitet wird mehr CODE Browserinformationen auslesen: (Nur im Backend z.b. für Plugin verwendbar.) $tmp_sniffer = explode(',', $sid_sniffer); Versionnummer $tmp_sniffer['0'] = major $tmp_sniffer['1'] = minor:4 Browser Version $tmp_sniffer['2'] = nav $tmp_sniffer['3'] = nav2 $tmp_sniffer['4'] = nav3 $tmp_sniffer['5'] = nav4 $tmp_sniffer['6'] = nav4up $tmp_sniffer['7'] = nav6 $tmp_sniffer['8'] = nav6up $tmp_sniffer['9'] = gecko $tmp_sniffer['10'] = navonly $tmp_sniffer['11'] = ie $tmp_sniffer['12'] = ie3 $tmp_sniffer['13'] = ie4 $tmp_sniffer['14'] = ie4up $tmp_sniffer['15'] = ie5 $tmp_sniffer['16'] = ie5up $tmp_sniffer['17'] = ie5_5 $tmp_sniffer['18'] = ie5_5up $tmp_sniffer['19'] = ie6 $tmp_sniffer['20'] = ie6up $tmp_sniffer['21'] = aol $tmp_sniffer['22'] = aol3 $tmp_sniffer['23'] = aol4 $tmp_sniffer['24'] = aol5 $tmp_sniffer['25'] = aol6 $tmp_sniffer['26'] = opera $tmp_sniffer['27'] = opera2 $tmp_sniffer['28'] = opera3 $tmp_sniffer['29'] = opera4 $tmp_sniffer['30'] = opera5 $tmp_sniffer['31'] = opera5up $tmp_sniffer['32'] = webtv $tmp_sniffer['33'] = hotjava $tmp_sniffer['34'] = hotjava3 $tmp_sniffer['35'] = hotjava3up $tmp_sniffer['36'] = AOL TV(TVNavigator) JavaScript Version $tmp_sniffer['37'] = js OS $tmp_sniffer['38'] = win $tmp_sniffer['39'] = win16 $tmp_sniffer['40'] = win31 $tmp_sniffer['41'] = win32 $tmp_sniffer['42'] = win95 $tmp_sniffer['43'] = win98 $tmp_sniffer['44'] = winme $tmp_sniffer['45'] = winnt $tmp_sniffer['46'] = win2k $tmp_sniffer['47'] = os2 $tmp_sniffer['48'] = mac $tmp_sniffer['49'] = mac68k $tmp_sniffer['50'] = macppc $tmp_sniffer['51'] = unix $tmp_sniffer['52'] = sun $tmp_sniffer['53'] = sun4 $tmp_sniffer['54'] = sun5 $tmp_sniffer['55'] = suni86 $tmp_sniffer['56'] = irix $tmp_sniffer['57'] = irix5 $tmp_sniffer['58'] = irix6 $tmp_sniffer['59'] = hpux $tmp_sniffer['60'] = hpux9 $tmp_sniffer['61'] = hpux10 $tmp_sniffer['62'] = aix $tmp_sniffer['63'] = aix1 $tmp_sniffer['64'] = aix2 $tmp_sniffer['65'] = aix3 $tmp_sniffer['66'] = aix4 $tmp_sniffer['67'] = linux $tmp_sniffer['68'] = sco $tmp_sniffer['69'] = unixware $tmp_sniffer['70'] = mpras $tmp_sniffer['71'] = reliant $tmp_sniffer['72'] = dec $tmp_sniffer['73'] = sinix $tmp_sniffer['74'] = bsd $tmp_sniffer['75'] = freebsd $tmp_sniffer['76'] = vms mehr CODE Bildberechnung: <DEDIPHP> if (!function_exists('MakeButton')) { function MakeButton($text, $x, $y, $color, $font, $size, $angle, $image, $new_image) { global $cfg_dedi, $cfg_client; require_once $cfg_dedi['dedi_path'].'external/pear/image/transform.php'; $dedi_image = Image_Transform::factory($cfg_dedi['image_mode']); $dedi_image->load($image); $dedi_image->addText(array('text'=>$text,'x'=>$x,'y'=>$y,'color'=>$color,'font'=>$font,'size'=>$size,'angle'=>$angle)); $dedi_image->save($new_image); $dedi_image->free(); } } //if (!@is_file('cms/img/blau/navi-test.png')) MakeButton('This is Textblablub', '10', '10', 'white', 'cms/fonts/verdana.ttf', '10', '0', 'cms/img/blau/navi.png', 'cms/img/blau/navi-test.png'); </DEDIPHP> <img src="cms/img/blau/navi-test.png"> mehr CODE Session-, User- und andere Variablen: $cfg_dedi['x'] $cfg_client['x'] mehr CODE Seitenstatus ändern: change_code_status($list, '1', 'idcatside'); mehr CODE Outputmanipulationsmöglichkeiten: Bildpfade in relative Pfade korrigieren: $output = str_replace("<img src="".$cfg_client['htmlpath'], "<img src="", $output); echo $output; DeDi unter Tripod zum laufen zu bekommen: $output = strstr($output, '<html>'); echo $output; Umlaute umwandeln: $output=str_replace('Ä', 'Ä', $output); $output=str_replace('ä', 'ä', $output); $output=str_replace('Ö', 'Ö', $output); $output=str_replace('ö', 'ö', $output); $output=str_replace('Ü', 'Ü', $output); $output=str_replace('ü', 'ü', $output); $output=str_replace('ß', 'ß', $output); echo $output; mehr CODE Variablen über DeDi-Tags editieren und in Funktionen verwenden: <DEDIPHP> if (!function_exists('test')) { function test() { $test = "<?php echo <dedi:mod type="text" id="1" title="Variable" menuoptions="false" width="20" addslashes="true" />; ?>"; echo $test; } } test(); </DEDIPHP> <dedi:mod type="typegroup" elements="text[1]" title="Variable" /> mehr CODE E-Mail senden: <DEDIPHP> include_once($dedi->cfg['dedi_path'].'external/pear/mail.php'); include_once($dedi->cfg['dedi_path'].'external/pear/mail/mime.php'); $cfg['send'] = &Mail::factory($dedi->cfg['mail']['type'], $dedi->cfg['mail']['config']); $cfg['mime'] = new Mail_mime("n", $dedi->cfg_client['lang']['charset']); $cfg['mime']->setTXTBody('Dies ist nur ein Test.'); $cfg['mime']->setHTMLBody('<html><body>Dies ist nur ein <b>Test</b>.<img src="doberman.jpg"></body></html>'); $cfg['mime']->addHTMLImage($dedi->cfg_client['upl_path'].'demo/doberman.jpg', 'image/jpg'); $cfg['mime']->addAttachment($dedi->cfg_client['upl_path'].'demo/top_bar_logo.gif', 'image/gif'); $cfg['send']->send($cfg['mime']->get(), $cfg['mime']->headers(array('From'=>'Paul Eppner <info@der-dirigent.de>', 'To'=>'Paul Eppner <info@der-dirigent.de>', 'Bcc'=>'Paul Eppner <info@der-dirigent.de>, Eppi <paul_eppi@gmx.de>','Subject'=>$dedi->cfg['mail']['type'].'-Testmail-'.date('H:i:s'),'X-Priority'=>'1'))); </DEDIPHP> mehr CODE Output strippen: if (!function_exists('mod_manipulate_output')) { function mod_manipulate_output(&$output, $id) { $output = '$output = preg_replace(array("!((?sU).*)<!--START '.$id.'//-->!m", "!<!--END '.$id.'//-->((?s).*)!m"), array('', ''), $output);'.$output; } } mod_manipulate_output($cfg_client['manipulate_output'], $dedi_mod['container']['id']); mehr CODE Alle Variablen, die nur innerhalb des gecachten PHPs sichtbar sind, auch fuer dynamisches PHP zur Verfuegung stellen: <DEDIPHP> <?php foreach($dedi_mod['value'] AS $k => $v) echo '$mod["'.$k.'"] = "'.str_replace('"', '"', str_replace('', '', $v)).'";'."n"; ?> </DEDIPHP> viele grüsse karsten. Bearbeitet am 16.08.2004 durch jbraendle: Abschnitt "Rechte kontrollieren" entfernt, da nicht mehr gültig, neues gepinntes Thema "Rechte abfragen" hat aktuellen Stand. -------------------- ::: Wenn jemand fragt: ich bin im Kafenio. :::
|
STam | Geschrieben am: 28. Jul 2003 - 12:50 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
Ich auch, ich auch... Funktion um Datumseingaben zu validieren: mehr CODE /** * DediMod_Str2Date ($in) * Das Datum kann mit Punkt ($in= '12.1.2003'), Bindestrich ($in= '12-1-2003'), Slash ($in= '12/1/2003'), oder leerzeichen ($in= '12 1 2003') separiert sein. * Das Datum kann mit führenden Nullen und auch ohne eingegeben werden ($in= '02.01.2003' oder $in= '2.1.2003'). * Das Datum kann mit führendem 19/20 im Jahr und auc ohne eingegeben werden ($in= '02.01.2003' oder $in= '2.1.03'). * Rückgabecodes: * bei Erfolg (int) = timestamp * wenn kein Datum/kein 'echtes' Datum = (int) -4 * wenn kein Jahr/falscher Jahresbereich = (int) -3 * wenn kein Monat = (int) -2 * wenn kein Tag = (int) -1 **/ if (!function_exists('DediMod_Str2Date')) { function DediMod_Str2Date($in) { $date_time_array = getdate (time()); $akt_year = (int) substr($date_time_array["year"], 2, 2); $t = trim($t); //säubern $t = explode(".", $in); //splitten mit . if (count($t) != 3) $t = explode("/", $in); //splitten mit / if (count($t) != 3) $t = explode("-", $in); //splitten mit - if (count($t) != 3) $t = explode(" ", $in); //splitten mit ' ' if (count($t) != 3) return -4; //kein Datum if (!is_numeric($t[0])) return -1; //kein Tag if (!is_numeric($t[1])) return -2; //kein Monat if (!is_numeric($t[2])) return -3; //kein Jahr if ($t[2] <= $akt_year and $t[2] >= 0) $t[2] = $t[2] + 2000; //bei zB Jahr = 01 + 2000 = 2001 // geändert 3.09.03: if ($t[2] <= if ($t[2] > $akt_year and $t[2] <= 99) $t[2] = $t[2] + 1900; //bei zB Jahr = 74 + 1900 = 1974 if ($t[2] < 1902 || $t[2] > 2037) return -3; //falscher Bereich if (checkdate ($t[1], $t[0], $t[2]) != true) return -4; //kein echtes Datum return mktime (0, 0, 0, $t[1], $t[0], $t[2]); } } Funktion um Links aus bestimmten Urls innerhalb von Texten zu generieren. mehr CODE /** * DediMod_UrlParse ($url) * Eingabe von (string) $url * Ausgabe von Link mit Url **/ if (!function_exists('DediMod_UrlParse')) { function DediMod_UrlParse ($url) { $pattern = '#[\s]?(^|[^\"=]{1})(http://|https://|ftp://|mailto:|news://|teamspeak://|ed2k://|unreal://|gopher://|news://|telnet://)([^\s<>]+)([\s\n<>]|$)#sm'; return preg_replace($pattern,"\\1<a target=\"_blank\" href=\"\\2\\3\">\\2\\3</a>\\4",$url); } } Gruss, STam Bearbeitet von Olaf am 20. May 2005 - 06:51 -------------------- ... to watch out for sefrengo.de
|
STam | Geschrieben am: 01. Aug 2003 - 10:58 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
Entwicklervariablen Die Liste ist in Abschnitte aufgeteilt: Eingangsvariablen, Globale, Module Es wird hier nicht weiter auf PHP eigene Variablen, Konstanten und Objekte eingegangen wie z.B.: Directory::read(), diese sind einem PHP-Handbuch zu entnehmen. Auch habe ich erstmal Funktionen, deren nutzen sich ausschließt, überflüssig sind da das Ergebnis schon vorliegt oder zu umständlich sind, ausgelassen. Die Abschnitte bezeichnen auch die Gültigkeit dieser Variablen, folgende Definitionen gelten für die einzelnen Bereiche: - Eingangsvariablen, sind Variablen die per GET/POST/COOKIE/SESSION übergeben wurden und von DeDi global zur verfügung gestellt werden. - Variablen aus dem Abschnitt 'Globale' sind immer gültig und haben global, zur laufzeit immer gleichen Inhalt! - Eine Variable aus dem Bereich 'Module' ist nur in dem Modul gültig von wo Sie abgefragt/hinterlegt wird. In einem anderem Modul können sich die die Inhalte dieser Variablen geändert haben! Eingangsvariablen: Zu diesen Variablen gehören alle Variablen die aus dem Enviroment kommen und direkt Speicherzustände oder Eingabezustände wiedergeben, vom System dem Frontend und dem Backend. Bei allen diesen Variablen sei gesagt das noch keine Eingangsbehandlung in DeDi implementiert ist und somit diese als 'unsicher' einzustufen sind. - GET/POST/COOKIE/SESSION/ARGV Variablen werden durch DeDi global instanziert, und somit ein 'register Global´s' Simuliert. Beispiel: Die durch ein Formular weitergegebene Variable '<input type="text" name="vorname" id="vorname" value="">' wird aud der nächsten Seite die das Formular empfängt als $vorname, mit dem Inhalt des Textfeldes "vorname", globalisiert. Näheres bitte der PHP-Dokumentation entnehmen! Globale: zu den Konstanten gehören: - DEDI_SETUP_LOCK = 1 , wird in der Config gesetzt zu den Objekten gehören: - $deb = aktuelle Debug-Informationen - $db = aktuelle Datenbankverbindung - $auth = Session/Login Verwaltung - $perm = Rechteverwaltung zu den Variablen gehören: - $idcat:string = Idcat - $view:string = aktueller Modus - $sid:string = SessionID - $dedi_path:string = Backendpfad - $client:string = ClientId - $startlang:string = voreingestellte LangId LangId bei Start (Language) - $cfg_dedi:array = aktuelle Konfiguration - $dedi_db:array = Varnamen der DeDi-Tabellen - $_PHPLIB:array = informationen zur von DeDi genutzten PhpLib - $dedi_lang:array = aktuelle Language Übersetzungen - $cfg_client:array = Client Konfiguration - $lang:string = aktuelle LangId (Language) - $con_tree:array = enthält alle Ordner des $client & $lang - $tlo_tree:array = sortierung von $con_tree - $catlist:array = liste aller Ordner - $catlist_level:array = einrückung der Ordner - $con_side:array = enthält alle Seiten des $client & $lang - $idcatside:string = aktuelle Seite (Frontend) - $idside:string = aktuelle Seite (Frontend) - $idtpl:string = aktuelles Template (Frontend) - $container:array = Inhalte aller Container - $list:array = Container Konfiguration des Templates Module: zu den Variablen gehören: - $mod_lang:array = aktuelle Language Übersetzungen - $layout:string = Inhalt des aktuellen Layouts - $idlay:string = LayoutId - $dedi_mod:array = Konfiguration des Moduls So das wärs erstmal, weiss net ob ich was vergessen hab, zumindest die sollte man kennen und zu nutzen wissen! Natürlich gibt es noch ein paar mehr und auch einige Module/Plugins erzeugen noch zusätzlichen Schrott, der aber gewiss nicht in jedem DeDi vorkommt also auch nicht wichtig ist ;I Wer Fehler findet, Bitte ändern! Gruss, STam -------------------- ... to watch out for sefrengo.de
|
bjoern | Geschrieben am: 01. Aug 2003 - 15:40 |
Unregistered |
OK, dann noch eine Kleinigkeit von mir, aus meinem alten Contenidotutorial übernommen und ein wenig angepasst: Wie Ihr auf die Datenbank zugreifen solltet DEDI benutzt zum Zugriff auf eure MySql- Datenbank die Abstraktionsschicht der "PHPlib". Für euch bedeutet das , das ihr euch z.B. nicht um das Connecten zur Datenbank kümmern müßt. Ich denke, am Einfachsten erklärt sich das Ganze durch ein kleines Beispiel. Kopiert den folgenden Code einfach in die Frontendausgabe eines neu erstellten Moduls, bindet dieses in ein Template ein und ruft eine Seite eurer Wahl auf. Das Modul zeigt alle Grafiken eures Bilderverzeichnises an und funktioniert natürlich nur, wenn ihr auch schon Bilder im Uploadbereich hochgeladen habt. Weiterführende Informationen findet ihr in der Dokumentation zur PHPlib (http://phplib.sourceforge.net). mehr CODE //dirname gibt den momentanen Imageordner relativ zum frontend an (img)
//filetype gibt den Dateityp an (img) //Für weitere Informationen guckt euch mit phpmyadmin am Besten die Tabelle dedi_upl an. $sql = "SELECT * FROM ". $dedi_db['upl'] ." WHERE idclient='$client' AND dirname='img' AND filetype='img' ORDER BY filename"; $db->query($sql); //Zeigt an, wie viele Datensätze sich in der aktuellen echo 'Insgesamt werden ' . $db ->num_rows() . ' Datensätze angezeigt.<br><br>'; $i = 1; //Angezeigt werden die Felder filename, dirname, filetype, description der Tabelle con_upl while ($db->next_record()) { echo "Bild Nr. $i :<br>"; echo "Dateiname: ". $db->f("filename") ."<br>"; echo "Ordnername: ". $db->f("dirname") ."<br>"; echo "Dateityp: ". $db->f("filetype") ."<br>"; echo "Beschreibung: ". $db->f("description") ."<br>"; echo "Relative URL zum Bild: ". $cfgClient[$client]["htmlpath"]["img"] . $db->f("filename") ."<br>"; echo 'Und das Bild: <br> <img src="'.$cfgClient[$client]["htmlpath"]["img"] . $db->f("filename") . '" border=0><br><br><br><br>'; $i++; } |
Eppi | Geschrieben am: 01. Aug 2003 - 17:45 |
.....................noname Gruppe: Admin Beiträge: 8077 Mitgliedsnummer: 1 Mitglied seit: 23. Mar 2003 |
Habe das Entwicklervariablenmodul ein wenig aufgefrischt. Hier also die v1.1:
Angefügte Datei herunterladen
entwicklervariablen_v1.1.zip ( Anzahl der Downloads: 3218 ) -------------------- "Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
|
bjoern | Geschrieben am: 03. Aug 2003 - 04:42 |
Unregistered |
Erklärung der Tabelle dedi_content bzw. dedi_content_external In dieser Tabelle wird der gesamte redaktionelle Inhalt einer Seite abgespeichert. Beide Tabellen sind von ihrem Aufbau her identisch. Zu beachten: Die Tabelle dedi_content_external gehört eigentlich nicht zum System, sondern wird von Modulen benutzt. Dies hat den Vorteil, das Module die interne Struktur des Speicherns von Content aus DEDI übernehmen können, ohne dabei die ContentCoreTabelle dedi_content durcheinander zu bringen. Dies würde z.B. bei der Volltextsuche zu Problemen führen. Die dedi_content_external wird z.B. von dem Modulen Gästebuch, DeDi-Flex und Webgrab benutzt) idcontent -> Eindeutige Id des Contents. Wird per autoincrement hochgezählt idsidelang -> Eindeutige Id einer Seite in Verbindung mit einer Sprache container -> Entspricht der id des DEDI:tags <dedi:lay type="container" id="XX" /> number -> Einzelne Container können innerhalb eines Moduls wiederholt werden. Die einzelnen Schleifenschritte werden mit 1, 2, 3, ..., n hochgezählt. idtype -> Eindeutiger Bezeichner eines Contenttypes. Zur Zeit sind folgende Contenttypen vorhanden: id | type ----------------- 1 | text 2 | wysiwyg 3 | textarea 4 | img 5 | imgdescr 6 | link 7 | linkdescr 8 | linktarget 9 | sourcecode 10 | file 11 | filedescr 12 | filetarget typenumber -> Entspricht der id eines DEDI:tags <dedi:mod type="wysiwyg|link|file..." id="XX" /> value -> Der Content eines Feldes, z.B. WYSIWYG- Editors. Maximal können pro Feld 64kb Daten abgespeichert werden. online -> Zur Zeit keine Funktion version -> Zur Zeit keine Funktion author -> user_id (aus Tabelle dedi_users) des Redaktuers, welcher den Content angelegt oder zuletzt den Content geändert hat. created -> Datum als Timestamp lastmodified -> Datum als Timestamp |
kfo | Geschrieben am: 10. Aug 2003 - 21:40 |
dedi-ritter Gruppe: Members Beiträge: 384 Mitgliedsnummer: 200 Mitglied seit: 07. Jul 2003 |
stichwort wysiwyg-editor / wie einbinden / wo finde ich den code?: mehr CODE hmm...hab mich mal ein wenig mit dem einbinden der editoren in dedi beschäftigt, mich damals durch den code gelesen, probiert und rumgefummelt. angefangen hat es mit dem verzeichnis /backend/external/wysiwyg/ in dem die wysiwyg-archive und php-includes für die wysiwyg-editoren abgelegt sind. dann kam der tip von björn ich solle doch mal in die datei /backend/inc/inc.con_edit.php reinschauen. last but not least habe ich den eigentlichen code für die applet-tags bzw. die aufrufe für den standard ie-wysiwyg-editor dann in der datenbanktabelle dedi_type im record wysiwyg gefunden. -------------------- ::: Wenn jemand fragt: ich bin im Kafenio. :::
|
Eppi | Geschrieben am: 12. Aug 2003 - 22:08 |
.....................noname Gruppe: Admin Beiträge: 8077 Mitgliedsnummer: 1 Mitglied seit: 23. Mar 2003 |
wer Module mit einem einfachen und einem erweitertem Konfigurationsbereich erstellen möchte kann für den Input sowas in der Art verwenden: mehr CODE <?PHP // Modus konfigurieren if ($dedi_mod['value']['0'] == '') $dedi_mod['value']['0'] = 'advanced_mode'; if ($dedi_mod['value']['0'] == 'simple_mode' && $action == 'change') $dedi_mod['value']['0'] = 'advanced_mode'; elseif ($dedi_mod['value']['0'] == 'advanced_mode' && $action == 'change') $dedi_mod['value']['0'] = 'simple_mode'; $mip_form['0']['cat'] = 'hidden'; $mip_form['0']['cms_var'] = 'MOD_VAR[0]'; $mip_form['0']['cms_val'] = $dedi_mod['value']['0']; // überall konfigurierbare Variablen: $mip_form['1']['desc'] = 'Test1'; $mip_form['1']['cat'] = 'txt'; $mip_form['1']['cms_var'] = 'MOD_VAR[1]'; $mip_form['1']['cms_val'] = $dedi_mod['value']['1']; $mip_form['1']['cms_val_default'] = '100%'; // Simple-Mode if ($dedi_mod['value']['0'] == 'simple_mode') { $mip_form['2']['cat'] = 'hidden'; $mip_form['2']['cms_var'] = 'MOD_VAR[2]'; $mip_form['2']['cms_val'] = $dedi_mod['value']['2']; // Advanced-Mode } else { $mip_form['2']['desc'] = 'Test'; $mip_form['2']['cat'] = 'txt'; $mip_form['2']['cms_var'] = 'MOD_VAR[2]'; $mip_form['2']['cms_val'] = $dedi_mod['value']['2']; $mip_form['2']['cms_val_default'] = '0'; } mip_formsp($mip_form['0']); mip_formsp($mip_form['1']); mip_formsp($mip_form['2']); ?> <select name="change_mode" size="1" onchange="document.editform.action.value='change';document.editform.submit();"> <?PHP printf('<option value="simple_mode"%s>simple_mode</option>'."\n", ($dedi_mod['value']['0'] == 'simple_mode') ? ' selected' : ''); printf('<option value="advanced_mode"%s>advanced_mode</option>'."\n", ($dedi_mod['value']['0'] == 'advanced_mode') ? ' selected' : ''); ?> </select> <?PHP unset($mip_form); ?> Editmodus abfragen & auf edit_all umschalten... mehr CODE <?php if ($dedi_side['edit']) { $dedi_side['edit_all'] = 'true'; unset($dedi_side['edit']); } else {} -------------------- "Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
|
mvsxyz | Geschrieben am: 12. Mar 2004 - 16:28 |
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Wie kann ich in einem Modul die aktuelle URL auslesen? Normalerweise funktioniert das über $con_tree[$idcatside]['link'], aber im Modul (unter B2) bekomme ich einen leeren Output. Wie muss es richtig lauten? -------------------- |
hk-cons | Geschrieben am: 12. Mar 2004 - 17:01 |
Dauertester Gruppe: Tester Beiträge: 5444 Mitgliedsnummer: 71 Mitglied seit: 31. Mar 2003 |
Also ich weiß ja nich, welches Modul so gefunzt hat, aber ich würd es mit con_side versuchen anstelle von $con_tree ... Und wenn Du unbeding con_tree nehmen willst, sollst Du mit $idcat arbeiten .... -------------------- spart sich sprüche und wird humorlos
|
mvsxyz | Geschrieben am: 12. Mar 2004 - 17:06 |
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Du hast ja soooo recht... -------------------- |
Eppi | Geschrieben am: 13. Mar 2004 - 01:19 |
.....................noname Gruppe: Admin Beiträge: 8077 Mitgliedsnummer: 1 Mitglied seit: 23. Mar 2003 |
und immer an das <DEDIPHP> denken, da ansonsten die Session mit im cache landet -------------------- "Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
|
mvsxyz | Geschrieben am: 14. Mar 2004 - 14:47 |
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Ich möchte den Bereich zwischen <head> und </head> bzw. <!--START head//--> und <!--END head//--> heraus bekommen. Nach Art des Druckversionsmodul klappt es leider nicht, da die Var $output leer ist. Kann mir jemand helfen? -------------------- |
bjoern | Geschrieben am: 14. Mar 2004 - 15:10 |
Unregistered |
Dann hast Du was falsch gemacht, in $output steht die gesamte Seite, ist die leer, hast Du auch keine Seite. Wichtig dabei ist, das $output erst am Skriptende (logischerweise) zur verfügung steht. Du kannst das auch bei den projekteinstellungen sehen -> Frontendausgabe manipullieren. Das funktioniert folgendermaßen: $cfg_client['manipulate_output'] -> da steht standardmässig echo $output; drinn. eval($cfg_client['manipulate_output'] ); -> führt dann den Inhalt der Variable aus und Du bekommst Deine Seite. Wenn Du selbst Anpassungen machen willst, mußt Du $cfg_client['manipulate_output'] entsprechend manipullieren. Das kann mann netterweise schon festlegen, bevor die Seite generiert wird. Beispiel: $cfg_client['manipulate_output'] .= 'echo "Hallo Welt "; ' .$cfg_client['manipulate_output'] ; Aufpassen mit den slashen, das kann ganz schön fummelig werden. Hoffe ich hab Dich jetzt nicht zu sehr verwirrt, die Materie ist ein wenig Tricky. |
mvsxyz | Geschrieben am: 14. Mar 2004 - 15:15 |
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Momentan sieht es bei mir so aus: mehr CODE $printtpl = "MOD_VALUE[22]"; $printtpl = str_replace('{head}', '$print_head', $printtpl); $printtpl = str_replace('{article}', addslashes($date), $printtpl); $mod['manipulate_output'] = '$output = "'.$printtpl.'";'; $cfg_client['manipulate_output'] = $mod['manipulate_output'].$cfg_client['manipulate_output']; {article} wird ersetzt und damit erhalte ich als Output momentan das: mehr CODE <html><head></head><body>Text Text Text<body></html> weil MOD_VALUE[22] so aussieht: mehr CODE <html><head>{head}</head><body>{article}</body></html> Und dieser Code aus dem Druckversionsmodul hilft irgendwie nicht: mehr CODE $mod['manipulate_output'] .= '$start = strpos($output, "<!--START head//-->");'; $mod['manipulate_output'] .= '$ende = strpos($output, "<!--END head//-->");'; $mod['manipulate_output'] .= '$ende = $ende - $start;'; $mod['manipulate_output'] .= '$print_head .= substr($output, $start, $ende);'; -------------------- |
Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:
18 Antworten seit 27. Jul 2003 - 22:34
Thema abonnieren | Thema versenden | Thema drucken
Seiten: (2) [1] 2