php tut für c/c++ umsteiger



  • *grussel* includes in funktionen
    naja wenn ich die includes in die funktion mache dann krige ich die

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 27 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 32 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: Cannot modify header information - headers already sent by (output started at C:\WAMP\Root\phpBB2\db\mysql4.php:259) in C:\WAMP\Root\phpBB2\includes\page_header.php on line 460

    Warning: Cannot modify header information - headers already sent by (output started at C:\WAMP\Root\phpBB2\db\mysql4.php:259) in C:\WAMP\Root\phpBB2\includes\page_header.php on line 466

    Warning: Cannot modify header information - headers already sent by (output started at C:\WAMP\Root\phpBB2\db\mysql4.php:259) in C:\WAMP\Root\phpBB2\includes\page_header.php on line 467

    und

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 48 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 53 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 58 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 63 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 68 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259

    Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 73 in C:\WAMP\Root\phpBB2\db\mysql4.php on line 259



  • ich habs mal verbessert:

    unter

    if ( !defined('IN_PHPBB') )
    {
        die("Hacking attempt");
    }
    

    das:

    $phpbb_root_path = "c:\\www\\phpBB2\\";
    include $phpbb_root_path."extension.inc";
    include $phpbb_root_path."config.".$phpEx;
    include $phpbb_root_path."includes/db.".$phpEx;
    

    dann die gettopictitel:

    function gettopictitel($x)
     {
        global $db;
    
        $sql = "SELECT topic_title
                FROM " . TOPICS_TABLE . " 
                WHERE topic_id = '$x'";
            if ( !($result = $db->sql_query($sql)) )
            {
    
                message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql);
            }
            $titel = $db->sql_fetchrow();
    
         return $titel[0];
     }
    

    Gruß
    Michi



  • jupie mein erster mod, danke Michi_M & flenders ohne euch wäre das nicht möglich

    //unter 
    
    if ( !defined('IN_PHPBB') )
    {
        die("Hacking attempt");
    }
    
    //das:
    
    $phpbb_root_path = "./"; // <- anpassen
    include $phpbb_root_path."extension.inc";
    include $phpbb_root_path."config.".$phpEx;
    include $phpbb_root_path."includes/db.".$phpEx;
    
    // über
    
    function make_clickable($text)
    {
    
        // pad it with a space so we can match things at the start of the 1st line.
        $ret = ' ' . $text;
    
    // das
    
    function get_topic_titel($x)
    {
        global $db;
    
        $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$x'";
    
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql);
        }
        $titel = $db->sql_fetchrow();
    
        return $titel['topic_title'];
    }
    
    function raw_topic_url_to_url_with_topic_titel($mat)
    {
        return $mat[1]."<a href=\"".$mat[2].$mat[3].$mat[4]."\" target=\"_blank\">".get_topic_titel($mat[3])."</a>";
    }
    
    // unter
    
    function make_clickable($text)
    {
    
        // pad it with a space so we can match things at the start of the 1st line.
        $ret = ' ' . $text;
    
    // das
    
        $ret = preg_replace_callback
        (
            "#(\s)(http://localhost/phpbb2/viewtopic\.php\?t=)(\d*)(\S*)([^ \"\n\r\t<]*)#i", 
            'raw_topic_url_to_url_with_topic_titel', 
            $ret 
        );
        // hier müsste man den pattern an sein Forum anpassen
        // ich muss mal kucken obs eine konstante gibt die es erleichtern würde
    


  • Das funktioniert jetzt aber wohl nur für eine URL - denke ich 🙄
    Also auch wenn mehrere URLs dieser Form enthalten sind bekommst du nur einen Treffer 😉



  • Original erstellt von flenders:
    Das funktioniert jetzt aber wohl nur für eine URL - denke ich 🙄
    Also auch wenn mehrere URLs dieser Form enthalten sind bekommst du nur einen Treffer 😉

    ne das geht schon

    mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit])

    The behavior of this function is almost identical to preg_replace(), except for the fact that instead of replacement parameter, one should specify a callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string.

    preg_replace hört ja auch nicht nach den ersten treffer auf

    ps. ich habe es etwas erweitert so das es jetzt auch mit foren geht

    //unter 
    
    if ( !defined('IN_PHPBB') )
    {
        die("Hacking attempt");
    }
    
    //das:
    
    $phpbb_root_path = "./"; // <- anpassen
    include $phpbb_root_path."extension.inc";
    include $phpbb_root_path."config.".$phpEx;
    include $phpbb_root_path."includes/db.".$phpEx;
    
    // über
    
    function make_clickable($text)
    {
    
        // pad it with a space so we can match things at the start of the 1st line.
        $ret = ' ' . $text;
    
    // das
    
    function get_topic_titel($x)
    {
        global $db;   
        $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$x'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql);
        }
        $titel = $db->sql_fetchrow();  
        return $titel['topic_title'];
    }
    
    function get_forum_titel($x)
    {
        global $db;   
        $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '$x'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql);
        }
        $titel = $db->sql_fetchrow();
        return $titel['forum_name'];
    }
    
    function raw_url_to_url_with_titel($subpattern)
    {
        $url = $subpattern[2].$subpattern[3].$subpattern[4].$subpattern[5];
        if($subpattern[3] == "viewtopic.php?t=")
            $titel = get_topic_titel($subpattern[4]);
        else
            $titel = get_forum_titel($subpattern[4]);
        return $subpattern[1]."<a href=\"".$url."\" target=\"_blank\">".$titel."</a>";
    } 
    
    // unter
    
    function make_clickable($text)
    {
    
        // pad it with a space so we can match things at the start of the 1st line.
        $ret = ' ' . $text;
    
    // das
    
        $phpbb_url = "http://localhost/phpbb2/"; // anpassen
    
        $ret = preg_replace_callback
        (
            "#(\s)(".$phpbb_url.")(viewtopic\.php\?t=|viewforum\.php\?f=)(\d+)(\S*)([^ \"\n\r\t<]*)#i", 
            'raw_url_to_url_with_titel', 
            $ret 
        );
    

    ich bin schon die ganze zeit auf der suche wie ich

    $phpbb_root_path = "./"; // <- anpassen 
    $phpbb_url = "http://localhost/phpbb2/"; // anpassen
    

    automatisch bekommen kann



  • In welchem Ordner liegt denn dein Script?



  • document_root/phpbb



  • c:\wamp\root\phpbb2\include\bbcode.php

    aber ich glaube $phpbb_root_path = "./"; muss ich nicht anpassen(eigentlich müsste es ../ sein, aber wahrscheinlich wird bbcode.php selber auch im phpbb2 ordner includet und von da aus ist ./ richtig),
    dann bleibt noch $phpbb_url = "http://localhost/phpbb2/";

    [ Dieser Beitrag wurde am 11.03.2003 um 15:35 Uhr von Dimah editiert. ]



  • Probie es mal so:

    $phpbb_url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";
    


  • jup hat geklapt

    ps. hier ist so ein template dings bums

    ############################################################## 
    ## MOD Title: Raw Url Converter
    ## MOD Version: 0.9
    ## MOD Author: Dimah; choinka@web.de; Gerard Choinka
    ## MOD Description: This mod converts raw urls of topics or forums to urls with the topic or forum titel.
    ## 
    ## Installation Level: easy 
    ## Installation Time: 5 Minutes 
    ## Files To Edit: bbcode.php
    ## Included Files: 
    ############################################################## 
    ## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/  for the 
    ## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
    ## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
    ## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/  
    ############################################################## 
    ## This program is free software; you can redistribute it and/or modify
    ## it under the terms of the GNU General Public License as published by
    ## the Free Software Foundation; either version 2 of the License, or
    ## (at your option) any later version.
    ############################################################## 
    ## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
    ##############################################################  
    
    # 
    #-----[ OPEN ]------------------------------------------ 
    #
    
    includes/bbcode.php
    
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
    
    if ( !defined('IN_PHPBB') )
    {
        die("Hacking attempt");
    }
    
    # 
    #-----[ AFTER, ADD ]------------------------------------------ 
    # 
    
    include "./extension.inc";
    include "./config.".$phpEx;
    include "./includes/db.".$phpEx;
    
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
    
    function make_clickable($text)
    {
    
        // pad it with a space so we can match things at the start of the 1st line.
        $ret = ' ' . $text;
    
    # 
    #-----[ BEFORE, ADD ]------------------------------------------ 
    # 
    
    function get_topic_titel($id)
    {
        global $db;   
        $sql = "SELECT topic_title FROM " . TOPICS_TABLE . " WHERE topic_id = '$id'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, "Could not obtain newer/older topic information", '', __LINE__, __FILE__, $sql);
        }
        $titel = $db->sql_fetchrow();  
        return $titel['topic_title'];
    }
    
    function get_forum_titel($id)
    {
        global $db;   
        $sql = "SELECT forum_name FROM " . FORUMS_TABLE . " WHERE forum_id = '$id'";
        if ( !($result = $db->sql_query($sql)) )
        {
            message_die(GENERAL_ERROR, "Could not obtain newer/older Forum information", '', __LINE__, __FILE__, $sql);
        }
        $titel = $db->sql_fetchrow();
        return $titel['forum_name'];
    }
    
    function preg_replace_callback_func_raw_url_to_url_with_titel($subpattern)
    {
        $url = $subpattern[2].$subpattern[3].$subpattern[4].$subpattern[5];
        if($subpattern[3] == "viewtopic.php?t=")
            $titel = get_topic_titel($subpattern[4]);
        else
            $titel = get_forum_titel($subpattern[4]);
        return $subpattern[1]."<a href=\"".$url."\" target=\"_blank\">".$titel."</a>";
    }
    
    function raw_url_to_url_with_titel($ret)
    {
        $phpbb_url = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/";
    
        $ret = preg_replace_callback
        (
            "#(\s)(".$phpbb_url.")(viewtopic\.php\?t=|viewforum\.php\?f=)(\d+)(\S*)([^ \"\n\r\t<]*)#i", 
            'preg_replace_callback_func_raw_url_to_url_with_titel', 
            $ret 
        );
        return $ret;
    }
    
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
    
    function make_clickable($text)
    {
    
        // pad it with a space so we can match things at the start of the 1st line.
        $ret = ' ' . $text;
    
    # 
    #-----[ AFTER, ADD ]------------------------------------------ 
    # 
    
        $ret = raw_url_to_url_with_titel($ret);
    
    # 
    #-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
    # 
    # EoM
    


  • Original erstellt von Dimah:
    **jup hat geklapt

    ps. hier ist so ein template dings bums

    ############################################################## 
    ## MOD Title: Raw Url Converter
    ## MOD Version: 0.9
    ## MOD Author: Dimah; choinka@web.de; Gerard Choinka
    ## MOD Description: This mod converts raw urls of topics or forums to urls with the topic or forum titel.
    ## 
    ## Installation Level: easy 
    ## Installation Time: 5 Minutes 
    ## Files To Edit: bbcode.php
    ## Included Files:
    ```**
    

    du könntest wenigsten auch die nennen die den mod gemacht haben. eigenlob stinkt und vor allem wenn die anderen die arbeit gemacht haben. 😡



  • ich habe mich nur hier dran gehalten http://www.phpbb.com/kb/article.php?article_id=39&sid=7658a631ebc914935ba2ded1de68e7bc
    natürlich haben die helfer meinen dank, ich denke das wissen sie auch ohne das ich wo was schreiben muss
    deswegen hielt ich es nicht für notwendig

    ps. bevor ich weiter mit dir diskutieren soll, schreibe ich das irgend wo rein. das kostet mich weniger zeit



  • Original erstellt von Dimah:
    **ich habe mich nur hier dran gehalten http://www.phpbb.com/kb/article.php?article_id=39&sid=7658a631ebc914935ba2ded1de68e7bc
    natürlich haben die helfer meinen dank, ich denke das wissen sie auch ohne das ich wo was schreiben muss
    deswegen hielt ich es nicht für notwendig

    ps. bevor ich weiter mit dir diskutieren soll, schreibe ich das irgend wo rein. das kostet mich weniger zeit**

    ich meine nicht das layout sondern den code...



  • Ist doch OK so 😉



  • ich meine nicht das layout sondern den code...

    ja ich auch

    'The phpBB Group' has a specially designed "MOD Template" that is required for all submissions of MOD's, into our MOD database.

    lies dir den link durch und sag mir wo ich das danke hinein tuen soll?

    [ Dieser Beitrag wurde am 11.03.2003 um 22:18 Uhr von Dimah editiert. ]



  • Original erstellt von <jens>:
    du könntest wenigsten auch die nennen die den mod gemacht haben. eigenlob stinkt und vor allem wenn die anderen die arbeit gemacht haben. 😡

    😡 klar ich habe die ganze zeit dauem gedreht und gewartet bis sie posten :p

    [ Dieser Beitrag wurde am 12.03.2003 um 00:34 Uhr von Dimah editiert. ]



  • Macht das unter euch aus, nicht hier!

    Dimah, wenn du noch gezielte Fragen hast, kannst du ja einen neuen Thread eröffnen.


Anmelden zum Antworten