Archief - PHP: Emoticons werken niet in Text_Wiki klasse

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

horse_99

Legacy Member
Hallo,

Ik gebruik de Text_Wiki klasse om de bulletin board code om te zetten naar HTML op mijn website. (Als je deze nog niet kent, probeer ze dan zeker eens uit, want het is de moeite.) Probleem is dat ik de emoticons (subklasse Smiley) niet aan de praat krijg. In het bestand Smiley.php in de map Xhtml heb ik de array $conf aangepast als volgt:

PHP:
var $conf = array(
'prefix' => 'http://localhost/images/smiles/icon_',
'extension' => '.gif',
'css' => null
);

De prefix dus aangepast (ja, de map klopt), maar dit wilt dus niet werken .

Weet iemand raad?

Alvast bedankt voor de reacties.

killgore

Legacy Member
als et op uw website is zulde zeer prolly niet met localhost moeten werken.

Probeer eens met het "directe" pad? /usr/... dus als het een linux server is.

horse_99

Legacy Member
Ja, nog niet aan gedacht. Ik zal eens een poging doen.

Edit
Ik krijg het niet aan de praat, heb nog vanalles geprobeerd buiten de tip van killgore. In de documentatie vindt ik geen andere belangrijke zaken of variabelen die je correct moet instellen. Ik ga nog wat verder zoeken en desnoods de auteur contacteren denk ik.

Strangler

Legacy Member
je geeft ook niet veel code vrij hé? we weten ook niet hoe je mappenstructuur eruit ziet.

KULeest

Legacy Member
gewoon zo?

var $conf = array(
'prefix' => 'images/smiles/icon_',
'extension' => '.gif',
'css' => null
);

horse_99

Legacy Member
Ja, maar als ik al de code hier moet geven gaat het nogal veel worden, want het omzetten van die emoticons gebeurt door een samenhang van enkele klassen en ik denk dat er hier niemand moeite gaat doen om alles uit te pluizen :). Het is gewoon die ene parameter die je moet aanpassen, maar blijkbaar werkt het gewoonweg niet bij mij. Dit vind je terug in de documentatie over die emoticons:

Class Variables

PHP:
$conf = array(
        'prefix' => 'images/smiles/icon_',
        'extension' => '.gif',
        'css' => null
    )

[line 45]
Configuration keys for this rule

'prefix' => the path to smileys images inclusive file name prefix, starts with '/' ==> abolute reference if no file names prefix but some folder, terminates with '/' 'extension' => the file extension (inclusive '.'), e.g. : if prefix 'smileys/icon_' and extension '.gif' ':)' whose name is 'smile' will give relative file 'smileys/icon_smile.gif' if prefix '/image/smileys/' and extension '.png': absolute '/image/smileys/smile.gif' 'css' => optional style applied to smileys

Tyfius

Legacy Member
Je mag een directory nooit aanspreken met http://...

Stel dat je structuur er als volgt uitziet:
Code:
public_html
..images
..pear/Text_Wiki
..files
dan ga je naar die bovenste images terug moeten gaan. Het eenvoudigste is volgens mij om dat met een pre defined variabele te doen.

horse_99

Legacy Member
Ik denk dat dit in dit geval weinig uitmaakt.

PHP:
class Text_Wiki_Render_Xhtml_Smiley extends Text_Wiki_Render {

    /**
     * Configuration keys for this rule
     * 'prefix' => the path to smileys images inclusive file name prefix,
     *             starts with '/' ==> abolute reference
     *             if no file names prefix but some folder, terminates with '/'
     * 'extension' => the file extension (inclusive '.'), e.g. :
     *       if prefix 'smileys/icon_' and extension '.gif'
     *       ':)' whose name is 'smile' will give relative file 'smileys/icon_smile.gif'
     *       if prefix '/image/smileys/' and extension '.png': absolute '/image/smileys/smile.gif'
     * 'css' => optional style applied to smileys
     *
     * @access public
     * @var array 'config-key' => mixed config-value
     */
    var $conf = array(
        'prefix' => 'images/smiles/icon_',
        'extension' => '.gif',
        'css' => null
    );

    /**
      * Renders a token into text matching the requested format.
      * process the Smileys
      *
      * @access public
      * @param array $options The "options" portion of the token (second element).
      * @return string The text rendered from the token options.
      */
    function token($options)
    {
        $imageFile = $this->getConf('prefix') . $options['name'] . $this->getConf('extension');

        // attempt to get the image size
        $imageSize = @getimagesize($imageFile);

        // return the HTML output
        return '<img src="' . $this->textEncode($imageFile) . '"' .
            (is_array($imageSize) ?
                ' width="' . $imageSize[0] . '" height="' . $imageSize[1] .'"' : '') .
            ' alt="' . $options['desc'] . '"' .
            $this->formatConf(' class="%s"', 'css') . ' />';
    }
}

Iets later na het instellen van $conf wordt die waarde meteen ingevuld bij het src attribuut.

Tyfius

Legacy Member
Dusss....
vervang die images/smiles/icon_ met de directory waar uw smilies staan...
Die Text_Wiki zal waarschijnlijk niet bij uw root directory beginnen, dus dat moet ge aanpassen. Het eenvoudigste is om hier een pre defined variabele te gebruiken die uw path opbouwd via uw SERVER_PATH variabele en dan vervolgd door de juiste map binnen uw tree.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan