Hilfe beim Coden: Favoriten abfrage in die page_header?

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Hilfe beim Coden: Favoriten abfrage in die page_header?

Beitrag von JumpinJack »

Also jeder kennt von euch die Page_header.php.
Nun benötige ich in dieser, eine DB-Abfrage um die Favoriten (intern und extern) auszugeben.
Als beispiel nehme ich hier nur die externen.

Wie bekomme ich den code da richtig rein? Muss ich was anpassen?
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management


// USER EINGELOGGT ? START
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("login.$phpEx?redirect=favorites_ext.$phpEx", true));
exit;
}
// USER EINGELOGGT ? ENDE


// EINTRAG LÖSCHEN START
if ( isset($HTTP_GET_VARS['mode']) )
{
$mode = ($HTTP_GET_VARS['mode']);

if ( $mode == 'remove' )
{
if ( isset($HTTP_GET_VARS['t']))
{
$fav_id = (intval($HTTP_GET_VARS['t']));
$user_id = ($userdata['user_id']);
$sql = "DELETE FROM " . $table_prefix . "favorites_ext WHERE user_id = '$user_id' AND fav_id = '$fav_id'";

if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $lang['remove_fav_data'], '', __LINE__, __FILE__, $sql);
}
}
if ( !(isset($HTTP_GET_VARS['t'])) )
{
message_die(GENERAL_MESSAGE, $lang['no_fav_topic']);
exit;
}
$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
header($header_location . append_sid("favorites_ext." . $phpEx, true));
exit;
}
}
else
{
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$user_id = ($userdata['user_id']);
// EINTRAG LÖSCHEN ENDE




$template->set_filenames(array(
'body' => '../fav_ext_body.tpl')
);



// EXTERNE URL EINTRAGEN START
if ($submit_update)
{
$user_id = ($userdata['user_id']);
$sql = "INSERT INTO " . $table_prefix . "favorites_ext (fav_id, user_id, ext_id, ext_name) VALUES (NULL, '$user_id', '$ext_id', '$ext_name')";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $lang['insert_fav_data'], '', __LINE__, __FILE__, $sql);
}
}
// EXTERNE URL EINTRAGEN ENDE



$template->assign_vars(array(
'U_INDEX' => append_sid("index.$phpEx"),
'L_INDEX' => $lang['Index'],
"ext_id" => $ext_id,
"ext_name" => $ext_name,
"L_SUBMIT" => $lang['Submit'],
'L_DELETE' => $lang['Delete'])
);


// AUSGABE DER URLs:
// $sql = "SELECT * FROM " . $table_prefix . "favorites_ext fe WHERE fe.user_id = '" . $userdata['user_id'] . "' ORDER BY fav_id";
$sql = "SELECT * FROM " . $table_prefix . "favorites_ext fe WHERE fe.user_id = '" . $userdata['user_id'] . "' ORDER BY ext_name";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_MESSAGE, 'Could not get extern favorites data', '', __LINE__, __FILE__, $sql);
}

while ( $row = $db->sql_fetchrow($result) )
{
$template->assign_block_vars("topicrow", array(
'ext_id' => $row['ext_id'],
'ext_name' => $row['ext_name'],
'L_REMOVE' => $lang['Delete'],
'U_REMOVE' => append_sid("favorites_ext.$phpEx?mode=remove&t=" . $row['fav_id']))
);
}



$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
?>
Also fakt ist das ich nur die Linknamen und die Link-href´s brauche. Ich benötige keine funktionen. Also habe ich mal die Stellen grün gemacht, wo ich meine das ich diese Passagen noicht benötige. Rot sind die passagen welche wahrscheinlich angepast werden müssen.

Irgendwie mekkert der aber bei mir wegen der tenplate.php auf zeile 30

Code: Alles auswählen

class Template {
Keine ahnung warum da. Die datei hab ich nit verändert. Bitte helft mir rin wenig.
Liebe Grüße
JumpinJack
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo,
wenn ich Dich richtig verstanden habe, glaube ich eine Lösung gefunden zu haben:

[ externes Bild ]

[ externes Bild ]

Realisiert habe ich das lokal im Moment für die externen Favoriten ?

Der Nachteil bei dieser Art der Darstellung ist, wie er PN schon geschrieben, dass der länsgte Eintrag auch die Breite des Menüs vorgibt... ;)

Sag bescheid, ob Du das so meinst, dann schreib ich eine kleine Anleitung dazu... Kompliziert ist es IMHO nicht...

HTH :)
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo,
versuch Dich mal damit - ich hab sonst leider heute keine Zeit mehr ;)

## Suche in /includes/page_header.php ganz am Ende nach:
header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
## Davor einfügen:
//
// EXTERNE FAVORITEN AUSGABE DER URLs START
//
$sql = "SELECT * FROM " . $table_prefix . "favorites_ext fe WHERE fe.user_id = '" . $userdata['user_id'] . "' ORDER BY ext_name";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_MESSAGE, 'Could not get extern favorites data', '', __LINE__, __FILE__, $sql);
}
while ( $row = $db->sql_fetchrow($result) )
{
$template->assign_block_vars("topicrow", array(
'ext_id' => $row['ext_id'],
'ext_name' => $row['ext_name']));
}
//
// EXTERNE FAVORITEN AUSGABE DER URLs ENDE
//

## Öffene (in jedem Template) die overall_header.tpl und suche nach:
</head>
## Davor füge ein:
<script language="JavaScript">
<!--
function P7_JumpMenu(selObj,restore){ //v1.3 by Project Seven
var theFullString = selObj.options[selObj.selectedIndex].value;
if (restore) selObj.selectedIndex=0;
var theLength = theFullString.length;
var endPos = theFullString.lastIndexOf("~");
var theUrl, theTarget, theParent;
if (endPos > 0) {theUrl = theFullString.substring(0,endPos);}
else {theUrl = theFullString;}
endPos++
if (endPos < theLength) {theTarget = theFullString.substring(endPos,theLength)}
else {theTarget = "window:Main";}
if (theTarget == "window:New") {window.open(theUrl);}
else if (theTarget == "window:Main") {eval("parent.location='"+theUrl+"'");}
else {eval("parent.frames[\'"+theTarget+"\'].location='"+theUrl+"'");}
}
//-->
</script>
## Am Ende unterhalb der anderen Links suche nach:
Sieht bei einem neuen phpbb204 so aus...

<tr>
<td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu">&nbsp;<a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>&nbsp; &nbsp;<a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>&nbsp; &nbsp;<a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a>&nbsp;</span></td>
</tr>
## Darunter füge den Code für das Menü an:
<!-- BEGIN switch_user_logged_in -->
<tr>
<td align="center" valign="top" nowrap="nowrap"><span class="mainmenu">
<center>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="mytext"> <br><br>
<form name="form1">
<select name="AWSWMenue" onChange="P7_JumpMenu(this,1)" class="mainmenu">
<option value="~" selected> > > > > > > > FAVORITEN < < < < < < < </option>
<!-- END switch_user_logged_in -->
<!-- BEGIN topicrow -->
<option value="{topicrow.ext_id}~">{topicrow.ext_name}</option>
<!-- END topicrow -->
<!-- BEGIN switch_user_logged_in -->
</select>
</form>
</td>
<td>&nbsp;&nbsp;</td>
</tr>
</table>
</center>
</span></td>
</tr>
<!-- END switch_user_logged_in -->
Danach sollte es IMHO klappen... ;)
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Man das sieht prima aus. Sowas ähnliches will ich haben.
Aber wie gesagt. Das sind nicht statische favoriten sondern die, die in den favintern und favextern mod angelegt werden.

Guck mal bitte auf meiner Seite. Ich benötige die einbindung in page_header.php. Und vielleicht nachher das in der overall_header.tpl.

Aber mein Javascript sieht anders aus. Ich hab nen Hooverfeld. Find die lösung schöner.
Wenn du das haben möchtest....schick ich dir das.

http://gis-portal.com

Ich hab da in der grauen menüleiste ein Beispiel eingefügt "Test Favoriten"
Thanks for help
Liebe Grüße
JumpinJack
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Oh das war ja schnell....mein orb ist. Ich hab am ende nur nen anderen Code:

Code: Alles auswählen

//
// Login box?
//
if ( !$userdata['session_logged_in'] )
{
	$template->assign_block_vars('switch_user_logged_out', array());
}
else
{
	$template->assign_block_vars('switch_user_logged_in', array());

	if ( !empty($userdata['user_popup_pm']) )
	{
		$template->assign_block_vars('switch_enable_pm_popup', array());
	}
}

// Work around for "current" Apache 2 + PHP module which seems to not
// cope with private cache control setting
if (!empty($HTTP_SERVER_VARS['SERVER_SOFTWARE']) && strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache/2'))
{
	header ('Cache-Control: no-cache, pre-check=0, post-check=0, max-age=0');
}
else
{
	header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
}
header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');

$template->pparse('overall_header');

?>
btw: Ich denke den Code hab ich richtig eingesetzt. Hab ja nur 1 Zeile weniger. Aber da verhaut der sich in der Foren ermittlung beim portal.
Zuletzt geändert von JumpinJack am 20.05.2003 22:27, insgesamt 1-mal geändert.
Liebe Grüße
JumpinJack
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo,
füge das mal vor

header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');

in der page_header.php ein...

Ja schick mal das Menü als ZIP per Mail...
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Mail sit unterwegs...
Ja das hab ich eben schon gemacht. Ich glaube der Aufruf kappt. Ich muss nur noch das in der overall_header.tpl ändern.

Aber durch den code wird trotzdem irgendwas in deinem portal.php zerschossen.
Ich mach mal nen image:

http://gis-portal.com/files/fehler.JPG

btw: Also dein Mod klappt. Also mit deinem dropdownmenue. Aber der fehler wie oben is auch da drinne.
leider
Liebe Grüße
JumpinJack
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Mein Menü klappt im prinzip auch...aber nur im prinzip.

Einen eintrag bekomme ich abgefragt.
<!-- BEGIN topicrow -->
menu[5][1] = new Item('{topicrow.ext_name}', '{topicrow.ext_id}', '', defLength, 0, 0);
<!-- END topicrow -->
Also das prob ist halt das er die rote 1 fortschreiben muss. Also beim ersten link soll da 1 stehen beim zweiten 2. da bin ich noch nit weiter.

Aber der weg is richtig und wir sind da auf dem richtigen weg. Also prima. Vielen dank schon mal.
Jute nacht und bis morjen
Liebe Grüße
JumpinJack
AWSW
Ehemaliges Teammitglied
Beiträge: 3365
Registriert: 26.05.2002 12:20

Beitrag von AWSW »

Hallo,
muss ich mir morgen mal ansehen - hab da heute keinen Kopf mehr für - was auch meinen Flüchtigkeitsfehler ein wenig entschuldigen soll ;)

YKYBHTLW

In dem oben neu geposteten Code suche und ersetze alle
topicrow
mit:
topicrow1
in der .php und .tpl :roll:

Dann geht das Portal wieder (topicrow wurde dort als Variable für ein Array auch verwendet...)

PS: Hab Deinen Beitrag mit dem Screenshot mal editiert, damit der Beitrag hier nicht überbreit wird ;)
LEIDER DAUERHAFT OFFLINE & Ich beantworte keine Fragen zu phpBB per Mail oder PN !
Hinweis: awsw.de ist nun dauerhaft offline. Die MODs könnt Ihr hier in der Datenbank finden.
Bitte keine Anfragen senden, ob ich die MODs anderweitig senden kann - es geht nicht - Danke für Euer Verständnis !
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Kein problem. hab mir schon gedacht das das am zweiten topicrow liegt.

Klappt jetzt. Wie gesagt das mit der roten 1 bleibt zwar, aber ich bleib da noch dran.

Habs mal bis jetzt mit der fav_id versucht. Aber is noch nit erfolgreich. Mal schaun.

muss ich mir morgen mal ansehen
Kein problem. Lass dir zeit.
YKYBHTLW
Sag mal kennst du alle abkürzungen oder guckst du die immer in deinem board nach. Lekko mio!!! :D
Liebe Grüße
JumpinJack
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“