ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / Probleme und Fragen / Problem mit _new.png (thwb-2006-01-10-trunk)


Seite 1 von 1

fratzi schrieb am 29.08.2006 um 13:42 Uhr

Zwei Probleme mit den _new.png:

fratzi postete
User die keinen Zugriff auf Foren haben (diese aber sehen, da in den Optionen "Show private boards" auf YES steht), erhalten ein rotes Icon sobald etwas neues gepostet wurde.

Da die User allerdings nicht auf das Forum zugreifen können, stört das rote Icon ziemlich.

"Alle Boards als gelesen makieren" bewirkt auch nichts.

http://img161.imageshack.us/img161/6451/redfolderdw7.jpg

Gibt es für diese letzte Revision einen Hack/Fix für dieses Problem?

Auszug aus der index.php:

if( isset($a_lastvisited[$board['boardid']]) && $board['boardlastpost'] > $a_lastvisited[$board['boardid']] && $a_lastvisited[$board['boardid']] != 0 )
            {
                $imagepath = './templates/'.$style['styletemplate'].'/images/board_new.png';
            }
            else
            {
                $imagepath = './templates/'.$style['styletemplate'].'/images/board.png';
            }

Nächster Punkt:
Wenn neue Topics gepostet werden, wird das _new.png Symbol nicht verwendet. (Er zeigt den neuen Topic als "bereits gelesen" an)
Sobald allerdings ein neuer reply auf das Topic erstellt wird, erkennt er die Änderung.

Somit sieht man erst ab dem ersten reply ob dies nun ein neues Topic ist.

Auszug aus der board.php:

if(empty($g_user['userid'])
        || ((!empty($thread['lastvisit'])) ? ($thread['threadtime'] > $thread['lastvisit']) : (!empty($config['lastvisited_timeout']) && ($thread['threadtime'] > max($g_user['userjoin'], (time() - (24 * 60 * 60 * $config['lastvisited_timeout'])))))))
    {
        $imagepath = 'templates/'.$style['styletemplate'].'/images/icon/'.$topicicon[($thread['threadiconid'])].'_new.png';
    }
    else
    {
        $imagepath = 'templates/'.$style['styletemplate'].'/images/icon/'.$topicicon[($thread['threadiconid'])].'.png';
    }

Weiß jemand wie man die Strings abändern muss, damit die Probleme (vorallem das zweite) beseitigt werden?

Gruß fratzi.

fratzi schrieb am 20.09.2006 um 11:33 Uhr

Hi,

hat niemand von den noch aktiven codern eine Möglichkeit den zweiten Punkt zu fixen?
Bei einer hohen Forenaktivität ist es fast unmöglich zu erkennen welche Threads neu sind.

Hier nochmal das Problem, das ich meine:
Wenn neue Topics gepostet werden, wird das _new.png Symbol nicht verwendet. (Er zeigt den neuen Topic als "bereits gelesen" an)
Sobald allerdings ein neuer reply auf das Topic erstellt wird, erkennt er die Änderung.

Somit sieht man erst ab dem ersten reply ob dies nun ein neues Topic ist.

Auszug aus der board.php:

if(empty($g_user['userid'])
        || ((!empty($thread['lastvisit'])) ? ($thread['threadtime'] > $thread['lastvisit']) : (!empty($config['lastvisited_timeout']) && ($thread['threadtime'] > max($g_user['userjoin'], (time() - (24 * 60 * 60 * $config['lastvisited_timeout'])))))))
    {
        $imagepath = 'templates/'.$style['styletemplate'].'/images/icon/'.$topicicon[($thread['threadiconid'])].'_new.png';
    }
    else
    {
        $imagepath = 'templates/'.$style['styletemplate'].'/images/icon/'.$topicicon[($thread['threadiconid'])].'.png';
    }

Narodnaja schrieb am 20.09.2006 um 20:20 Uhr

Hmm.

1. Welche Board-Version setzt du denn ein ?

2. Du weißt aber schon, dass ein Topic, der von dir selbst erstellt wird, korrekterweise nicht neu angezeigt wird ? Außerdem, dass die Gelesen-Funktion wirkt, wenn du das entsprechende Forum (auch im Navpath oben !) anklickst, auch wenn du da schon drin bist ?

Daher nachgefragt: Du bist außerhalb des einzelnen Forums unterwegs, jemand anders erstellt einen Thread, und du klickst auf das Forum und siehst keinen neuen Thread ?

fratzi schrieb am 21.09.2006 um 10:48 Uhr

1. 2.84 (thwb-2006-01-10-trunk, siehe News auf www.thwboard.de)
2. Wenn andere einen Thread erstellen, wird dieser als nicht-neu gekennzeichnet!

Narodnaja schrieb am 21.09.2006 um 21:51 Uhr

Hmm. Nagut, weiter forschen:
Zeigt er denn wenigstens in der Board-Übersicht den Thread als "neu" an ?

fratzi schrieb am 22.09.2006 um 12:29 Uhr

Narodnaja postete
Hmm. Nagut, weiter forschen:
Zeigt er denn wenigstens in der Board-Übersicht den Thread als "neu" an ?

Ja

Narodnaja schrieb am 24.09.2006 um 21:04 Uhr

Hmmm. Ich habe die Boardversion bei mir nirgends im Einsatz, bei meinen sieht der Code etwas kürzer aus.
Kann das mal jemand beurteilen, der die Version einsetzt ? Oder einer ausm Team ?

Ah, eins noch - vorsicht, dumme Frage: Die Icons selbst sind schon unterschiedlich, oder ? Also es wird auch die .png-Datei angezeigt (Eigenschaften der Grafik), und nicht doch die _new.png, die aber nur gleich aussieht ?
Ich hatte selbst schon mal alle new mit den Standard überschrieben, weiß also dass das vorkommt ;)

Ansonsten habe ich keine Idee mehr. TheDon ?

theDon schrieb am 25.09.2006 um 08:27 Uhr

Das Problem scheint gaenzlich woanders zu liegen.

Ersetz mal den PHP5-Teil oben in inc/header.inc.php:

if(substr(phpversion(), 0, 1) > 4)
{
  // ...
}

durch

if(substr(phpversion(), 0, 1) > 4)
{
        global $HTTP_SERVER_VARS;
        global $HTTP_COOKIE_VARS;
        global $HTTP_POST_VARS;
        global $HTTP_GET_VARS;
        global $HTTP_ENV_VARS;

        $HTTP_SERVER_VARS = $_SERVER;
        $HTTP_COOKIE_VARS = $_COOKIE;
        $HTTP_POST_VARS = $_POST;
        $HTTP_GET_VARS = $_GET;
        $HTTP_ENV_VARS = $_ENV;
}

fratzi schrieb am 25.09.2006 um 10:32 Uhr

@theDon:
Bringt leider nichts.

fratzi schrieb am 25.09.2006 um 10:47 Uhr

if(substr(phpversion(), 0, 1) > 4)
{
global $HTTP_SERVER_VARS;
global $HTTP_COOKIE_VARS;
global $HTTP_POST_VARS;
global $HTTP_GET_VARS;
global $HTTP_ENV_VARS;

$HTTP_SERVER_VARS = $_SERVER;
$HTTP_COOKIE_VARS = $_COOKIE;
$HTTP_POST_VARS = $_POST;
$HTTP_GET_VARS = $_GET;
$HTTP_ENV_VARS = $_ENV;

    foreach($a_globals as $k => $v)
    {
        global $$k;

        $$k = $$v;
    }

    unset($a_globals);
};

Wenn ich das foreach und unset auskommentiere, ändert sich auch nichts

theDon schrieb am 25.09.2006 um 11:09 Uhr

Es sollte auch ganz genau so aussehen:

if(substr(phpversion(), 0, 1) > 4)
{
  global $HTTP_SERVER_VARS;
  global $HTTP_COOKIE_VARS;
  global $HTTP_POST_VARS;
  global $HTTP_GET_VARS;
  global $HTTP_ENV_VARS;

  $HTTP_SERVER_VARS = $_SERVER;
  $HTTP_COOKIE_VARS = $_COOKIE;
  $HTTP_POST_VARS = $_POST;
  $HTTP_GET_VARS = $_GET;
  $HTTP_ENV_VARS = $_ENV;
}

Das hat es zumindest bei mir gebracht, weil die alte Variante nach irgendeinem PHP-Update nicht mehr lief.

fratzi schrieb am 25.09.2006 um 11:20 Uhr

funkt nich :/

fratzi schrieb am 25.09.2006 um 12:55 Uhr

Es ist wie gesagt nur beim erstellen des Threads so.
Sobald eine Antwort erstellt wird, erkennt er die Änderung und er zeigt das richtige Symbol an.

Seite 1 von 1