Jump to content
xt:Commerce Community Forum

News auf Startseite


mbeils

Recommended Posts

Hallo zusammen,

habe folgendes Problem. Ich habe mir ein Newssystem gebastelt, welches ich in die Index.html eingebunden habe. Diese Index.html habe ich wiederum im Content-Manager (Index) als Datei hochgeladen. Wenn ich nun den IE starte und auf unseren Shop gehe, werden die News nicht angezeigt. Mache ich aber einen Reload dann werden die News angezeigt.

Die Datei "newsdesk.php" habe ich mal mit rein gepackt. (siehe unten)

Für jede Hilfe wäre ich dankbar.

mein shop BeLaMo Textilversand GbR

<!-- newsdesk //-->

<?php

function xtc_date_long($raw_date) {

if (($raw_date == '0000-00-00 00:00:00') || ($raw_date == ''))

return false;

$year = (int) substr($raw_date, 0, 4);

$month = (int) substr($raw_date, 5, 2);

$day = (int) substr($raw_date, 8, 2);

$hour = (int) substr($raw_date, 11, 2);

$minute = (int) substr($raw_date, 14, 2);

$second = (int) substr($raw_date, 17, 2);

return strftime(DATE_FORMAT_LONG, mktime($hour, $minute, $second, $month, $day, $year));

}

////

// set application wide parameters

// this query set is for NewsDesk

$configuration_query = xtc_db_query("select configuration_key as cfgKey, configuration_value as cfgValue from " . TABLE_NEWSDESK_CONFIGURATION . "");

while ($configuration = xtc_db_fetch_array($configuration_query)) {

define($configuration['cfgKey'], $configuration['cfgValue']);

}

$newsdesk_var_query = xtc_db_query('select p.newsdesk_id, pd.language_id, pd.newsdesk_article_name, pd.newsdesk_article_description, pd.newsdesk_article_shorttext,

pd.newsdesk_article_url, pd.newsdesk_article_url_name, p.newsdesk_image, p.newsdesk_image_two, p.newsdesk_image_three, p.newsdesk_date_added, p.newsdesk_last_modified, pd.newsdesk_article_viewed,

p.newsdesk_date_available, p.newsdesk_status, p.newsdesk_sticky from ' . TABLE_NEWSDESK . ' p, ' . TABLE_NEWSDESK_DESCRIPTION . '

pd WHERE pd.newsdesk_id = p.newsdesk_id and pd.language_id = "' . $languages_id . '" and newsdesk_status = 1

and p.newsdesk_sticky = 1 ORDER BY newsdesk_date_added DESC LIMIT ' . MAX_DISPLAY_NEWSDESK_NEWS

);

if (!xtc_db_num_rows($newsdesk_var_query)) { // there is no news

echo '<!-- ' . TEXT_NO_NEWSDESK_NEWS . ' -->';

} else {

$row = 0;

while ($newsdesk_var = xtc_db_fetch_array($newsdesk_var_query)) {

if ( STICKY_IMAGE ) {

if ($newsdesk_var['newsdesk_image'] != '') {

$insert_image = '

<table border="0" cellspacing="0" cellpadding="0">

<tr>

<td>

' . xtc_image(DIR_WS_IMAGES . $newsdesk_var['newsdesk_image'], '', '') . '

</td>

</tr>

</table>

';

}

}

if ( STICKY_ARTICLE_DESCRIPTION ) {

$insert_content = '

<tr>

<td class="smallText">'. $newsdesk_var['newsdesk_article_description'] . '</td>

</tr>

';

}

if ( STICKY_ARTICLE_NAME ) {

$insert_headline = '<b>' . $newsdesk_var['newsdesk_article_name'] . '</b>';

}

if ( STICKY_DATE_ADDED ) {

$insert_date = ' - <i>' . xtc_date_long($newsdesk_var['newsdesk_date_added']) . '</i>';

}

echo '

<table border="0" width="100%" cellspacing="3" cellpadding="0">

<tr>

<td class="smallText">' . $insert_headline . $insert_date . '</td>

<td class="smallText" align="right">' . $insert_viewcount . '</td>

</tr>

<tr>

<td class="headerNavigation" colspan="2">' . xtc_draw_separator('pixel_trans.gif', '100%', '1') . '</td>

</tr>

<tr>

<td colspan="2">' . xtc_draw_separator('pixel_trans.gif', '100%', '5') . '</td>

</tr>

</table>

<table border="0" width="100%" cellspacing="3" cellpadding="0">

<tr>

<td valign="top" width="100%" colspan="2">

<table border="0" width="100%" cellspacing="3" cellpadding="0">

' . $insert_summary . '

' . $insert_content . '

' . $insert_url . '

<tr>

<td>' . xtc_draw_separator('pixel_trans.gif', '100%', '10') . '</td>

</tr>

</table>

</td>

<td valign="top">

' . $insert_image . '

</td>

</tr>

<tr>

<td colspan="2">' . xtc_draw_separator('pixel_trans.gif', '100%', '5') . '</td>

</tr>

</table>

';

$row++;

$insert_image = '';

}

}

?>

Link to comment
Share on other sites

Mit Firefox und Safari laden die News auch erst beim zweiten Mal...

Ich kann mir zwar nicht vorstellen, dass das mit Deinem Problen zu tun hat, aber

function xtc_date_long($raw_date) {
if (($raw_date == '0000-00-00 00:00:00') || ($raw_date == ''))
return false;

$year = (int) substr($raw_date, 0, 4);
$month = (int) substr($raw_date, 5, 2);
$day = (int) substr($raw_date, 8, 2);
$hour = (int) substr($raw_date, 11, 2);
$minute = (int) substr($raw_date, 14, 2);
$second = (int) substr($raw_date, 17, 2);

return strftime(DATE_FORMAT_LONG, mktime($hour, $minute, $second, $month, $day, $year));
}[/PHP]

...brauchst Du IMHO nicht nochmal anzugeben, da diese Funktion schon von der application_top.php bzw. header.php includiert wird.

Jedenfalls wird die Datei schon reingeladen, es erscheinen aber zunächst keine News - siehe Dein geparster Sourcecode:

[HTML]<!-- BEGIN newsdesk -->
<tr>
<td>
<!-- newsdesk //-->
<!-- Leider sind keine News vorhanden -->
</td>
</tr>
<tr>
<td>
<!-- newsdesk //-->
<!-- Leider sind keine News vorhanden --><!-- newsdesk_eof //-->
</td>
</tr>
<!-- //END newsdesk -->[/HTML]

Wo hast Du denn die TABLE_NEWSDESK_CONFIGURATION definiert? In der database_tables.php?

Hast Du error_reporting auf 0? Wenn ja, stell mal an und schaue, ob Du einen Fehler ausgegeben bekommst...

Link to comment
Share on other sites

Hallo John,

an der Funktion liegt es nicht. Habe ich getestet. TABLE_NEWSDESK_CONFIGURATION ist in database_tables.php definiert. Mir ist auch schon aufgefallen, dass die IF-Schleife aus geführt wird, aber leider an falscher Stelle. Anscheinend wird die Variable "$newsdesk_var_query" erst beim zweiten laden gefüllt. Warum weiß ich nicht.

Wo stelle ich denn error_reporting ein???

Danke für Deine Hilfe

Link to comment
Share on other sites

Oben in der includes/application_top.php:

// set the level of error reporting
error_reporting(E_ALL & ~E_NOTICE);
[/PHP]

Wenn das bei Dir da schon so steht - und nicht etwa error_reporting(0), ist Dein Code erstmal fehlerfrei und wir müssen weitersehen...

Nur mal so ne Idee: Mache mal direkt nach der Query und vor der if-Abfrage ein

[PHP]echo xtc_db_num_rows($newsdesk_var_query);[/PHP]

PS: Mir fällt grad auf, dass dieser Thread eigentlich eher ins PHP/mySQL-Forum gehört... :rolleyes:

Link to comment
Share on other sites

Also error_reporting ist angeschaltet. Sollte also auch fehlerfrei sein. Das "echo" ergibt bei der ersten abfrage eine "0", beim reload eine "2". Hab auch 2 Newseinträge. Ich denke auch das es an dem Query liegt und nicht an der If-Abfrage. Nur bin ich kein PHP-Profi und weiß nicht warum der Query Probleme macht.

PS: kann man den Thread verschieben??? Hab das erste mal was reingestellt.

Link to comment
Share on other sites

Hallo John,

Noch was. Hab gerad nen Test gemacht ob die Variablen gesetzt sind. Hab festgestellt, dass die VAriable "$languages_id" beim ersten Aufruf nicht gesetzt ist. Ich denke das könnte das Problem sein. Nur wo wird sie gesetzt??

Ich habe das echo mal drin gelassen. Falls Du mal testen willst.

Link to comment
Share on other sites

Ahhh, manchmal sieht man die Bäume vor lauter Wald nicht (oder so...) :rolleyes:

Nur wo wird sie gesetzt??

Eigentlich ist das eine Session-Variable, die auch in der application_top.php verarbeitet wird. Die sollte am Anfang schon gesetzt sein. Versuche mal

$_SESSION['languages_id'][/PHP]

anstelle von

[PHP]$languages_id[/PHP]

Oder Du verzichtest gleich auf die Variable, da Du ja offensichtlich nur Deutsch in Deinem Shop hast. Nehme einfach mal die 1 (wenn in der $languages_id nichts drinsteht, wird ja die 0 eingesetzt, und eine Sprache Nummer 0 gibt es nicht, die IDs fangen bei 1 an und steigen mit den Sprachen, die man installiert, auf).

Mal ganz abgesehen davon: Hast Du mal versucht, bei einem Artikel die Detailseite aufzurufen? ... ;)

Cheers,

IaN

Link to comment
Share on other sites

Ja es sind manchmal die Kleinigkeiten die einem das Leben schwer machen :rolleyes:

Auf jedem Fall funktioniert es jetzt! DANKE!!!

Der Fehler auf der Detailseite kam, weil ich die Funktion xtc_date_long von der newsdeck.php in die application_top.php kopiert habe. Habs wieder rückgängig gemacht. Jetzt läuft es. Das sind Dinge die ich noch nicht so vertstanden habe, wie die Zusammenhänge in dem Shopsystem funktionieren. Aber man lernt ja immer dazu.

Danke nochmal...

Marc

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...