Visualizzazione risultati 1 fino 26 di 26

Discussione: Sfruttare il parser di MediaWiki

  1. #1
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito Sfruttare il parser di MediaWiki

    Mi servirebbe un parser per trasformare i testi di una Wiki e stamparli a video. Ho provato con questa classe ma non è perfetta (non trasforma tutto ma solo alcune cose principali). Ho provato a sfruttare il parser di MediaWiki ma non riesco a capire bene come funziona (non riesco a stampare nulla a video). Qualcuno ha qualche idea a proposito?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  2. #2
    Guest

  3. #3
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Io vedo solo una guida a MediaWiki, mi sono perso qualcosa?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  4. #4
    Guest

    Predefinito

    Impara ad usarlo ce la faccio io ..non vedo il motivo per il quale non dovresti farcela tu!...
    Quali problemi hai???Dive incontri difficoltà???


    (io lo sto facendo vediamo un po' tu!)

  5. #5
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Non sta chiedendo come funziona il wiki, ma come usare le classi.

    La documentazione del codice è questa:
    http://www.mediawiki.org/wiki/Manual:Parser.php
    Sembra chiara, cosa ti serve di preciso?
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Grazie del link.
    Io ho questo codice:
    Codice PHP:
    <?php
    include("Parser.php");
    $oggetto=new Parser();
    echo
    $oggetto->parse($testodaparsare, "Titolo", $oggetto->mOptions);
    ?>
    Ma non mi stampa nulla a video.

    P.S.: Per la cronaca: CastiCrew continua a rispondere a caso per farmi credere che mi sta aiutando perché vuole un aiuto in una discussione dove non so come aiutarlo.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    Il problema è cosa restituisce la funzione parse...
    Sono andato a vedere in http://svn.wikimedia.org/doc/classParser.html (seguendo un link nella pagina segnalata) e dice che Parser::parse restituisce un oggetto di tipo ParserOutput, e bisognerà usare un metodo su quell'oggetto per avere il testo.

    La documentazione non è chiara, ma credo basti "echo $oggetto->parse(...)->getText();".

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ho provato così ma non mi dà ancora nulla in output:
    Codice PHP:
    <?php
    include("Parser.php");
    include(
    "ParserOutput.php");
    $oggetto=new Parser();
    $nuovo=$oggetto->parse($testodaparsare, "Titolo", $oggetto->mOptions);
    echo
    $nuovo->getText();
    ?>
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Ho provato così ma non mi dà ancora nulla in output:
    Codice PHP:
    <?php
    include("Parser.php");
    include(
    "ParserOutput.php");
    $oggetto=new Parser();
    $nuovo=$oggetto->parse($testodaparsare, "Titolo", $oggetto->mOptions);
    echo
    $nuovo->getText();
    ?>
    Ma c'è qualche form che manda a questa pagina in codice?

    Ciao...

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Perché ci deve essere un form?
    Oltre a quello che ho scritto c'è prima solo l'assegnazione alla variabile $testodaparsare che funziona e che consiste nella lettura dal database di un valore.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    Guest

    Predefinito

    Perché come dici tu non c'è l'assegnazione di $testodaparsare.

    Ciao...

  12. #12
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Prova a passare come testo <nowiki>prova</nowiki> ti restituisce qualcosa?

    PS
    Titolo non è una stringa ma una classe, forse va in errore la classe, magari hanno una gestione errori interna e quindi non visualizzi errori.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  13. #13
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ho provato a mettere come testo "<nowiki>prova</nowiki>" e come titolo "$oggetto->getTitle()", ma non cambia nulla.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Ho provato a mettere come testo "<nowiki>prova</nowiki>" e come titolo "$oggetto->getTitle()", ma non cambia nulla.
    Quel <nowiki> non va bene neanche con stile quindi non c'entra niente, al massimo <p class="nowiki">.

    Ciao...

  15. #15
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Potresti scrivere solo quando sai di cosa parli e dopo aver contato fino a 10?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  16. #16
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Ti converrebbe cercare un'altra parte del codice dove viene creato e utilizzata la classe parser.

    Cmq
    Dopo aver creato la classe parser molto probabilmente la devi inizializzare con il metodo
    firstCallInit
    Magari è solo quello il problema.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  17. #17
    Guest

    Predefinito

    Un var_dump() di $nuovo dopo la chiamata a parse() cosa ti restituisce?

    mavericck

  18. #18
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Ti converrebbe cercare un'altra parte del codice dove viene creato e utilizzata la classe parser.
    Provo a spulciarmi tutto il codice.

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Cmq
    Dopo aver creato la classe parser molto probabilmente la devi inizializzare con il metodo
    firstCallInit
    Magari è solo quello il problema.
    All'inizio del file "Parser.php" c'è scritto:
    Codice:
     * There are four main entry points into the Parser class:
     * parse()
     *   produces HTML output
     * preSaveTransform().
     *   produces altered wiki markup.
     * transformMsg()
     *   performs brace substitution on MediaWiki messages
     * preprocess()
     *   removes HTML comments and expands templates
    Quindi penso che si possa inizializzare la classe con una di queste quattro funzioni.

    Citazione Originalmente inviato da mavericckweb Visualizza messaggio
    Un var_dump() di $nuovo dopo la chiamata a parse() cosa ti restituisce?
    Non mi stampa nulla a video (ho provato anche con $oggetto).
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool Visualizza messaggio
    Non mi stampa nulla a video (ho provato anche con $oggetto).
    è molto strano perchè il costruttore della classe inizializza alcuni attributi, e almeno quelli il var_dump() dovrebbe visualizzarli. Hai per caso silenziato warnings e notices?

    Altro appunto, quando chiami parse() ho visto che passi "titolo", ma la funzione richiede un oggetto "title" passato per riferimento

    mavericck

  20. #20
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da mavericckweb Visualizza messaggio
    è molto strano perchè il costruttore della classe inizializza alcuni attributi, e almeno quelli il var_dump() dovrebbe visualizzarli. Hai per caso silenziato warnings e notices?
    Ho messo all'inizio:
    Codice PHP:
    error_reporting(E_ALL);
    Citazione Originalmente inviato da mavericckweb Visualizza messaggio
    Altro appunto, quando chiami parse() ho visto che passi "titolo", ma la funzione richiede un oggetto "title" passato per riferimento
    Ho fatto così.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  21. #21
    Guest

    Predefinito

    Giusto per curiosità..

    un

    Codice PHP:
    define('MEDIAWIKI', true);
    dopo il <?php

    cambia qualcosa?

    mavericck

  22. #22
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non cambia nulla.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  23. #23
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Hai sicuramente Gli errori disabilitati.

    Ho fatto una prova e mi sono fermato qua:
    Codice:
    <?php
    define('MEDIAWIKI', true);  
    include("includes/GlobalFunctions.php");
    include("includes/ProfilerStub.php");
    include("includes/MagicWord.php");
    include("includes/ParserOutput.php");
    include("includes/Parser.php");
    $oggetto=new Parser();
    $oggetto->firstCallInit();
    $nuovo=$oggetto->parse("Prova", "Titolo", $oggetto->mOptions);
    echo $nuovo->getText();
    ?>
    Il problema è che va inizializzato un po tutto.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  24. #24
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Con questa prova ti funziona? Ricorda che il titolo non è una stringa ma un oggetto.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  25. #25
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Non funziona, ma ero stufo di cercare dipendenze.

    Mi da un bel "Call to a member function getMagic() on a non-object" nella classe MagicWord.
    Va sicuramente inizializzato qualcosa.

    Poi fanno spesso uso di classe dichiarate Globali, probabilmente sono passati da poco alla programmazione ad oggetti.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  26. #26
    Guest

    Predefinito

    La cosa divertente è che in tutto il pacchetto mediawiki non esiste mai un esplicita istanziazione di Parser, tranne che in due file di test (maintenance/parserTests.inc linea 290, maintenance/renderDump.php linea 62).

    Un'istanza di Parser trovata per caso è $wgParser (resa globale come accennato da binarysun), che però viene creata con
    Codice PHP:
    $wgParser = new StubObject( 'wgParser', 'Parser' );
    in includes/setup.php linea 173.

    Magari prova a crearla anche tu in quel modo, o dai un'occhiata ai due file di test citati sopra, per l'utilizzo diretto della classe.

    mavericck

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •