Title Hacks per module  Naar boven

  • Ik start dit draadje omdat het vrij eenvoudig is om de juiste titel in de browser te krijgen met de functie die binnen PostNuke al mogelijk is.

    Het PNphpBB forum is mijn inspiratie geweest omdat deze het al doet, en wordt door de Xanthia plug-in title geregeld.

    Het bestand die zorgt voor de juiste titel is: /modules/Xanthia/plugins/function.title.php, en daar valt te vinden dat er gekeken wordt of de variable $GLOBALS['info']['title'] gevuld is of niet. Om deze functie dus optimaal te kunnen gebruiken, is het vereist dat er pèr module aanpassingen gemaakt worden.

    In deze OP (openingspost) zal ik een index gaan bijhouden en per module een nieuwe post maken. Ik zou het zeer op prijs stellen als er geen vragen in dit onderwerp komen hierover, zodat het draadje enkel de how-to / work-around bevatten per module.

    Inhoud
  • Core-Module: RSS

    Open het bestand: /modules/RSS/pnuser.php

    Op regel 103 eindigd de check om welke categorie het gaat:
    Code
    // get the category id
        if ((pnModAvailable('Categories')) && pnModIsHooked('Categories', 'RSS')) {
            if (empty($cid)) {
                $cids = pnModAPIFunc('Categories', 'user', 'getmastercids', array('modname' => 'RSS'));
                if (is_array($cids)) {
                   $cid = $cids[0];
                } else {
                   $cid = $cids;
                }
            }
        }


    Daar onder zet je de regel:
    Code
    $GLOBALS['info']['title'] = _RSS;


    Bijna helemaal onderaan vinden we de code die de items gaat weer geven van een RSS Feed.
    Code
    // Display details of the item.
        $pnRender->assign('item', $item);
        $pnRender->assign('feed', $feed);


    Onder die regels zet je het volgende:
    Code
    $GLOBALS['info']['title'] = $item[feedname];


    Opslaan en zie het resultaat ;)
  • 3rd-party Module: pnFlashGames

    Open het bestand: /modules/pnFlashGames/pnuser.php

    Onder de regel:
    Code
    //Make sure that cid and contid don't confict?

    zetten we het volgende:
    Code
    $GLOBALS['info']['title'] = "Games";

    Deze zal dus niet de module-name krijgen, maar een vaste tekst. Ik vind persoonlijk Games beter staan dan pnFlashGames.

    We zoeken in het bestand verder naar de code:
    Code
    //here starts the function to check wich game-code must be used
    //if(file_exists(dirname($item['gamefile'])."/".basename($item['gamefile'], ".swf").".swf")){


    Daar zetten boven:
    Code
    $GLOBALS['info']['title'] = $item['name'];


    Aangezien ik geen contest/wedstrijden houd, en ook niet aan categoriën doe, ben ik niet opzoek gegaan waar die waardes staan in de module. Mocht iemand dat willen opzoeken, laat het even weten, dan kan het hier bij gezet worden.
  • 3rd-party Module: phpComic

    Open het bestand: /modules/phpcomic/pnuser.php

    zoek naar:
    Code
    // Assign details of the item.


    en voeg in het rijtje daaronder toe:
    Code
    $GLOBALS['info']['title'] = $item[itemname];


    En opslaan maar weer.
  • Core Module: Web_Links

    [i]Deze vergt nogal veel aanpassingen, maar laat je niet weerhouden/[i]

    Open het bestand: /modules/Web_Links/index.php

    Zoek:
    Code
    if(empty($req)) {
        $req = '';
    }

    voeg daar onder toe:
    Code
    $GLOBALS['info']['title'] = $ModName;


    Ik gebruik hier de naam van de module, zoals dus de naam van de directory heet. Er zal dus: "Web_Links" komen te staan in de meeste gevallen.

    Om ook de juiste titels te krijgen bij de sub-onderdelen van deze module, blijven we nog even in dit bestand, want er wordt met een switch functie gekeken welk request er wordt gedaan, en we gaan dus de titel ook per request opbouwen. Hiervoor gebruiken de variablen, zodat het in elke taal goed staat.

    bij: case "AddLink" voeg je toe:
    Code
    $GLOBALS['info']['title'] .= ": ". _ADDLINK ;


    bij: case "NewLinks" voeg je toe:
    Code
    $GLOBALS['info']['title'] .= ": ". _NEWLINKS;


    bij: case "MostPopular" voeg je toe:
    Code
    $GLOBALS['info']['title'] .= ": ". _POPULAR ;


    bij: case "TopRated" voeg je toe:
    Code
    $GLOBALS['info']['title'] .= ": ". _TOPRATED ;


    Opslaan en sluiten, gaan we naar het volgende bestand.

    open: /modules/Web_Links/wl-linkdetails.php

    zoek naar:
    Code
    if (!pnSecAuthAction(0, 'Web Links::Category', "$title::$cid" , ACCESS_READ)) {
        echo _BADAUTHKEY;
        include 'footer.php';
        return;
    }

    daar onder zetten we neer:
    Code
    $GLOBALS['info']['title'] = $displaytitle;


    Opslaan, en sluiten

    Open /modules/Web_Links/wl-viewlink.php

    onder de tekst:
    Code
    list($cid, $min, $orderby, $show) = pnVarCleanFromInput('cid', 'min', 'orderby', 'show');

    zetten we:
    Code
    $GLOBALS['info']['title'] .= ": " .CatPath($cid,1,1,0)."";


    Opslaan, en klaar.

    Er kunnen meerdere bestanden aangepast worden, maar deze vond ik het belangrijkste, wie het wil aanvullen, laat het even weten, kan het hierbij gezet worden ;)
  • 3rd-party module: htmlpages

    open: /modules/htmlpages/pnuser.php

    zoek naar:
    Code
    if ($item == false) {
            return pnVarPrepHTMLDisplay(_HTMLPAGESITEMFAILED);
        }


    en zet daar onder:
    Code
    $GLOBALS['info']['title'] = $item[title];
  • Core-Module: Stats

    open: /modules/Stats/index.php

    onder de auth-check:
    Code
    if (!defined('LOADED_AS_MODULE')) {
        die ("You can't access this file directly...");
    }

    zetten we:
    Code
    $GLOBALS['info']['title'] = "Stats";


    Ik heb hier gekozen voor vaste tekst. Om gebruik te maken van de vertaling, bij een multilingual site, kan je ook _STATS gebruiken.

    Dan krijg je in het nederlands: bezoekers statistieken
  • Core-Module: Recommend_Us

    open /modules/Recommend_Us/index.php

    op regel 115 staat:
    Code
    OpenTable();

    daar zet je onder:
    Code
    $GLOBALS['info']['title'] = _FRIEND .": ".$title;


    Bij het mailen van een nieuws artikel, krijg je nu ook de juiste titel in je browser

    op regel 306 vind je de tekst:
    Code
    OpenTable();
    echo '<h1>'._RECCOMEND.'</h1>';


    Tussen die regels zet je:
    Code
    $GLOBALS['info']['title'] = _RECOMMEND;


    Deze zorgt voor de juiste titel voor de Recommend_Us link die enkel de website via de mail verstuurd.
  • Core-Module: LostPassword

    open: /modules/LostPassword/user.php

    voeg onder regel 54 toe:
    Code
    $GLOBALS['info']['title'] = _PASSWORDLOST ;

Deze lijst is gebaseerd op gebruikers die de afgelopen 10 minuten online waren

 

Taal

Preferred language