Neuer Content-Typ: CMS_CODE

Gesperrt
matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Neuer Content-Typ: CMS_CODE

Beitrag von matze » Do 5. Feb 2004, 12:21

hallo,

ich habe gerade versucht einen neuen content-typ für die module zu generieren. leider bin ich gescheitert. :-(

der neue typ (CMS_CODE) den ich anlegen will, soll ermöglichen, dass man direkt html-quelltext einfügen kann.
er soll also so funktionieren, wie das modul CMS_TEXT, nur das keine zeichen konvertiert werden.

in der editor-ansicht öffnet sich zwar das formular mit der "textarea" zur eingabe, nur wird der inhalt nicht in der datenbank gespeichert.

kann mir jemand helfen?
oder muss ich nur irgendwo anders noch einen eintrag für den neuen content-typ machen?

matze



db-eintrag in con_typ:

Code: Alles auswählen

/**
 * CMS_CODE
 */
$tmp = $a_content["CMS_CODE"][$val];
$tmp = urldecode($tmp);

if ($edit) {$editbutton = "<A HREF=\"".$sess->url("front_content.php?action=10&idcat=$idcat&idart=$idart&idartlang=$idartlang&type=CMS_CODE&typenr=$val&lang=$lang")."\"><IMG SRC=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_edittext.gif\" border=0></A>";
$editbutton = AddSlashes(AddSlashes($editbutton));
$tmp = $tmp.$editbutton;}

include.CMS_CODE.inc.php:

Code: Alles auswählen

<?
if ($doedit == "1") {
        consaveContentEntry($idartlang, "CMS_CODE", $typenr, $CMS_CODE);
        conGenerateCodeForArtInAllCategories($idart);
        header("Location:".$sess->url($cfgClient[$client]["path"]["htmlpath"]."front_content.php?area=$tmp_area&idart=$idart&idcat=$idcat&lang=$lang&changeview=edit")."");
}
?>
<html>
<head>
<title></title>
    <link rel="stylesheet" type="text/css" href="<?php print $cfg["path"]["contenido_fullhtml"] . $cfg["path"]["styles"] ?>contenido.css">
</head>
<body>
<table width="100%"  border=0 cellspacing="0" cellpadding="0" bgcolor="#ffffff">
  <tr>
    <td width="10" rowspan="4"><img src="<?php print $cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"] ?>spacer.gif" width="10" height="10"></td>
    <td width="100%"><img src="<?php print $cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"] ?>spacer.gif" width="10" height="10"></td>
    <td width="10" rowspan="4"><img src="<?php print $cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"] ?>spacer.gif" width="10" height="10"></td>
  </tr>
  <tr>
    <td>

<?php
       getAvailableContentTypes($idartlang);

        echo "  <FORM name=\"editcontent\" method=\"post\" action=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["includes"]."include.backendedit.php\">";
        $sess->hidden_session();
        echo "  <INPUT type=hidden name=lang value=\"$lang\">";
//        echo "  <INPUT type=hidden name=submit value=\"editcontent\">";
        echo "  <INPUT type=hidden name=typenr value=\"$typenr\">";
        echo "  <INPUT type=hidden name=idart value=\"$idart\">";
        echo "  <INPUT type=hidden name=action value=\"10\">";
        echo "  <INPUT type=hidden name=type value=\"$type\">";
        echo "<INPUT type=hidden name=doedit value=1>";
        echo "  <INPUT type=hidden name=idcat value=\"$idcat\">";
        echo "  <INPUT type=hidden name=idartlang value=\"$idartlang\">";
        echo "<INPUT type=hidden name=changeview value=\"edit\">";
        echo "  <TABLE cellpadding=$cellpadding cellspacing=$cellpadding border=0>";

        echo "  <TR><TD valign=top class=text_medium>&nbsp;".$typenr.".&nbsp;".$a_description[$type][$typenr].":&nbsp;</TD><TD class=content>";
        echo "  <TEXTAREA name=CMS_TEXT ROWS=15 COLS=90>".urldecode($a_content[$type][$typenr])."</TEXTAREA>";
        echo "  </TD></TR>";
        $tmp_area = "con_editcontent";
        echo "  <TR valign=top><TD colspan=2><br>
                      <a href=".$sess->url($cfgClient[$client]["path"]["htmlpath"]."front_content.php?area=$tmp_area&idart=$idart&idcat=$idcat&lang=$lang")."><img src=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_cancel.gif\" border=0></a>
                      <INPUT type=image name=submit value=editcontent src=\"".$cfg["path"]["contenido_fullhtml"].$cfg["path"]["images"]."but_ok.gif\" border=0>
                      </TD></TR>";

        echo "  </TABLE>
                      </FORM>";

?>


</td></tr></table>
</body>
</HTML>

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 9. Feb 2004, 13:33

zum testen hab ich leider nicht so viel zeit...
was steht den im contenido/logs/errorlog.txt ?
such mal nach dem modul snippets (dort ist ein direktes eingeben von code möglich)

gerade gesehen...
versuch mal

Code: Alles auswählen

<TEXTAREA name=CMS_TEXT ROWS=15 COLS=90>
in

Code: Alles auswählen

<TEXTAREA name=CMS_CODE ROWS=15 COLS=90>
zu ändern...

das gefährliche dabei ist eigentlich nur, das bei fehlern die seite vermutlich nicht mehr editierbar sein wird...

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mo 9. Feb 2004, 15:02

danke für die antwort.
nach der änderung ist auch das eingetreten, was du prophezeit hattest. der text war nach der ersten eingabe weder im backend editierbar noch wurde er im frontend angezeigt. (bloße neugier: woran liegt das?)

errorlog.txt:

Code: Alles auswählen

[09-Feb-2004 13:52:47] PHP Parse error:  parse error, unexpected T_STRING, expecting ',' or ';' in D:\xampp\htdocs\cont_final\contenido\includes\include.con_editcontent.php(571) : eval()'d code on line 674

[09-Feb-2004 13:53:24] PHP Parse error:  parse error, unexpected T_STRING, expecting ',' or ';' in D:\xampp\htdocs\cont_final\contenido\includes\include.con_editcontent.php(571) : eval()'d code on line 674

[09-Feb-2004 13:53:39] PHP Parse error:  parse error, unexpected T_STRING, expecting ',' or ';' in D:\xampp\htdocs\cont_final\cms\front_content.php(546) : eval()'d code on line 552
ich probier jetzt mal dein snippet-modul und meld mich dann wieder.
(isst 0.0.4 die aktuellste version?)

cya,
matze


ps
deine version vom cms_link iss richtig toll! (lob! lob!)
aber kann man nicht auch noch eine if-schleife für einen nicht gesetzten link integrieren?
das wäre doch besser als eine abfrage ( if ("CMS_LINK[1]" != "http://") {...} ) im modul, oder?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 9. Feb 2004, 15:14

matze hat geschrieben:danke für die antwort.
gerne...
matze hat geschrieben:nach der änderung ist auch das eingetreten, was du prophezeit hattest. der text war nach der ersten eingabe weder im backend editierbar noch wurde er im frontend angezeigt. (bloße neugier: woran liegt das?)
ich würd mal sagen in der art und weise wie der content gespeichert wird... (ist nur geschätzt)
matze hat geschrieben: ich probier jetzt mal dein snippet-modul und meld mich dann wieder.
(isst 0.0.4 die aktuellste version?)
ähm ja... bis jetzt läuft das ding ohne probleme... bis jetzt war es nicht notwendig etwas dabei zu ändern... ich hab noch nicht mal den versuch unternommen timo's änderung einzubauen...

matze hat geschrieben:deine version vom cms_link iss richtig toll! (lob! lob!)
danke ;-)
matze hat geschrieben:aber kann man nicht auch noch eine if-schleife für einen nicht gesetzten link integrieren?
das wäre doch besser als eine abfrage ( if ("CMS_LINK[1]" != "http://") {...} ) im modul, oder?
ähm ? wie meinst du das ? ein nicht gesetzter link ist an sich "http://"
natürlich kanns auch sein das die routine noch nen bug enthält -> wäre mir aber noch nicht aufgefallen...

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mo 9. Feb 2004, 16:06

es hat etwas länger gedauert, da ich die snippets-tabelle per hand anlegen musste. (oder steht der "create table"-befehl irgendwo anders?)

nichts desto trotz,
jetzt funktioniert's!!! Danke!


trotzdem nochmal einen schritt zurück.
gibt es auch eine möglichkeit, den quellcode im editor-modus einzupflegen?
ich glaube für den fall ist es doch besser einen neuen content-typ anzulegen, oder?
(ich will ja nur html und javascript integrieren)

matze hat geschrieben:aber kann man nicht auch noch eine if-schleife für einen nicht gesetzten link integrieren?
das wäre doch besser als eine abfrage ( if ("CMS_LINK[1]" != "http://") {...} ) im modul, oder?
emergence hat geschrieben: ähm ? wie meinst du das ? ein nicht gesetzter link ist an sich "http://"
natürlich kanns auch sein das die routine noch nen bug enthält -> wäre mir aber noch nicht aufgefallen...
nein, da gibt's keinen bug.
alles was ich erreichen will ist, dass ein nicht gesetzter link auch komplett deaktiviert wird. (-> also kein <a href="http//">-tag erscheint)
geht dass auch direkt über den content-typ CMS_LINK?
(ich hab's bisher nur im modul hinbekommen)

viele grüße,
matze

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 9. Feb 2004, 16:25

matze hat geschrieben:es hat etwas länger gedauert, da ich die snippets-tabelle per hand anlegen musste. (oder steht der "create table"-befehl irgendwo anders?)
der code mit create table steht direkt im input modul... -> wenn keine tabelle existiert versucht das script eine anzulegen...
beim erstmaligen aufrufen erscheint zwar das die tabelle nicht existiert aber gleich im anschluss wird versucht die tabelle anzulegen...
warum das bei dir nicht funktioniert hat ?? ins errorlog.txt schauen...

matze hat geschrieben:trotzdem nochmal einen schritt zurück.
gibt es auch eine möglichkeit, den quellcode im editor-modus einzupflegen?
ich glaube für den fall ist es doch besser einen neuen content-typ anzulegen, oder?
(ich will ja nur html und javascript integrieren)
also ich habs auf die schnelle nicht hinbekommen -> deshalb gibts ja auch das modul snippets... herrb hat irgendwo mal einen beitrag geschrieben was man beachten muss wenn javascript code direkt eingeben werden soll... -> hab mir das aber nicht weiters angesehen...
matze hat geschrieben:alles was ich erreichen will ist, dass ein nicht gesetzter link auch komplett deaktiviert wird. (-> also kein <a href="http//">-tag erscheint)
geht dass auch direkt über den content-typ CMS_LINK?
ähm... wenn du link auf kein setzt bleibt als url: "http://"erhalten ? oder bleibt "http:// " im quellcode ?

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mo 9. Feb 2004, 17:26

emergence hat geschrieben: der code mit create table steht direkt im input modul... -> wenn keine tabelle existiert versucht das script eine anzulegen...
beim erstmaligen aufrufen erscheint zwar das die tabelle nicht existiert aber gleich im anschluss wird versucht die tabelle anzulegen...
warum das bei dir nicht funktioniert hat ?? ins errorlog.txt schauen...
ok,
da hab ich mir den quelltext anscheinend nicht genau genug angeschaut und mir damit etwas mehr arbeit als nötig aufgehalst. ;-)

emergence hat geschrieben: also ich habs auf die schnelle nicht hinbekommen -> deshalb gibts ja auch das modul snippets... herrb hat irgendwo mal einen beitrag geschrieben was man beachten muss wenn javascript code direkt eingeben werden soll... -> hab mir das aber nicht weiters angesehen...
mhhh,
das snippets-modul ist auch nicht schlecht,
nur ist es für meine zwecke nicht so toll, dass man dann immer gezwungen ist jeden neuen artikel einzeln das template zuzuordnen, bevor man eine eingabe tätigen kann.
du würdest mir also eher abraten einen eigenen content-typ zu definieren, oder?

emergence hat geschrieben: ähm... wenn du link auf kein setzt bleibt als url: "http://"erhalten ? oder bleibt "http:// " im quellcode ?
wenn "kein Link" eingestellt ist, bleibt im frontend wie im backend "http:///" stehen (3x slash).
ich habe diese version vom CMS_LINK:

Code: Alles auswählen

/**
* CMS_LINK
*/
global $cfgClient;
global $client;

$tmp = urldecode($a_content["CMS_LINK"][$val]);

/* internal link */
if ( is_numeric($tmp) ) {
   $tmp = "front_content.php?idcatart=". $tmp."&client=".$client."&lang=".$lang;
   if ($edit) $tmp = $sess->url("$tmp");

} else {

   if (!preg_match('/^(http|https|ftp|mailto|telnet|gopher):\/\/((?:[a-zA-Z0-9_-]+\.?)+):?(\d*)/', $tmp)) {
      // it's a relative link, or an absolute link with unsupported protocol
      if (substr($tmp,0,4) == "www." || $tmp == "") { // only check if it could be a domainname
         $tmp = "http://".$tmp;
      }
   }

}

ciao,
matze

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mo 9. Feb 2004, 17:43

nee,
doch nur 2x slash! (http://)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 9. Feb 2004, 18:04

abraten, nein... wenn du es hinbekommst ;-)

was steht den genau im erzeugtem quelltext bei
-> <a href="http://">blabla</a> oder was anderes... ?

matze
Beiträge: 106
Registriert: Mi 17. Dez 2003, 00:17
Wohnort: L.E.
Kontaktdaten:

Beitrag von matze » Mo 9. Feb 2004, 18:33

so sieht der quelltext vom frontend aus:

Code: Alles auswählen

<a href="http://">Bilder</a>'
und
wie schon erwähnt: es funktioniert nur, wenn ich es so im modul abfange.

Code: Alles auswählen

if ("CMS_LINK[1]" != "http://") {
    echo '<a href="CMS_LINK[1]">Bilder</a>';
}

Gesperrt