Modul "snippet" 2 mal einsetzten?

Gesperrt
arakis
Beiträge: 81
Registriert: Di 18. Nov 2003, 16:27
Kontaktdaten:

Modul "snippet" 2 mal einsetzten?

Beitrag von arakis »

Hallo!
Habe eine Frage zum snippet modul. Kann ich dieses 2 mal einsetzten indem ich statt der der tabelle snippet einen anderen namen verwende? Muss ich den Wert "snippet" im gesamten Scriptz ändern? Bin in PHP recht schwach.. Bitte um Hilfe.
Code:

Code: Alles auswählen

I N P U T:

/** 
* 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); 


O U T P U T:

<? 
/** 
* 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]' //-->"; 
} 
?>
2Code
Beiträge: 73
Registriert: So 4. Jan 2004, 11:24
Kontaktdaten:

Beitrag von 2Code »

Ja es reicht wenn Du im input und Output den Tabellennamen änderst.
arakis
Beiträge: 81
Registriert: Di 18. Nov 2003, 16:27
Kontaktdaten:

:-)

Beitrag von arakis »

dankeschön - werd ich gleich mal testen!
lg
arakis
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm jetzt bin ih neugierig geworden...

wieso ändern des tabellen namens... ?
das modul mit tabelle ist so geschrieben das es für unterschiedliche clients ohne neu anlegen einer tabelle funktionieren sollte...

oder geht das nicht ? (das wäre dann ein bug)

ein mehrfaches verwenden in unterschiedlichen containern muss an sich auch ohne probleme funktionieren ohne am code des moduls etwas zu ändern...
BerBlueSea
Beiträge: 58
Registriert: Mi 26. Nov 2003, 16:56
Kontaktdaten:

Was macht dieses Script genau??

Beitrag von BerBlueSea »

wollte nur mal die Funktion dieses Scriptes wissen!
Gesperrt