Seite 1 von 1

Bräuchte Hilfe bei IF Schleife

Verfasst: 20.09.2008 12:23
von xmanforever
Hallo,
ich bin leider irgendwie zu doof es hinzubekommen:
Und zwar handelt es sich um einen Mod für die Metatags, das diese automatisch generiert werden. Ich möchte aber, das dies nicht geschieht, wenn man sich auf der Hauptseite befindet. Hier will ich manuell einen Text eingeben. Derzeit wird dort einfach gar nichts angezeigt.


Ich zeige euch mal den Ausschnitt des Mods in der functions.php
$min_word_length = 5;
$max_word_count = 5;
$topic_id = 0;
$forum_id = 0;
$meta_description = '';
$meta_keywords = '';

if (!isset ($_GET['mode']))
{
if (isset ($_GET['t']) && ((int) $_GET['t']>0))
{
$topic_id = (int) $_GET['t'];
}
elseif (isset ($_GET['f']) && ((int) $_GET['f']>0))
{
$forum_id = (int) $_GET['f'];
}
}



if ($topic_id)
{
$sql = "SELECT f2.forum_name AS parent_forum_name,
f.forum_name,
t.topic_title
FROM " . TOPICS_TABLE . " t,
" . FORUMS_TABLE . " f
LEFT JOIN " . FORUMS_TABLE . " f2 ON f2.forum_id = f.parent_id
WHERE f.forum_id = t.forum_id
AND t.topic_id = $topic_id";
$result = $db->sql_query ($sql);
$row = $db->sql_fetchrow ($result);
$db->sql_freeresult ($result);

if ($row['parent_forum_name'])
$meta_description = $row['parent_forum_name'] . ' :: ' . $row['forum_name'] . ' :: ' . $row['topic_title'];
else $meta_description = $row['forum_name'] . ' :: ' . $row['topic_title'];
$meta_description = '<meta name="description" content="' . $meta_description . '">';

$sql = "SELECT w.word_text
FROM " . TOPICS_TABLE . " t,
" . SEARCH_WORDMATCH_TABLE . " m,
" . SEARCH_WORDLIST_TABLE . " w
WHERE t.topic_first_post_id = m.post_id
AND m.word_id = w.word_id
AND t.topic_id = $topic_id
AND LENGTH(w.word_text)>=$min_word_length
ORDER BY LENGTH(w.word_text) DESC
LIMIT $max_word_count";
$result = $db->sql_query ($sql);

$meta_keywords = '';
while ($row = $db->sql_fetchrow ($result))
{
$meta_keywords .= (!$meta_keywords) ? $row['word_text'] : ',' . $row['word_text'];
}



$db->sql_freeresult ($result);
$meta_keywords = '<meta name="keywords" content="' . $meta_keywords . '">';
}





if ($forum_id)
{
$sql = "SELECT f.forum_name,
f.forum_desc
FROM " . FORUMS_TABLE . " f
WHERE f.forum_id = $forum_id";
$result = $db->sql_query ($sql);
$row = $db->sql_fetchrow ($result);
$db->sql_freeresult ($result);

$meta_keywords = '<meta name="keywords" content="' . str_replace (" ", ",", $row['forum_name']) . '">';
$meta_description = '<meta name="description" content="' . $row['forum_desc'] . '">';

}
Irgendwo müsste ja jetzt eine else Schleife hineinkommen die z.B. so aussieht:
else
{
$meta_description = '<meta name="description" content="Was auch immer für ein Text">';
$meta_keywords = '<meta name="keywords" content="Was auch immer für ein Text">';
}

Könnt ihr mir vielleicht weiterhelfen????

Verfasst: 20.09.2008 12:40
von Boecki91
Nimm nächstes mal bitte

Code: Alles auswählen

[code]
[/code] und nicht

Code: Alles auswählen

[quote][/quote]
dann sieht das hier schöner aus ;)

Ich kenne keine If-Schleife oder else Schleife, Schleifen werden wiederholt, solche Bedingungen aber nicht ;)

Sobald weder topic_id noch forum_id bekannt ist soll der Text erscheinen?

Code: Alles auswählen

if(!$topic_id && !$forum_id)
{
    //Metatags
}
Zur Erklärung:
Ein Ausrufezeichen kehrt true in false um und false in true, sogesehen ein NICHT (NOT)
&& ist eine UND(AND)-Verknüpfung

Also sobald keine Foren-id und keine topic_id angegeben ist wird die Bedingung erfüllt.
http://de.php.net/if
http://de.php.net/manual/de/language.operators.php

Verfasst: 20.09.2008 14:14
von Miriam
Also evtl. so?
Mode ist bekannt, Topic ist nicht bekannt, Forum ist nicht bekannt ... default META Werte sollen gesetzt werden.

Code: Alles auswählen

if (!isset ($_GET['mode']))
{
	if (isset ($_GET['t']) && ((int) $_GET['t']>0))
	{
		$topic_id = (int) $_GET['t'];
	}
	elseif (isset ($_GET['f']) && ((int) $_GET['f']>0))
	{
		$forum_id = (int) $_GET['f'];
	}
	else
	{
		$meta_description = '<meta name="description" content="Was auch immer für ein Text">';
		$meta_keywords = '<meta name="keywords" content="Was auch immer für ein Text">';
	}
}

IF...ELSEIF...ELSE

Verfasst: 20.09.2008 17:05
von xmanforever
@Boecki91

Jo war ein versehen, dachte eigentlich ich habe auf Code geklickt und nicht auf Quote ;-)


Und danke vielmals an alle, funktioniert