Posts mit dem Label COMA werden angezeigt. Alle Posts anzeigen
Posts mit dem Label COMA werden angezeigt. Alle Posts anzeigen

Donnerstag, 27. Mai 2010

COMA/Solaris: Auf das Coderverzeichnis zugreifen

ln -s "/mnt/cifs/$USER@webdev.leipzig.ufz.de:coder" coder

COMA/Solaris: Auf das Coderverzeichnis zugreifen

ln -s "/mnt/cifs/$USER@webdev.leipzig.ufz.de:coder" coder

Dienstag, 13. April 2010

PHP: File Upload


<?php
$message = "";

if(isset($_FILES["file_name"]))
{
$upload_dir = "/www/data/";
$file_name = $_FILES['file_name']['name'];
$file_temp = $_FILES['file_name']['tmp_name'];

move_uploaded_file($file_temp,
$upload_dir.$file_name);

$message = "

$file_name
($file_size Byte) nach
$upload_dir hochgeladen!

";
}

$html = <<< HTML
<form action="{$_SERVER['PHP_SELF']}"
enctype="multipart/form-data"
method="post">
<input type="file" name="file_name" />
<input type="submit" value="Kopieren" />
</form>
HTML;

echo $html.$message;
?>

PHP: File Upload


<?php
$message = "";

if(isset($_FILES["file_name"]))
{
$upload_dir = "/www/data/";
$file_name = $_FILES['file_name']['name'];
$file_temp = $_FILES['file_name']['tmp_name'];

move_uploaded_file($file_temp,
$upload_dir.$file_name);

$message = "

$file_name
($file_size Byte) nach
$upload_dir hochgeladen!

";
}

$html = <<< HTML
<form action="{$_SERVER['PHP_SELF']}"
enctype="multipart/form-data"
method="post">
<input type="file" name="file_name" />
<input type="submit" value="Kopieren" />
</form>
HTML;

echo $html.$message;
?>

Freitag, 19. März 2010

Oracle: LDAP ID als Primärschlüssel


CALL drop_object('t_test');
CREATE TABLE t_test (test_id NUMBER, uid_text VARCHAR2(80));

CREATE OR REPLACE TRIGGER insert_lid
BEFORE INSERT ON t_test FOR EACH ROW

DECLARE
l_ldap_host VARCHAR2(256) := 'hera.leipzig.ufz.de';
l_ldap_port VARCHAR2(256) := '389';
l_ldap_base VARCHAR2(256) := 'dc=ufz,dc=de';
l_retval PLS_INTEGER;
l_session DBMS_LDAP.session;
l_attrs DBMS_LDAP.string_collection;
l_message DBMS_LDAP.message;
l_entry DBMS_LDAP.message;
l_vals DBMS_LDAP.string_collection;

BEGIN
l_session := DBMS_LDAP.init
(
hostname => l_ldap_host,
portnum => l_ldap_port
);

l_retval := DBMS_LDAP.simple_bind_s
(
ld => l_session,
dn => NULL,
passwd => NULL
);

l_attrs(0) := 'uidNumber';
l_retval := DBMS_LDAP.search_s
(
ld => l_session,
base => l_ldap_base,
scope => DBMS_LDAP.SCOPE_SUBTREE,
filter => '(&
(nsrole=*roleself*)
(objectClass=ufzperson)
(uid=' || :new.uid_text || ')
)',
attrs => l_attrs,
attronly => 0,
res => l_message
);

IF DBMS_LDAP.count_entries
(
ld => l_session,
msg => l_message
) = 1
THEN
l_entry := DBMS_LDAP.first_entry
(
ld => l_session,
msg => l_message
);

l_vals := DBMS_LDAP.get_values
(
ld => l_session,
ldapentry => l_entry,
attr => l_attrs(0)
);
END IF;

DBMS_OUTPUT.PUT_LINE
(
l_attrs(0) || ' = ' || l_vals(0)
);

l_retval := DBMS_LDAP.unbind_s
(
ld => l_session
);

:new.test_id := l_vals(0);

END;
/

Der Trigger könnte z.B. so ausgelöst werden:


INSERT INTO t_test (uid_text)
VALUES ('dutzend');

Oracle: LDAP ID als Primärschlüssel


CALL drop_object('t_test');
CREATE TABLE t_test (test_id NUMBER, uid_text VARCHAR2(80));

CREATE OR REPLACE TRIGGER insert_lid
BEFORE INSERT ON t_test FOR EACH ROW

DECLARE
l_ldap_host VARCHAR2(256) := 'hera.leipzig.ufz.de';
l_ldap_port VARCHAR2(256) := '389';
l_ldap_base VARCHAR2(256) := 'dc=ufz,dc=de';
l_retval PLS_INTEGER;
l_session DBMS_LDAP.session;
l_attrs DBMS_LDAP.string_collection;
l_message DBMS_LDAP.message;
l_entry DBMS_LDAP.message;
l_vals DBMS_LDAP.string_collection;

BEGIN
l_session := DBMS_LDAP.init
(
hostname => l_ldap_host,
portnum => l_ldap_port
);

l_retval := DBMS_LDAP.simple_bind_s
(
ld => l_session,
dn => NULL,
passwd => NULL
);

l_attrs(0) := 'uidNumber';
l_retval := DBMS_LDAP.search_s
(
ld => l_session,
base => l_ldap_base,
scope => DBMS_LDAP.SCOPE_SUBTREE,
filter => '(&
(nsrole=*roleself*)
(objectClass=ufzperson)
(uid=' || :new.uid_text || ')
)',
attrs => l_attrs,
attronly => 0,
res => l_message
);

IF DBMS_LDAP.count_entries
(
ld => l_session,
msg => l_message
) = 1
THEN
l_entry := DBMS_LDAP.first_entry
(
ld => l_session,
msg => l_message
);

l_vals := DBMS_LDAP.get_values
(
ld => l_session,
ldapentry => l_entry,
attr => l_attrs(0)
);
END IF;

DBMS_OUTPUT.PUT_LINE
(
l_attrs(0) || ' = ' || l_vals(0)
);

l_retval := DBMS_LDAP.unbind_s
(
ld => l_session
);

:new.test_id := l_vals(0);

END;
/

Der Trigger könnte z.B. so ausgelöst werden:


INSERT INTO t_test (uid_text)
VALUES ('dutzend');

Dienstag, 9. März 2010

COMA: Linkicons und Glossarlinks setzen

Um z.B. in AJAX-Responses nachträglich die Glossarlinks und Linkicons zu setzen, kann man nachfolgende COMA-Funktion nutzen:

$html = "HTML mit Glossarbegriffen und Hyperlinks";
$root_pid = 28;
$html = linkicon_glossar_parser($html, $root_pid);
Der Parameter $root_pid entscheidet über das Setzen der Glossarlinks (Knoten 1 JA, Knoten 9 NEIN ?).

Zu ersetzende Linkicons müssen in einem DIV mit der ID content stehen (nicht valide da ID dann doppelt)!

COMA: Linkicons und Glossarlinks setzen

Um z.B. in AJAX-Responses nachträglich die Glossarlinks und Linkicons zu setzen, kann man nachfolgende COMA-Funktion nutzen:

$html = "HTML mit Glossarbegriffen und Hyperlinks";
$root_pid = 28;
$html = linkicon_glossar_parser($html, $root_pid);
Der Parameter $root_pid entscheidet über das Setzen der Glossarlinks (Knoten 1 JA, Knoten 9 NEIN ?).

Zu ersetzende Linkicons müssen in einem DIV mit der ID content stehen (nicht valide da ID dann doppelt)!

COMA: Makroparser aufrufen

Um z.B. Makros in AJAX-Responses zu parsen, kann man nachfolgende COMA-Funktion nutzen:

$html = "HTML mit einem Makro (§fgetpic_9908§)";
$html = ersetze_funktionstemplates
(
$conn, $sprache, $code, $html,
$baum, $adm, $su, $pub
);

COMA: Makroparser aufrufen

Um z.B. Makros in AJAX-Responses zu parsen, kann man nachfolgende COMA-Funktion nutzen:

$html = "HTML mit einem Makro (§fgetpic_9908§)";
$html = ersetze_funktionstemplates
(
$conn, $sprache, $code, $html,
$baum, $adm, $su, $pub
);

Mittwoch, 3. März 2010

COMA: Cron-Job einrichten

Als erstes erstellt man das Makro, welches per Cron aufgerufen werden soll.
Danach sucht man sich in der Datenbank die Tabelle W_CJ.
In die Spalte CJ_FKT trägt man den Namen des Makros ein.
Der Eintrag in die Spalte CJ_EXE besteht aus 4 Ziffern, die ersten beiden geben die volle Stunde an, in der das Makro gestartet wird (00 - 23).
Die beiden letzten stehen für den Tag im Monat an dem man das Makro ausführen möchte (01 - 31), 00 steht dabei für täglich.
In der Spalte CJ_LAST_EXE wird das Datum gesetzt an dem der Job zum letzten Mal ausgeführt wurde.

COMA: Cron-Job einrichten

Als erstes erstellt man das Makro, welches per Cron aufgerufen werden soll.
Danach sucht man sich in der Datenbank die Tabelle W_CJ.
In die Spalte CJ_FKT trägt man den Namen des Makros ein.
Der Eintrag in die Spalte CJ_EXE besteht aus 4 Ziffern, die ersten beiden geben die volle Stunde an, in der das Makro gestartet wird (00 - 23).
Die beiden letzten stehen für den Tag im Monat an dem man das Makro ausführen möchte (01 - 31), 00 steht dabei für täglich.
In der Spalte CJ_LAST_EXE wird das Datum gesetzt an dem der Job zum letzten Mal ausgeführt wurde.

Mittwoch, 20. Januar 2010

COMA: Angemeldeten User ermitteln


SELECT a.lid, b.login_name FROM web.wsess a, web.wlogin b WHERE sid = $sess_id AND a.lid = b.lid

COMA: Angemeldeten User ermitteln


SELECT a.lid, b.login_name FROM web.wsess a, web.wlogin b WHERE sid = $sess_id AND a.lid = b.lid

COMA: Bild dynamisch erzeugen

Hier als Makro umgesetzt, welches so aufgerufen wird:
[§fcreatePic§]


function createPic() {

if(isset($_REQUEST['getpic']) &&
Header("Content-type: image/jpeg");
$width = "300";
$height = "50";
// neues Bild erzeugen
$image = ImageCreateTrueColor($width, $height);
// Farben definieren
$col1 = ImageColorAllocate($image, 255, 255, 200);
$col2 = ImageColorAllocate($image, 0, 0, 0);
// Hintergrund mit Farbe füllen
ImageFill($image, 0, 0, $col1);
// Text dazu
ImageString ($image, 5, 20, 20,
"Coded bei FIAE", $col2);
// Grafik ausgeben
ImageJPEG($image);
// Speicher wieder frei geben
ImageDestroy($image);
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}

COMA: Bild dynamisch erzeugen

Hier als Makro umgesetzt, welches so aufgerufen wird:
[§fcreatePic§]


function createPic() {

if(isset($_REQUEST['getpic']) &&
Header("Content-type: image/jpeg");
$width = "300";
$height = "50";
// neues Bild erzeugen
$image = ImageCreateTrueColor($width, $height);
// Farben definieren
$col1 = ImageColorAllocate($image, 255, 255, 200);
$col2 = ImageColorAllocate($image, 0, 0, 0);
// Hintergrund mit Farbe füllen
ImageFill($image, 0, 0, $col1);
// Text dazu
ImageString ($image, 5, 20, 20,
"Coded bei FIAE", $col2);
// Grafik ausgeben
ImageJPEG($image);
// Speicher wieder frei geben
ImageDestroy($image);
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}

Dienstag, 19. Januar 2010

COMA: Oracle-Blob als Image-Stream

Hier als Makro umgesetzt, welches z.B. so aufgerufen wird:
[§fpicStream_13404§]
Als Parameter wird die gewünschte Bild-ID übergeben.


function picStream($conn, $param) {

if(isset($_REQUEST['getpic']) &&
is_numeric($param)) {

$sql = "select pics_blob from web.wpics
where pics_id=$param";
$stmt = OCIparse($conn, $sql) ;
OCIExecute($stmt,OCI_DEFAULT) ;
$check = OCIFetchInto($stmt, $row, OCI_ASSOC);
if($check == 1)
echo $row["PICS_BLOB"]->load();
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}

COMA: Oracle-Blob als Image-Stream

Hier als Makro umgesetzt, welches z.B. so aufgerufen wird:
[§fpicStream_13404§]
Als Parameter wird die gewünschte Bild-ID übergeben.


function picStream($conn, $param) {

if(isset($_REQUEST['getpic']) &&
is_numeric($param)) {

$sql = "select pics_blob from web.wpics
where pics_id=$param";
$stmt = OCIparse($conn, $sql) ;
OCIExecute($stmt,OCI_DEFAULT) ;
$check = OCIFetchInto($stmt, $row, OCI_ASSOC);
if($check == 1)
echo $row["PICS_BLOB"]->load();
}
else {
return "<img src=\"{$_SERVER["REQUEST_URI"]}&getpic\">";
}
}

Donnerstag, 14. Januar 2010

COMA: LDAP per PHP durchsuchen


function search_user_ldap($string) {

$filter =
"(&
// aktiviert, deaktiviert, alle
(nsrole=*roleself*)
(objectclass=ufzperson)
// Attribut nach dem wir suchen (sn=Surname)
(sn=".$string."*)
)";
// Attribute die geliefert werden sollen
$attr = array("sn");
// Menge der Suchergebnisse (0=unbegrenzt)
$count = 0;
// Ergebnisarray
$search = array();

if(cldap_Search("", &$search, $filter, $attr, $count)) {

$search = cldap_DeleteCount($search, 1);

foreach($search as $val) {
$ret[] = $val[$attr[0]][0];
}
}
return $ret;
}

COMA: LDAP per PHP durchsuchen


function search_user_ldap($string) {

$filter =
"(&
// aktiviert, deaktiviert, alle
(nsrole=*roleself*)
(objectclass=ufzperson)
// Attribut nach dem wir suchen (sn=Surname)
(sn=".$string."*)
)";
// Attribute die geliefert werden sollen
$attr = array("sn");
// Menge der Suchergebnisse (0=unbegrenzt)
$count = 0;
// Ergebnisarray
$search = array();

if(cldap_Search("", &$search, $filter, $attr, $count)) {

$search = cldap_DeleteCount($search, 1);

foreach($search as $val) {
$ret[] = $val[$attr[0]][0];
}
}
return $ret;
}