/home/rei/tagcode.php
<?php
if(isset($_POST['corp'])) {
// MUST PROVIDE AN ID
if( isset($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] != "" ) {
$id = $_POST['id'];
} else {
require_once("includes/bottom.php");
exit();
}
// MUST PROVIDE CORP
if( isset($_POST['corp']) && is_numeric($_POST['corp']) && $_POST['corp'] != "" ) {
$corp = $_POST['corp'];
} else {
require_once("includes/bottom.php");
exit();
}
// MUST PROVIDE TAGS
if( isset($_POST['comment']) && strlen($_POST['comment']) < 256 ) {
$comment = $_POST['comment'];
$comment = strip_tags($comment);
} else {
require_once("includes/bottom.php");
exit();
}
function
lookfor($item,$array)
{
return array_search($item,$array);
}
function
removetagbyid($word,$thetag,$corp,$id,$sqlr,$sqlw)
{
if(is_numeric($thetag)) $query = "DELETE FROM tagged WHERE id = $id AND corp = $corp AND tag = $thetag";
$sqlw->d($query);
echo "<H6>Remove tag: $word</H6>";
}
function
lookup($tag, $sqlr)
{
$query = "SELECT * FROM tags WHERE tag = '$tag'";
$array = $sqlr->q($query);
$result = $array['r'];
$num = $array['n'];
if( $num > 0 ) $tagid = mysql_result($result,0,"id");
else $tagid = "";
return $tagid;
}
function
fillB($id,$corp,$sqlr)
{
$query = "SELECT tags.tag FROM tagged LEFT JOIN tags ON tagged.tag = tags.id WHERE corp=$corp AND tagged.id = $id";
$array = $sqlr->q($query);
$result = $array['r'];
$num = $array['n'];
$B = array();
for($i = 0; $i < $num; $i++) {
$B[] = mysql_result($result,$i,"tag");
}
return $B;
}
function
istagged($thetag, $id, $tagdb, $corp, $sqlr)
{
$query = "SELECT * FROM $tagdb WHERE tag = $thetag AND id = $id AND corp = $corp";
$array = $sqlr->q($query);
$result = $array['r'];
$num = $array['n'];
if( $num > 0 ) $tagid = mysql_result($result,0,"id");
else $tagid = "";
return $tagid;
}
function maketag($word, $id, $uid, $sqlw)
{
$query = "INSERT INTO tags VALUES ('0', '$word','$uid')";
$sqlw->i($query);
}
function tag($thetag, $id, $corp, $uid, $tagdb, $sqlw)
{
$query = "INSERT INTO $tagdb VALUES ('$id', '$corp', '$thetag', '$uid')";
$sqlw->i($query);
}
function
untagall($id,$corp,$sqlr,$sqlw)
{
$query = "DELETE FROM tagged WHERE id = $id AND corp = $corp";
$sqlw->d($query);
echo "<H6>Removed ALL tags.</H6>";
}
$tagdb = "tagged";
$tag = explode(",", $comment);
$ref = $_SERVER['HTTP_REFERER'];
$A = $tag;
$B = fillB($id,$corp,$sqlr);
if( count($B) == 0 ) {
// assume we add everything, delete nothing
foreach( $tag as $word ) {
$word = trim($word);
$thetag = lookup($word,$sqlr);
if( strlen($word) > 32 ) {
echo "<P>Long tag ignored (32 character MAX). Please separate tags with commas.</P>";
}
else {
if( $thetag != "" ) {
if( istagged($thetag, $id, $tagdb, $corp, $sqlr) ) {
}
else {
tag($thetag, $id, $corp, $uid, $tagdb, $sqlw);
echo "<P>Tagged it <b>$word</b>.</P>";
}
} else {
maketag($word, $id, $uid, $sqlw);
echo "<P>Created new tag <b>$word</b>.</P>";
$thetag = lookup($word, $sqlr);
tag($thetag, $id, $corp, $uid, $tagdb, $sqlw);
echo "<P>Tagged it <b>$word</b>.</P>";
}
}
}
}
else {
if( count($A) == 0 || $A[0] == "" ) {
// assume we delete everything, add nothing
untagall($id,$corp,$sqlr,$sqlw);
}
else {
// ugh, so we have to work eh. check for matching tags, ignore
$A2 = array();
$B2 = array();
for($i = 0; $i < count($A); $i++) {
if( lookfor($A[$i],$B) === FALSE ) $A2[] = $A[$i]; // add unique entry
}
for($i = 0; $i < count($B); $i++) {
if( lookfor($B[$i],$A) === FALSE ) $B2[] = $B[$i]; // add unique entry
}
// add all $A2's
foreach( $A2 as $word ) {
$word = trim($word);
$thetag = lookup($word,$sqlr);
if( strlen($word) > 32 ) {
echo "<P>Long tag ignored (32 character MAX). Please separate tags with commas.</P>";
}
else {
if( $thetag != "" ) {
tag($thetag, $id, $corp, $uid, $tagdb, $sqlw);
echo "<P>Tagged it <b>$word</b>.</P>";
} else {
maketag($word, $id, $uid, $sqlw);
echo "<P>Created new tag <b>$word</b>.</P>";
$thetag = lookup($word, $sqlr);
tag($thetag, $id, $corp, $uid, $tagdb, $sqlw);
echo "<P>Tagged it <b>$word</b>.</P>";
}
}
}
// delete all $B2's
foreach( $B2 as $word ) {
$word = trim($word);
$thetag = lookup($word,$sqlr);
if($thetag != "") removetagbyid($word,$thetag,$corp,$id,$sqlr,$sqlw);
}
}
}
} // all of this conditional on $_POST['corp']
?>
Generated by GNU enscript 1.6.4.