Einbauproblem

Cachet rechenintensive Vorgänge bei der Darstellung von Beiträgen. Dadurch wird die Performance des phpBB stabilisiert und teilweise sogar erheblich verbessert.

Moderator: Supporter

Einbauproblem

Beitragvon pervamon » 4. Feb 2007 15:21

Beim Einbau des CPS ist beim viewtopic.php folgende Anweisung
Code: Alles auswählen
      if ( $bbcode_uid != '' )
      {
         $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
      }

Nur gibt es diese Stelle bei mir nicht. Eine ähnliche Stelle geht so:
Code: Alles auswählen
   if ($bbcode_uid != '')
   {
      $message = ($board_config['allow_bbcode']) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace("/\:$bbcode_uid/si", '', $message);
   }

:?: Ich habe ja schon ein paar Mods eingebaut, aber meiner Erinnerung nach habe ich da nichts rumgeschraubt.
pervamon
User
 
Beiträge: 29
Registriert: 7. Jan 2007 17:19

Beitragvon oxpus » 4. Feb 2007 15:58

Das wäre aber genau die Stelle, die Du auch hierfür ersetzen müsstest.
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon pervamon » 4. Feb 2007 16:03

Das habe ich angenommen. Beim ersetzen wird ja dann das andere genommen. Muss ich da bedingt ersetzen oder was bringt dieser Unterschied?
pervamon
User
 
Beiträge: 29
Registriert: 7. Jan 2007 17:19

Beitragvon oxpus » 4. Feb 2007 16:05

Wenn Du das nicht ersetzt, wird der BBCode auch nach dem Cachen des Posts weiterhin ausgeführt. Und damit wäre an dieser Stelle nichts gewonnen...
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon pervamon » 4. Feb 2007 18:50

Du hast meine Frage falsch verstanden. Mit bedingt ersetzen habe ich gemeint, den Teil, der (weiter innen in der neuen if-Abrage) unverändert wieder vorkommt, nach 'meinem' Muster zu schreiben.
Was ist eigentlich genau der Unterschied zwischen dem Codestück das gesucht wird und dem, das ich gefunden habe? / Welches ist besser?
pervamon
User
 
Beiträge: 29
Registriert: 7. Jan 2007 17:19

Beitragvon oxpus » 4. Feb 2007 19:42

Ach so!
Ja, sorry...

Öhm, beides erreicht das gleicht, nämlich die BBCODE-UID zu finden und entsprechend zu handeln.
Es wäre also egal, welche der beiden Varianten Du an dieser Stelle nimmst.
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon pervamon » 4. Feb 2007 19:44

Ist eine Variante besser / weniger rechenintensiv?
pervamon
User
 
Beiträge: 29
Registriert: 7. Jan 2007 17:19

Beitragvon oxpus » 4. Feb 2007 21:25

Nein. preg_match ist in diesen beiden Fällen gleich schnell.
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Beitragvon Son » 27. Feb 2007 00:21

Hallo,
ich bin gerade bei das CPS System einzubauen und komme in der viewtopic.php nicht weiter :/

laut anleitung soll das gemacht werden
Code: Alles auswählen
#
#-----[ FIND ]----------------------------------------------------------------
#

//
// Go ahead and pull all data for this topic
//

#
#-----[ FIND ]----------------------------------------------------------------
#

//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
//

#
#-----[ FIND ]----------------------------------------------------------------
#

   $message = $postrow[$i]['post_text'];

#
#-----[ REPLACE WITH ]--------------------------------------------------------
#

// Cache Posts
   $parsed = ($board_config['enable_post_cache']) ? $postrow[$i]['parsed'] : 0;
   if (!$parsed || !$board_config['enable_post_cache'])
   {
      $message = $postrow[$i]['post_text'];
   } else {
      $cstyle = ($userdata['session_logged_in'] && $userdata['user_style'] != $board_config['default_style'] && $board_config['cache_each_template']) ? $userdata['user_style'].'_' : '';
      $cachefile = 'cache/posts/'.$cstyle.'post_'.$postrow[$i]['post_id'].'.gz';
      if (file_exists($cachefile) && filemtime($cachefile) >= $postrow[$i]['post_edit_time'] && $postrow[$i]['cache_file_md5'] == md5_file($cachefile))
      {
         $handle = @fopen($phpbb_root_path.$cachefile, 'r');
         $message = gzinflate(@fread($handle, @filesize($cachefile)+1));
         @fclose($handle);
      } else {
         @unlink($cachefile);
         $message = $postrow[$i]['post_text'];
         $parsed = 0;
      }
   }
// Cache Posts
//   $message = $postrow[$i]['post_text'];


ist da einmal ein FIND zu viel oder fehlt da was ?
Son
User
 
Beiträge: 29
Registriert: 16. Mär 2006 21:14

Beitragvon AmigaLink » 27. Feb 2007 07:25

Bild Warum haben eigentlich so viele leute Probleme mit dieser Stelle :?:

Die ersten beiden FINDs sind eine Suchhilfe!
Wenn du die Anweisung genau befolgst (also der reihe nach die 3 angaben suchst und dann die letzte Fundstelle gegen den neuen Code austauschst), dann ist es (selbst bei stark veränderten Boards) nahezu Unmöglich das die falsche stelle bearbeitet wird. :)

Das ist eine vollkommen normale Vorgehensweise bei MODs die schwer einzubauen sind, weil die zu bearbeitende stelle evtl. mehrmals im Code vorkommt (aber nur einmal bearbeitet werden darf) oder schwer zu finden ist (weil sie anderen stellen sehr ähnlich ist).
Ich habe mich für diese art der Anweisung entschieden, weil letzteres der Fall sein kann. :)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Nächste

Zurück zu Cache Post System



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste

cron