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('Ä', '&Auml;', $output);
$output=str_replace('ä', '&auml;', $output);
$output=str_replace('Ö', '&Ouml;', $output);
$output=str_replace('ö', '&ouml;', $output);
$output=str_replace('Ü', '&Uuml;', $output);
$output=str_replace('ü', '&uuml;', $output);
$output=str_replace('ß', '&szlig;', $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. :::
Top    
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
Top    
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
Top    
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++;
}
Top
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:
User Attached Image Angefügte Datei herunterladen
entwicklervariablen_v1.1.zip ( Anzahl der Downloads: 2918 )

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

"Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
Top   
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
Top
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. :::
Top    
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!"
Top   
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?

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

Top   
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 ... wink.gif
Und wenn Du unbeding con_tree nehmen willst, sollst Du mit $idcat arbeiten ....

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

spart sich sprüche und wird humorlos
Top   
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... biggrin.gif laugh.gif

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

Top   
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 dry.gif

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

"Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
Top   
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?

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

Top   
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.
Top
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);';

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

Top   

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 

<< Zurück zu DeDi-Entwicklung

Neue Umfrage | neues Thema

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