it-swarm.com.de

XML-Parameter in PHP file ziehen

Ich versuche mein erstes Plugin zu erstellen! Ich möchte jedoch, dass der Benutzer eine Nummer definieren kann, die dann in bestimmten Teilen des Plugins verwendet wird. Dieses Plugin besteht nur aus einer XML-Datei und einer PHP-Datei. Wie kann ich diesen bestimmten Parameter aus der vom Benutzer übermittelten XML-Datei abrufen und dann in PHP verwenden?

Hier ist die XML unten.

<?xml version="1.0" encoding="utf-8"?>
<extension type="plugin" version="1.0.5" method="upgrade" group="content">
<name>Content - Article Title Truncator</name>
<creationDate>2016-01-16</creationDate>
<version>1.0.5</version>
<releaseDate>2016-01-16 07:08:00</releaseDate>
<releaseType>First public release!</releaseType>
<author>Michael Baas / Jesse Humphry</author>
<authorEmail>[email protected]</authorEmail>
<authorUrl>http://www.geeksgamers.com</authorUrl>
<copyright>(c) 2016 Jesse Humphry</copyright>
<description>This plugin has been adapted from a code publically released on
    stackoverflow.com by Michael Baas in 2013. It has been adapted for 
    Joomla 3.x and given a back-end option for selection of character limit.
</description>
<files>
<filename plugin="Article Title Truncator">foo.php</filename>
</files>
<config>
<fields name="params">
    <fieldset name="Basic">
    <field name="Character Limit" type="text" default="25" filter="integer" maxlength="5" label="Character Limit">
    </field>
    </fieldset>
</fields>
</config>
</extension>

Und hier ist die PHP Datei.

<?php

class plgContentFoo extends JPlugin
    {
    public function onContentPrepare($context,$article,$params,$limitstart)
    {

    $view = JRequest::getCmd('view');
    $fp = in_array($view,array("featured","addmore"));

        if ($fp && 34<strlen($article->title)) {
            $article->title = trim(substr($article->title,0,31)) . "...";
            return true;
        }
    }


}

?>

Ich muss alles, was eingegeben wird, aus dem Feld "Zeichenbeschränkung" des XML-Formulars abrufen und anstelle der ersten Ganzzahl im PHP) -Formular verwenden bitte sei höflich.

4
Jesse Humphry

Erstens sollten Sie für das name -Attribut immer eine einzelne Zeichenfolge verwenden. Wenn es mehrere Wörter gibt, trennen Sie diese am besten mit einem Unterstrich und achten Sie immer darauf, dass alle Zeichen in Kleinbuchstaben geschrieben sind, um Verwechslungen zu vermeiden.

Also in deinem Fall ersetze:

name="Character Limit"

mit:

name="character_limit"

Hinweis: Bei Änderungen der XML-Parameter, die bei der Installation des Plugins vorgenommen werden, müssen Sie nach Abschluss des Vorgangs "Speichern".


Sie können den Parameterwert dann einfach wie folgt aufrufen:

$value = $this->params->get('character_limit', 50);

Das zweite Argument (50) ist nur ein Beispiel und wird als Standardwert verwendet, wenn vom Benutzer kein Wert angegeben wurde.

Hoffe das hilft


Übrigens, Sie haben diese Frage als Joomla 3.x markiert. Daher ist JRequest, das Sie in Ihrem Code verwenden, veraltet. Verwenden Sie stattdessen Jinput und ein Beispiel ist hier zu sehen

Und version="1.0.5" am oberen Rand Ihres XML sollte die Joomla-Version sein, nicht Ihre Plugin-Version;)

2
Lodder