Seite 1 von 1

Content-Typen Wert zuweisen

Verfasst: Do 12. Feb 2004, 20:20
von matze
ich möchte einem content-typ (CMS_HEAD[1]) einen wert (CMS_VALUE[1]) aus dem input zuweisen.
wie macht man dass am schlausten?

so hat es nicht funktioniert:

Code: Alles auswählen

echo "<input type=\"hidden\" name=\"CMS_HEAD[1]\" value=\"CMS_VALUE[1]\">";
den wert benötige ich überhaupt nicht zum output sondern nur als interne variable.

ich hoffe dass ist irgendwie möglich, (???)
matze

Verfasst: Fr 13. Feb 2004, 18:04
von emergence
was möchtest den machen ?

Verfasst: Fr 13. Feb 2004, 18:35
von matze
das ist nicht ganz einfach zu erklären. aber ich versuch's mal.


kurze version:
kurz: ich brauche steuerbare teaser


lange version:
situation:
ich habe eine kategorie mit verschiedenen artikeln. diese artikel werden in der start-seite geteasert. dort erscheinen von jeden artikel von jedem artikel die conent-typen CMS_IMG[1], CMS_IMGDESCR[1], CMS_HTML[1].

ziel:
nun wird von mir gefordert eine checkbox zu generieren, mit der man den jeweiligen teaser in der start-seite ein- und ausblenden kann.

nun hab ich mir gedacht, ich nutze den content-typ CMS_HEAD[1], um ihn mit dem checkbox-status (0 oder 1) zu füllen. aber diese content-typen kann man anscheinend nur im editormodus und nicht in der konfiguration füllen!?

???,
matze

Verfasst: Fr 13. Feb 2004, 19:12
von emergence
nun hab ich mir gedacht, ich nutze den content-typ CMS_HEAD[1], um ihn mit dem checkbox-status (0 oder 1) zu füllen. aber diese content-typen kann man anscheinend nur im editormodus und nicht in der konfiguration füllen!?
in der konfiguration steht dir nur CMS_VAR und CMS_VALUE zur verfügung...
im edit -> CMS_VALUE und die restlichen con_type typen...

Verfasst: Fr 13. Feb 2004, 19:16
von matze
mhhh,
also gibt es keine methode CMS_HEAD[1] mit CMS_VALUE[1] zu füllen?

Verfasst: Fr 13. Feb 2004, 19:27
von emergence
also momentan keine die ich wüsste... so wie du das machen willst...

sieh dir das mal an...
http://www.contenido.de/forum/viewtopic.php?t=2087

vielleicht ist da was brauchbares für dich dabei..

Verfasst: Sa 14. Feb 2004, 10:57
von PickPay
Wenn die Artikel in der Kategorie NUR auf der Startseite verwendet werden, könntest du sie einfach auch Offline setzen.

Ich habe eine Ähnliche Aufgabenstellung allerdings so gelöst, dass im Editiermodus Zusätzliche Felder mit jeweils einem CMS_HEAD[x] erscheinen, also etwa so:

Code: Alles auswählen

<?
 if ($edit) {
?>
<p>
<table width="100%" border="0" cellspacing="0" cellpadding="1">
 <tr> 
  <td bgcolor="#FF6F6F"> 
   <table width="100%" border="0" cellspacing="1" cellpadding="5">
    <tr bgcolor="#FFC4C4"> 
     <td colspan="4"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Konfiguration 
      des Artikels (1=AN, 0=AUS)</font></strong></td>
    </tr>
    <tr bgcolor="#FF9999"> 
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Option 1</font></td>
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?PHP echo "CMS_HEAD[6001]"; ?></font></td>
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Option 2</font></td>
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?PHP echo "CMS_HEAD[6002]"; ?></font></td>
    </tr>
    <tr bgcolor="#FF9999"> 
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Option 3</font></td>
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?PHP echo "CMS_HEAD[6003]"; ?></font></td>
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Option 4</font></td>
     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?PHP echo "CMS_HEAD[6004]"; ?></font></td>
    </tr>
   </table>
  </td>
 </tr>
</table>
</p>
<? 
 }
?>
Das ganze wird einfach als Modul gespeichert und jeweils in der Template am entsprechenden Ort zugewiesen.

Verfasst: Sa 14. Feb 2004, 12:20
von matze
ja, so werde ich es wahrscheinlich auch machen müssen.

eine checkbox in der konfiguration (oder auch im editor-modus) wäre nur eine bessere und sauberere lösung gewesen. denn nur so kann ich vermeiden, dass der redakteur etwas sinnloses einträgt.

danke an euch beide,
matze

ps
da fällt mir gerade was ein!
kann man nicht einen neuen content-typen (CMS_CHECKBOX) definieren?
oder ist das zu aufwendig?

Verfasst: Sa 14. Feb 2004, 14:38
von PickPay
Nun, das liesse sich mit etwas JavaScript vermutlich schon machen, allerdings hatte ich bis jetzt noch keine Zeit, mich damit zu beschäftigen.

Verfasst: So 15. Feb 2004, 18:37
von timo
kurze Antwort: man kann content-typen keinen Wert zuweisen.

Lösung: Die Tabelle con_content manuell beschreiben.

Verfasst: Di 17. Feb 2004, 17:41
von matze
timo hat geschrieben: Lösung: Die Tabelle con_content manuell beschreiben.
habe ich gamacht!
nun habe ich aber wieder das problem, dass die "con_code"-tabelle aktualisiert werden muss!
(also "setcontent" ausgeführt werden muss)

:?: ,
matze

Code: Alles auswählen

// cms_head 0 schon vorhanden?
$sql = "SELECT value FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$idart' AND idtype='9' AND typeid='0'";
$db->query($sql);

$date   = date("Y-m-d H:i:s");
$author = $auth->auth["uname"];


if ($db->next_record())
{
    $sql = "UPDATE ".$cfg["tab"]["content"]." SET value = 'CMS_VALUE[1]', author='$author', lastmodified='$date' WHERE idartlang = '$idart' AND idtype='9' AND typeid='0'";
    $db->query($sql);

    $sql = "UPDATE " .$cfg["tab"]["art_lang"]." SET lastmodified='$date' WHERE idartlang='$idartlang'";
    $db->query($sql);
}
else
{

    $sql = "INSERT INTO ".$cfg["tab"]["content"]." (idcontent, idartlang, idtype, typeid, value, author, created, lastmodified) VALUES ('".$db->nextid($cfg["tab"]["content"])."', '".$idart."', '9', '0', 'CMS_VALUE[1]', '$author', '$date', '$date')";
    $db->query($sql);
}

Verfasst: Mi 18. Feb 2004, 11:19
von timo
nein, du mußt für den entsprechenden Artikel das Flag "createcode" auf 1 setzen, damit der Code beim nächsten mal neu generiert wird (siehe Tabelle con_cat_art, wenn ich mich nicht irre).

Verfasst: Mi 18. Feb 2004, 12:45
von matze
danke jetzt klappt's!!! :D
ich hab zudem den fehler gemacht und den obigen code in den output-bereich gestellt.

ciao,
matze