Modul 4.4.3 - Snippets v0.0.5 (Update)

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

Modul 4.4.3 - Snippets v0.0.5 (Update)

Beitrag von emergence » Di 24. Feb 2004, 13:34

beschreibung: http://www.contenido.de/forum/viewtopic.php?t=2407

neues feature: modul check integriert (icon links unten)
verwendet dafür die function modTestModule aus functions.mod.php

Name: Snippets v0.0.5
Beschreibung:

Code: Alles auswählen

# Snippets v0.0.5
# Autor: Martin Horwath
# Date: 16.11.2003
# Modified: 09.04.2004
# Requires: Contenido 4.4.3 or up
Input:

Code: Alles auswählen

/**
 * Snippets v0.0.5
 *
 * INPUT
 *
 * @autor Martin Horwath <horwath@dayside.net>
 * @copyright dayside.net 2003,2004
 */

 // configuration
 $cfg["tab"]["snippets"] = $cfg['sql']['sqlprefix']."_snippets"; // for syntax reasons only
 $tmp_selected = "CMS_VALUE[1]";

 // include modul check function
 include_once($cfg["path"]["contenido"] . $cfg['path']['includes'] .'functions.mod.php');

 // 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 htmlspecialchars($tmp_code);
     echo "</TEXTAREA>\n";
   }

   echo "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" width=\"100%\">\n";
   echo " <tr>\n";
   echo "   <td>";

   // do modulcheck if code available and show status
   if (isset($tmp_code)) {

      $outputok = modTestModule($tmp_code, $cnumber . "o",true);
      if (!$outputok)
      {
         $errorMessage = sprintf(i18n("Error in module. Error location: %s"),$modErrorMessage);
         $outled = '<img src="images/but_online_no.gif" alt="'.$errorMessage.'" title="'.$errorMessage.'">';
      } else {
         $okMessage = i18n("Module successfully compiled");
         $outled = '<img src="images/but_online.gif" alt="'.$okMessage.'" title="'.$okMessage.'">';
      }

      echo $outled;
   }

   // 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);
Output:

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]' //-->";
 }
?>
ich dachte mir diese kleine erweiterung erleichtert doch die entwicklung von outputmodulen um einiges...
der output code entspricht der alten snippets version, die vorhanden snippets in der db bleiben unangetastet...

mit bitte um feedback...
Zuletzt geändert von emergence am Fr 9. Apr 2004, 12:22, insgesamt 2-mal geändert.

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

Beitrag von matze » Mi 24. Mär 2004, 12:03

hallo emergence,

von meinem "redakteur" hab ich folgende mail zum "snippets-modul" erhalten. kannst du etwas dazu sagen?
also diese Snippetmodul ist komisch, Skripte die man aus dem Fenster herauskopiert sind irgendwie anders codiert nach unicode oder uf-8 oder so was - jedenfall wenn ich herauskopiere und in meinem Editor bearbeite funktionieren sie nach erneutem Eingfügen ins Modul nicht mehr 100%ig - Stylesheetangaben oder Tabellen stimmen plötzlich nicht mehr ganz.
danke,
matze

ps
ich nutze das modul "Snippets v0.0.4" und verwende ausschließlich html und javascript.

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

Beitrag von emergence » Mi 24. Mär 2004, 12:16

nein leider, sagt mir eigentlich wenig...
ohne ein code beispiel bzw. nähere ausführung was nicht stimmt, könnte ich nur raten.
das einzige was mir aufgefallen ist das zb &nbsp; nur als leerzeichen angezeigt werden...

eine kodierung nach unicode oder uf-8 findet im modul nicht statt. vielleicht nimmt diese konvertierung auch die datenbank vor..
möglich wärs...
*** make your own tools (wishlist :: thx)

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

Beitrag von emergence » Fr 9. Apr 2004, 12:21

Code: Alles auswählen

echo htmlspecialchars($tmp_code);
wurde oben ergänzt...
ein <textarea></textarea> ist jetzt möglich...
*** make your own tools (wishlist :: thx)

postitat
Beiträge: 36
Registriert: Fr 9. Apr 2004, 12:48
Kontaktdaten:

tolles teil!!!

Beitrag von postitat » Di 20. Apr 2004, 16:32

hallo auch!

bin beeindruckt - wie man sowas schreiben kann!!!

hab's gleich eingefügt dieses teil!

nur ich weiß nicht wo ich nun mein script hinschreibe... bzw. wie ich es dann aufrufe wenn ich weiß wo ich's hinschreibe.

vielleicht kann mir das jemand beschreiben.
wär echt dankbar dafür!!!

lg,
heli

kite
Beiträge: 33
Registriert: Mi 25. Mai 2005, 10:12
Kontaktdaten:

Beitrag von kite » So 29. Mai 2005, 09:13

Hi, ich hab Probleme mit Snippets in Con 4.4.5 .

OB ich nun normalen Text, HTML oder PHP in das Modul eingebe... nix wird auf der Page angezeigt, obwohl es im Modul selbst gespeichert wurde.

Mach ich irgendwas falsch oder liegt das an Snippets + con 4.4.5 ?

Jaegermeister-a
Beiträge: 13
Registriert: So 2. Okt 2005, 13:06
Kontaktdaten:

Beitrag von Jaegermeister-a » Mi 5. Okt 2005, 15:23

Bei mir wird der Iutput irgrgendwie als flsch angeben...bitte um Hilfe

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

Beitrag von emergence » Mi 5. Okt 2005, 15:30

irgendwie ? na kein problem dir ne vernünftige antwort zu geben...

woher sollen wir wissen welche fehlermeldung wo auftritt ? :roll:

abgesehen davon:
das modul ist nur für leute gedacht die wissen was sie anrichten können
*** make your own tools (wishlist :: thx)

Gesperrt