[CODECHANGES] Optimierung des IM-Portals

Fragen & Antworten zum IM-Portal
(Kein 100%iger Support)

Moderator: Supporter

[CODECHANGES] Optimierung des IM-Portals

Beitragvon AmigaLink » 2. Jul 2006 11:34

Irgendwie war ich mir nicht so ganz darüber im klaren wie ich dieses Topic nennen soll. Denn die Änderungen, die ich hier Poste, sind recht unterschiedlicher Natur.

Mich hat schon immer gestört das bei der Einsatz von mehreren Portalseiten der Seitentitel immer Portal (bzw. der mittels $lang['Home'] definierte Name) ist und außerdem in der Online-Liste angezeigt wird, das der jeweilige Benutzer sich im Foren-Index befindet. :roll:
Als ich die diese Tatsache geändert habe, sind mir einige Codestellen aufgefallen die nicht 100%ig sauber Programmiert sind. Sei es das sie nicht phpBB konform sind oder das sie minimal optimiert werden können.
Das Ergebnis sieht so aus:
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

portal.php

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

$userdata = session_pagestart( $user_ip, PAGE_INDEX );

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

$userdata = session_pagestart( $user_ip, PAGE_PORTAL );

#
#----------[ FIND & DELETE ]----------------------------
#

include_once($phpbb_root_path . 'includes/lite.'.$phpEx);

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

if(isset($HTTP_GET_VARS['page']))
{
   $layout = intval($HTTP_GET_VARS['page']);
}else
{
   $layout = $portal_config['default_portal'];
}

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

(isset($HTTP_GET_VARS['page'])) ? $layout = intval($HTTP_GET_VARS['page']) : $layout = $portal_config['default_portal'];

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

if($portal_config['cache_enabled'])
   $layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');   

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

if($portal_config['cache_enabled'])
{
   $layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');
}

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

   $sql = "SELECT template, forum_wide, view, groups FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";

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

   $sql = "SELECT name, template, forum_wide, view, groups FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";

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

   if(($layout_row['template']!='')&&$portal_config['cache_enabled'])
      $var_cache->save($layout_row, 'lr' . strval($layout), 'layout');

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

   if(($layout_row['template']!='')&&$portal_config['cache_enabled'])
   {
      $var_cache->save($layout_row, 'lr' . strval($layout), 'layout');
   }

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

$layout_template = $layout_row['template'];

#
#----------[ BEFORE, ADD ]------------------------------
#

$page_title = $layout_row['name'];

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

   if($portal_config['cache_enabled'])
      $layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');   

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

   if($portal_config['cache_enabled'])
   {
      $layout_row=$var_cache->get('lr' . strval($layout), 86400, 'layout');
   }

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

      $sql = "SELECT template, forum_wide FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";

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

      $sql = "SELECT name, template, forum_wide FROM " . LAYOUT_TABLE . " WHERE lid = '" . $layout . "'";

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

      if($portal_config['cache_enabled'])
         $var_cache->save($layout_row, 'lr' . strval($layout), 'layout');

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

      if($portal_config['cache_enabled'])
      {
         $var_cache->save($layout_row, 'lr' . strval($layout), 'layout');
      }

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

   $layout_template = $layout_row['template'];

#
#----------[ BEFORE, ADD ]------------------------------
#

   $page_title = $layout_row['name'];

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

$page_title = $lang['Home'];

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

$page_title = (!$page_title) ? $lang['Home'] : ((@$lang[$page_title]) ? $lang[$page_title] : $page_title);

#
#----------[ OPEN ]-------------------------------------
#

viewonline.php

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

            case PAGE_INDEX:
               $location = $lang['Forum_index'];
               $location_url = "index.$phpEx";
               break;

#
#----------[ BEFORE, ADD ]------------------------------
#

            case PAGE_PORTAL:
               $location = $lang['Viewing_portal'];
               $location_url = "portal.$phpEx";
               break;

#
#----------[ OPEN ]-------------------------------------
#

admin/index.php

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

                  case PAGE_INDEX:
                     $location = $lang['Forum_index'];
                     $location_url = "index.$phpEx?pane=right";
                     break;

#
#----------[ BEFORE, ADD ]------------------------------
#

                  case PAGE_PORTAL:
                     $location = $lang['Viewing_portal'];
                     $location_url = "portal.$phpEx?pane=right";
                     break;

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

               case PAGE_INDEX:
                  $location = $lang['Forum_index'];
                  $location_url = "index.$phpEx?pane=right";
                  break;

#
#----------[ BEFORE, ADD ]------------------------------
#

               case PAGE_PORTAL:
                  $location = $lang['Viewing_portal'];
                  $location_url = "portal.$phpEx?pane=right";
                  break;

#
#----------[ OPEN ]-------------------------------------
#

includes/constants.php

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

define('PAGE_GROUPCP', -11);

#
#----------[ AFTER, ADD ]-------------------------------
#
# Note: if there is already a "-12" line change the number

define('PAGE_PORTAL', -12);

#
#----------[ OPEN ]-------------------------------------
#

includes/functions_portal.php

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

include_once($phpbb_root_path . 'includes/lite.'.$phpEx);
$options = array(
    'cacheDir' => $phpbb_root_path . 'var_cache/',
);

$var_cache = new Cache_Lite($options);

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

include($phpbb_root_path . 'includes/lite.'.$phpEx);

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

   if($type)
      return $bview;
   else
      return $append;

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

   if($type)
   {
      return $bview;
   } else {
      return $append;
   }

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

      if($portal_config['cache_enabled'])
         $layout_pos=$var_cache->get('lp' . strval($layout), 86400, 'layout_pos');   

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

      if($portal_config['cache_enabled'])
      {
         $layout_pos=$var_cache->get('lp' . strval($layout), 86400, 'layout_pos');
      }

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

         if($portal_config['cache_enabled'])
            $var_cache->save($layout_pos, 'lp' . strval($layout), 'layout_pos');

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

         if($portal_config['cache_enabled'])
         {
            $var_cache->save($layout_pos, 'lp' . strval($layout), 'layout_pos');
         }

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

   if($portal_config['cache_enabled'])
      $block_info=$var_cache->get('bi' . portal_blocks_view(false) . $temp_type, 86400, 'block_info');

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

   if($portal_config['cache_enabled'])
   {
      $block_info=$var_cache->get('bi' . portal_blocks_view(false) . $temp_type, 86400, 'block_info');
   }

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

      if($portal_config['cache_enabled'])
         $var_cache->save($block_info, 'bi' . portal_blocks_view(false) . $temp_type, 'block_info');

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

      if($portal_config['cache_enabled'])
     {
         $var_cache->save($block_info, 'bi' . portal_blocks_view(false) . $temp_type, 'block_info');
     }

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

            if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
               $output_block=$var_cache->get('b' . strval($block_info[$b_counter]['bid']), $block_info[$b_counter]['cache_time'], 'block');   

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

            if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
            {
               $output_block=$var_cache->get('b' . strval($block_info[$b_counter]['bid']), $block_info[$b_counter]['cache_time'], 'block');
            }

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

               if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
                  $var_cache->save($output_block, 'b' . strval($block_info[$b_counter]['bid']), 'block');

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

               if(($portal_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
               {
                  $var_cache->save($output_block, 'b' . strval($block_info[$b_counter]['bid']), 'block');
               }

#
#----------[ OPEN ]-------------------------------------
#

language/lang_english/lang_main.php

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

$lang['Forum_index'] = 'Forum index';

#
#----------[ BEFORE, ADD ]------------------------------
#

$lang['Viewing_portal'] = 'Viewing a portal page';

#
#----------[ OPEN ]-------------------------------------
#

language/lang_german/lang_main.php

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

$lang['Forum_index'] = 'Forum-Index';

#
#----------[ BEFORE, ADD ]------------------------------
#

$lang['Viewing_portal'] = 'Portalseite';

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
100%ig zufrieden bin ich zwar auch mit diesen Änderungen noch nicht. Weil nicht angezeigt wird auf welcher Portalseite sich der jeweilige Benutzer befindet. Aber damit beschäftige ich mich ein anderes mal.

Zugefügt nach 1 Stunde(n) 47 Minute(n):

Ich vergaß zu erwähnen das jetzt der Seitentitel Sprachabhängig sein kann. :D
Grundsätzlich wird der Name angezeigt der im ACP (IM-Portal -> Page Management) definiert wurde. Wenn nun aber, in den Sprachdateien (vorzugsweise lang_main.php) eine gleichnamige Variable existiert, dann wird deren Inhalt als Seitentitel ausgegeben. 8)

Zum Beispiel:
Die Beispielseite, von AmigaLink.de, ist eine IM-Portalseite.
Im Page Management habe ich ihr den Namen "Beispielseite" gegeben, der bei Benutzern mit Deutscher Spracheinstellung auch benutzt wird. Englischsprachige Benutzer bekommen aber als Titel "Example page" angezeigt, weil in der language/lang_english/lang_main.php folgende Zeile existiert:
Code: Alles auswählen
$lang['Beispielseite'] = 'Example page';
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

Beitragvon AmigaLink » 3. Jul 2006 18:04

Und weiter geht's:
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

includes/page_header.php

#
#----------[ FIND & DELETE ]----------------------------
#

   include_once($phpbb_root_path . 'includes/lite.'.$phpEx);

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

// debug forum wide Portal
/*if($layout_forum_wide_flag)
   $temp_debug = 1;
else
   $temp_debug = 0;
die('debug: ' . strval(empty($gen_simple_header)) . ' | ' . strval($temp_debug) . ' | ' . strval($portal_config['portal_header']) . ' | ' . strval(defined('HAS_DIED')) . ' | ' . strval(defined('IN_LOGIN')));*/
// debug forum wide Portal

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

// debug forum wide Portal
/*
($layout_forum_wide_flag) ? $temp_debug = 1 : $temp_debug = 0;
die('debug: ' . strval(empty($gen_simple_header)) . ' | ' . strval($temp_debug) . ' | ' . strval($portal_config['portal_header']) . ' | ' . strval(defined('HAS_DIED')) . ' | ' . strval(defined('IN_LOGIN')));
*/
// debug forum wide Portal

#
#----------[ OPEN ]-------------------------------------
#

includes/page_tail.php

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

// debug forum wide Portal
/*if($layout_forum_wide_flag)
   $temp_debug = 1;
else
   $temp_debug = 0;
die('debug: ' . strval($temp_debug) . ' | ' . strval($portal_config['portal_tail']) . ' | ' . strval(defined('HAS_DIED')) . ' | ' . strval(defined('IN_LOGIN')));*/
// debug forum wide Portal

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

// debug forum wide Portal
/*
($layout_forum_wide_flag) ? $temp_debug = 1 : $temp_debug = 0;
die('debug: ' . strval($temp_debug) . ' | ' . strval($portal_config['portal_tail']) . ' | ' . strval(defined('HAS_DIED')) . ' | ' . strval(defined('IN_LOGIN')));
*/
// debug forum wide Portal

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
Die beiden REPLACE WITH Teile könnten eigentlich ebenfalls gelöscht werden.
Ich vermute mal das es sich dabei überbleibsel aus der Entwicklungszeit des IM-Portals handelt. Denn die damit erzeugbaren Debug Informationen, dürften wirklich nur in den seltensten Fällen von Interesse sein.
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

Beitragvon Christian_N » 20. Dez 2006 23:42

Hallo AmigaLink könntest du noch in der Ankündigung folgendes hinzufügen, da das Thema gesperrt ist kann ich diese Änderung nicht selbst dort hinzufügen und zwar in der fetchposts.php ist ein Satz der wie folgt lautet
Code: Alles auswählen
$posts[$i]['post_text'] = nl2br($posts[$i]['post_text']);


Bei diesen Code kommt es zu fehler mit den BBCodes im Portal, beispiel ist schon lange her weiss nicht ob dich noch errinneren kannst bei die Code/Zitat Blöcke mit diesen riesen Abstand und wo ich mal gepostet hatte, oder bei sache die Javascript nutzen wo also wie folgt dann in der bbcode.tpl ist
Code: Alles auswählen
<!-- BEGIN text --><script type="text/javascript">
<!--
blabla("{BLABLA}");
// -->
</script><!-- END text -->


Durch diese Absätze dort tut dann die mit den oben genannten Code bei jeden Absatz ein <br /> einfügen weshalb das Script dann nicht richtig läuft oder der Code/Zitat-Block so ein große Abstand hat.

Naja jedenfalls wenn man es mit diesem ersetzten tut
Code: Alles auswählen
$posts[$i]['post_text'] = str_replace("\n", "\n<br />\n", $posts[$i]['post_text']);

Ist das Problem gelöst, der Abstand ist weg und die Scripte laufen und BBCode läuft einfach wunderbar im IM-Portal :)

Wäre jedenfalls eine weitere Optimierung für den IM-Portal finde ich :)
Chantals - Fanpage :: http://www.chantals-fanpage.de
Benutzeravatar
Christian_N
User
 
Beiträge: 524
Registriert: 31. Mai 2005 00:17
Wohnort: Deutschland

Beitragvon AmigaLink » 21. Dez 2006 14:38

Stimmt, die Funktion nl2br(); arbeitet nicht zuverlässig und wird deswegen im phpBB auch nicht genutzt. :)
Danke für den Hinweis, das hab ich bei meinen Codechanges vergessen einzufügen.
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


Zurück zu IM-Portal



Wer ist online?

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

cron