Hallo Hackerboard Community,
Ich habe mir auf meiner Seite eine Funktion eingebaut die es mir und den Registrierten Community Mitgliedern erlaubt "Markierungen" auf Bildern abzulegen und mit einem Text zu versehen.
Das würde ich jetzt gerne erweitern und zwar um den Punkt:
Bei Klick auf die Markierung auf eine andere Seite verlinkt zu werden (Idealerweise das Profil der Verlinkten Person)
zusehen Hier zB.
Wenn ich eine Notiz erstelle das schaut dann folgendermaßen aus:
Das ganze wird in einer MySql Datenbank Gespeichert (also die Koordinaten, in Verbindung mit der Bild ID)
Jetzt möchte ich das ganze noch ein wenig "aufpeppen" viele kennen sicherlich die MeinVZ Option wo man seine Freunde verlinken kann und wenn man dann auf diese Verlinkung klickt auf das Profil des Freundes geleitet wird. Und genau diese Funktion möchte Ich gerne nachbauen.
Mein ganzes Script basiert größtenteils auf http://www.takaitra.com/projects/photonotes php photonotes (habe schon einige Änderungen eingebaut um es an mein CMS anzupassen)
Bisher gibt es 1 PHP Script was in einer ajax Javscript Datei includiert wird.
In diesem Code hab ich schon // Freunde auslesen
den Code eingefügt mittels der Ich die Freunde auslesen kann.
Was dann als Variable $user ausgegeben wird.
Das Ganze soll dann als "Drop Down" angezeigt werden wenn ich eine Verlinkung in einem Bild erstelle sprich:
Nur wie bekomme ich diese $user Variable mit in den JavaScript Code?
Das ist die Ajax Javascript Datei (Gibt noch einige mehr) Ich vermute aber das der Hauptteil in dieser Datei ist.
Ich komm bei dem Teil einfach nicht weiter :/
Zudem muss ich dann am Ende auch noch im Javascript anzeigen das wenn eine Verlinkung auf einen Freund ist, auch der Link, durch den Klick auf eben diese Freundes Verlinkung, den "Klicker" weiterleitet.
Kann mir Jemand Helfen? Gerne auch per ICQ oÄ
Danke & Gruß,
Fabian
Ich habe mir auf meiner Seite eine Funktion eingebaut die es mir und den Registrierten Community Mitgliedern erlaubt "Markierungen" auf Bildern abzulegen und mit einem Text zu versehen.
Das würde ich jetzt gerne erweitern und zwar um den Punkt:
Bei Klick auf die Markierung auf eine andere Seite verlinkt zu werden (Idealerweise das Profil der Verlinkten Person)
zusehen Hier zB.
Wenn ich eine Notiz erstelle das schaut dann folgendermaßen aus:
Das ganze wird in einer MySql Datenbank Gespeichert (also die Koordinaten, in Verbindung mit der Bild ID)
Jetzt möchte ich das ganze noch ein wenig "aufpeppen" viele kennen sicherlich die MeinVZ Option wo man seine Freunde verlinken kann und wenn man dann auf diese Verlinkung klickt auf das Profil des Freundes geleitet wird. Und genau diese Funktion möchte Ich gerne nachbauen.
Mein ganzes Script basiert größtenteils auf http://www.takaitra.com/projects/photonotes php photonotes (habe schon einige Änderungen eingebaut um es an mein CMS anzupassen)
Bisher gibt es 1 PHP Script was in einer ajax Javscript Datei includiert wird.
PHP:
<?php
include("_mysql.php");
include("_settings.php");
include("_functions.php");
$mysqli = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME);
if (mysqli_connect_errno()) {
// TODO handle connection error
printf('Connect failed: %s\n', mysqli_connect_error());
exit();
}
// Hiermit lese ich die Freunde aus
$ergebnis=safe_query("SELECT buddy FROM ".PREFIX."buddys WHERE userID='$userID'");
$user='';
while($ds=mysql_fetch_array($ergebnis)) {
$user.='<option value="'.$ds['buddy'].'">'.getnickname($ds['buddy']).'</option>';
}
if($user=="") $user='<option value="">Du hast keine Freunde</option>';
else $user = '<option value="" selected="selected">---</option>'.$user;
// Freunde auslesen Ende
if ($_POST['action'] == 'load') {
// Load notes for the given photo
$photoIds = explode('~', $_POST['photo_ids']);
reset($photoIds);
foreach($photoIds as $key => $photoId)
$photoIds[$key] = $mysqli->real_escape_string($photoId);
$sqlIn = "('" . implode("','", $photoIds) . "')";
$sql = 'SELECT `photo_id`, `note_id`, `left`, `top`, `width`, `height`, `text` FROM ' . TBLNAME . " WHERE photo_id IN $sqlIn";
$results = $mysqli->query($sql);
while ($note = $results->fetch_object()) {
echo "var note = new PhotoNote('$note->text', $note->note_id, new PhotoNoteRect($note->left, $note->top, $note->width, $note->height));\n";
echo "note.onsave = saveNote;\n";
echo "note.ondelete = deleteNote;\n";
echo "containers['$note->photo_id'].AddNote(note);\n";
}
}
else if ($_POST['action'] == 'save') {
// Save action
$photoId = $mysqli->real_escape_string($_POST['photo_id']);
$text = $mysqli->real_escape_string($_POST['text']);
$left = intval($_POST['left']);
$top = intval($_POST['top']);
$width = intval($_POST['width']);
$height = intval($_POST['height']);
if ($_POST['note_id'] == -1) {
// Insert new note
$sql = 'INSERT INTO ' . TBLNAME . " (`photo_id`, `note_id`, `left`, `top`, `width`, `height`, `text`)
VALUES ('$photoId', NULL, $left, $top, $width, $height, '$text')";
if ($mysqli->query($sql)) {
$noteId = $mysqli->insert_id;
} else {
// TODO handle insert error ($mysqli->error)
$noteId = "0"; // error
}
} else {
// Update existing note
$noteId = intval($_POST['note_id']);
$sql = 'UPDATE ' . TBLNAME . " SET `left` = $left, `top` = $top, `width` = $width, `height` = $height, `text` = '$text'
WHERE photo_id = '$photoId' AND note_id = $noteId";
if (!$mysqli->query($sql)) {
// TODO handle delete error ($mysqli->error)
$noteId = "0"; // error
}
}
// Return note ID to calling page
echo $noteId;
}
else if ($_POST['action'] == 'delete') {
// Delete action
$photoId = $mysqli->real_escape_string($_POST['photo_id']);
$noteId = $mysqli->real_escape_string($_POST['note_id']);
$sql = 'DELETE FROM ' . TBLNAME . " WHERE photo_id = '$photoId' AND note_id = $noteId";
if (!$mysqli->query($sql)) {
// TODO handle delete error ($mysqli->error)
echo "0"; // error
}
echo "1"; // success
}
?>
den Code eingefügt mittels der Ich die Freunde auslesen kann.
Was dann als Variable $user ausgegeben wird.
Das Ganze soll dann als "Drop Down" angezeigt werden wenn ich eine Verlinkung in einem Bild erstelle sprich:
Code:
<select name="freund" size="1">$user</select>
Code:
var ajax = new sack();
var statusDiv = document.getElementById('PhotoNoteStatus');
var containers = []; // Array of PhotoNoteContainers
function resetAjax() {
ajax.resetData();
ajax.requestFile = "gallerynotizen.php";
ajax.method = 'post';
ajax.element = 'DebugDiv';
}
function loadNotes(photoIds) {
// Create the containers
for (var i = 0; i<photoIds.length; i++) {
var photoId = photoIds[i];
containers[photoId] = new PhotoNoteContainer(document.getElementById(photoId));
}
// Now load the associated notes
resetAjax();
ajax.setVar('action', 'load');
ajax.setVar('photo_ids', photoIds.join('~'));
ajax.runAJAX();
ajax.onCompletion = loadNotesComplete;
}
function loadNotesComplete() {
ajax.runResponse();
statusDiv.innerHTML = "Notiz geladen";
}
function addNote(photoId)
{
var newNote = new PhotoNote('Notiz..', -1, new PhotoNoteRect(50,50,50,50));
newNote.onsave = saveNote;
newNote.ondelete = deleteNote;
containers[photoId].AddNote(newNote);
newNote.Select();
}
function saveNote (note) {
resetAjax();
var photoId = note.container.element.id;
ajax.setVar('action', 'save');
ajax.setVar('photo_id', photoId);
ajax.setVar('note_id', note.id);
ajax.setVar('left', note.rect.left);
ajax.setVar('top', note.rect.top);
ajax.setVar('width', note.rect.width);
ajax.setVar('height', note.rect.height);
ajax.encVar('text', note.gui.TextBox.value);
ajax.runAJAX();
ajax.onCompletion = function () {statusDiv.innerHTML = "Verlinkung gespeichert!"; }
return 1;
}
function deleteNote (note) {
resetAjax();
var photoId = note.container.element.id;
ajax.setVar('action', 'delete');
ajax.setVar('photo_id', photoId);
ajax.setVar('note_id', note.id);
ajax.runAJAX();
ajax.onCompletion = function () {statusDiv.innerHTML = "Verlinkung entfernt!"; }
return 1;
}
function whenLoading() {
var element = document.getElementById('PhotoNoteStatus');
if (element)
element.innerHTML = "<p>Sending Data...</p>";
}
function whenLoaded() {
var element = document.getElementById('PhotoNoteStatus');
if (element)
element.innerHTML = "<p>Data Sent...</p>";
}
function whenInteractive() {
var element = document.getElementById('PhotoNoteStatus');
element.innerHTML = "<p>Getting data...</p>";
}
ajax.onLoading = whenLoading;
ajax.onLoaded = whenLoaded;
ajax.onInteractive = whenInteractive;
Ich komm bei dem Teil einfach nicht weiter :/
Zudem muss ich dann am Ende auch noch im Javascript anzeigen das wenn eine Verlinkung auf einen Freund ist, auch der Link, durch den Klick auf eben diese Freundes Verlinkung, den "Klicker" weiterleitet.
Kann mir Jemand Helfen? Gerne auch per ICQ oÄ
Danke & Gruß,
Fabian