das modul legt eine neue tabelle an in dem die code snippets gespeichert werden... als internen zähler verwende ich einen neuen eintrag in der code sequence...
das modul ist in jeden beliebigen container (auch mehrfach) einsetzbar.
die anzeige und bearbeitung der snippets ist client und sprach gebunden!
getestet hab ich das noch nicht...
mögliche momentane aktionen | new | copy | delete | update...
(je nachdem was zur verfügung steht)
an sich ist jedes output modul ohne eine verwendung von sämtlichen CMS_* etc. lauffähig...
achtung: das modul ist nur für leute gedacht die wissen was sie anrichten können
für die eingabe des codes empfehle ich es direkt über die seiten konfiguration zu machen...
hier der code:
Name: Snippets v0.0.4
Beschreibung:
Code: Alles auswählen
# Snippets v0.0.4
# Autor: Martin Horwath
# Date: 16.11.2003
# Modified: 17.11.2003
# Requires: Contenido 4.4.1
Code: Alles auswählen
/**
* Snippets v0.0.4
*
* INPUT
*
* @autor Martin Horwath <horwath@dayside.net>
* @copyright dayside.net 2003
*/
// configuration
$cfg["tab"]["snippets"] = $cfg['sql']['sqlprefix']."_snippets"; // for syntax reasons only
$tmp_selected = "CMS_VALUE[1]";
// define the variables | $cnumber is used for unique actions
if (${"snippet_action".$cnumber} == "delete") {
$sql = "DELETE FROM ".$cfg["tab"]["snippets"]." WHERE (idsnippet='".$tmp_selected."')";
if ($db->query($sql)) {
$tmp_status = "Deleted\n";
} else {
$tmp_status = "Delete failed\n";
}
}
if (${"snippet_action".$cnumber} == "new") {
$tmp_selected = $db->nextid($cfg["tab"]["snippets"]);
$sql = "INSERT INTO ".$cfg["tab"]["snippets"]." (idsnippet,idclient,idlang,name,code,author,created,lastmodified) VALUES ('".$tmp_selected."','".$client."','".$lang."','".${"snippet_name".$cnumber}."','".addslashes(${"snippet_code".$cnumber})."','".$auth->auth["uname"]."','".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."')";
if ($db->query($sql)) {
$tmp_status = "Created\n";
} else {
unset($tmp_selected);
$tmp_status = "Creation failed\n";
}
}
if (${"snippet_action".$cnumber} == "update") {
$sql = "UPDATE ".$cfg["tab"]["snippets"]." SET name='".${"snippet_name".$cnumber}."', code='".addslashes(${"snippet_code".$cnumber})."',lastmodified='".date("Y-m-d H:i:s")."' WHERE (idsnippet='".$tmp_selected."')";
if ($db->query($sql)) {
$tmp_status = "Updated\n";
} else {
$tmp_status = "Update failed\n";
}
}
if($db->query("SELECT * FROM ".$cfg["tab"]["snippets"]." WHERE idclient =".$client." AND idlang = ".$lang)) {
while ($db->next_record()) {
$tmp_id = $db->f("idsnippet");
$tmp_option .= "<OPTION VALUE=\"".$tmp_id."\"";
if ( $tmp_selected == $tmp_id ) {
$tmp_name = $db->f("name");
$tmp_code = stripslashes($db->f("code"));
$tmp_option .=" selected=\"selected\"";
}
$tmp_option .= ">".$db->f("name")."</OPTION>\n";
}
echo "<!-- Snippets //-->\n";
echo "Name: <INPUT type=\"text\" name=\"snippet_name".$cnumber."\" value=\"".$tmp_name."\" class=\"text_medium\">\n";
if (isset($tmp_code)) { // show copy,delete,update
echo " | <A href=\"javascript:document.tplcfgform.submit();\" onclick=\"document.tplcfgform.snippet_action".$cnumber.".value='update';\">Update</A>\n";
echo " | <A href=\"javascript:document.tplcfgform.submit();\" onclick=\"document.tplcfgform.snippet_action".$cnumber.".value='new';\">Copy</A>\n";
echo " | <A href=\"javascript:document.tplcfgform.submit();\" onclick=\"document.tplcfgform.snippet_action".$cnumber.".value='delete';\">Delete</A>\n";
} else { // show new
echo " | <A href=\"javascript:document.tplcfgform.submit();\" onclick=\"document.tplcfgform.snippet_action".$cnumber.".value='new';\">New</A>\n";
}
if (isset($tmp_option)) { // show available snippets
echo " | Snippet: ";
echo "<SELECT name=\"CMS_VAR[1]\" onChange=\"form.submit();\" class=\"text_medium\">\n";
echo "<OPTION VALUE=\"\">".i18n("--- None ---")."</OPTION>\n";
echo $tmp_option;
echo "</SELECT>\n";
}
if (isset($tmp_code)) { // show selected snippet code
echo "<br><br>\n<TEXTAREA name=\"snippet_code".$cnumber."\" cols=60 rows=20 class=\"code_fullwidth\">";
echo $tmp_code;
echo "</TEXTAREA>\n";
}
echo "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"100%\">\n";
echo " <tr>\n";
echo " <td>";
// possible modulcheck goes here
// set via javascript , used 'visibility: hidden' to prevent onsubmit script
echo "<INPUT type=\"input\" name=\"snippet_action".$cnumber."\" value=\"\" class=\"text_medium\" style=\"visibility: hidden;\">\n";
if (isset($tmp_status)) {
echo " </td>\n";
echo " <td align=\"right\" width=\"50%\">\n";
echo "Status: ".$tmp_status;
}
echo " </td>\n";
echo " </tr>\n";
echo " </table>\n";
} else {
echo "error-> table: ".$cfg["tab"]["snippets"]." does not exist<br>";
// init table creation
$sql= "CREATE TABLE ".$cfg["tab"]["snippets"]." (
idsnippet INT(10) NOT NULL default '0',
idclient INT(10) NOT NULL default '0',
idlang INT(10) NOT NULL default '0',
name varchar(255) NOT NULL default '',
code longtext NOT NULL,
author varchar(32) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
lastmodified datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (idsnippet) )";
if ($db->query($sql)) {
// table successfully created
echo "init-> created table: ".$cfg["tab"]["snippets"]."<br>";
} else {
echo "error-> table: ".$cfg["tab"]["snippets"]."<br>";
}
$sql= "INSERT INTO ".$cfg["tab"]["sequence"]." (seq_name,nextid) VALUES ('".$cfg["tab"]["snippets"]."','0')";
if ($db->query($sql)) {
// value successfully insert
echo "init-> value insert into ".$cfg["tab"]["sequence"]." - ".$cfg["tab"]["snippets"]."<br>";
} else {
echo "error-> value: ".$cfg["tab"]["sequence"]." - ".$cfg["tab"]["snippets"]."<br>";
}
}
// cleanup destroy all intern variables
unset ($tmp_name);
unset ($tmp_code);
unset ($tmp_id);
unset ($tmp_status);
unset ($tmp_option);
unset ($tmp_selected);
Code: Alles auswählen
<?
/**
* Snippets v0.0.3
*
* OUTPUT
*
* @autor Martin Horwath <horwath@dayside.net>
* @copyright dayside.net 2003
*/
// configuration
$cfg["tab"]["snippets"] = $cfg['sql']['sqlprefix']."_snippets"; // for syntax reasons only
if($db->query("SELECT * FROM ".$cfg["tab"]["snippets"]." WHERE idclient =".$client." AND idlang = ".$lang." AND idsnippet = 'CMS_VALUE[1]'")) {
$db->next_record();
$idsnippet = $db->f("idsnippet");
$name = $db->f("name");
$code = " ?>".stripslashes($db->f("code"))."<?php ";
$author = $db->f("author");
$lastmodified = $db->f("lastmodified");
if ("" != "CMS_VALUE[1]") { // only show if value is set
echo "\n<!-- *snippet: start* id: $idsnippet | name: $name | author: $author | lastmodified: $lastmodified //-->\n";
eval($code);
echo "\n<!-- *snippet: end* id: $idsnippet | name: $name //-->\n";
}
} else {
echo "<!-- *snippet: error | check article configuration | set value: 'CMS_VALUE[1]' //-->";
}
?>