Hi. Ik ben momenteel bezig met het maken van een plugin voor Joomla maar dat wil echt totaal niet lukken. Waar ik op vastloop is dat mijn plugins gewoon totaal genegeerd lijken te worden.
Ik heb de documentatie gevolgd van Joomla zelf; http://docs.joomla.org/Creating_a_content_plugin
En verschillende plugins bekeken naar hun werking en opbouw.
Maar om een voor mij onbekende reden krijg ik het niet voor mekaar om een werkende plugin te maken. Het is geen probleem om hem geïnstalleerd te krijgen, maar zodra ik er zelf wat aan geknutseld heb (of a.d.h.v. de documentatie zelf gemaakt heb), lijkt de plugin totaal genegeerd te worden. Dat wil zeggen, als ik een foute syntax genereer in de code, krijg ik wel netjes een error.
Als ik een bestaande plugin helemaal leeg sloop tot hij alleen nog maar $article->text = "test"; doet, blijft het werken. Maar zodra ik de xml of de class name aanpas, is de pret over.
Ik heb ook geprobeerd om de encoding goed te zetten (UTF-8) maar ook dat mocht niet baten.
Dit was mijn laatste test: Ik heb de Phoca Maps Plugin gedownload (2.0.3) en ben deze aan gaan passen. Als ik alleen de .php aanpas, blijft ie het doen, maar de volgende configuratie doet al niets meer:
In dit bestand heb ik enkel <name> (regel 3) veranderd:
In dit bestand heb ik alleen de class-naam (regel 15) aangepast en de function onContentPrepare() totaal uitgekleed. En nogmaals, doe ik alleen dat laatste, werkt het nog goed!
M'n texteditor is Notepad++. Ik installeer de plugin steeds door hem te zippen en dan via de Extension manager te installeren. Het geheel draait op een zelfgeconfigureerde Debian Squeeze met een redelijk standaard installatie van Apache, PHP en MySQL, grotendeels a.d.h.v. The Perfect Server - Debian Squeeze (Debian 6.0), maar dan zonder wat componenten als bind en courier mail.
Ik ben echt helemaal leeg en snap er echt helemaal niets meer van en heb even een duw in de juiste richting nodig. Hopelijk zie ik iets stoms over het hoofd!
Ik heb de documentatie gevolgd van Joomla zelf; http://docs.joomla.org/Creating_a_content_plugin
En verschillende plugins bekeken naar hun werking en opbouw.
Maar om een voor mij onbekende reden krijg ik het niet voor mekaar om een werkende plugin te maken. Het is geen probleem om hem geïnstalleerd te krijgen, maar zodra ik er zelf wat aan geknutseld heb (of a.d.h.v. de documentatie zelf gemaakt heb), lijkt de plugin totaal genegeerd te worden. Dat wil zeggen, als ik een foute syntax genereer in de code, krijg ik wel netjes een error.
Als ik een bestaande plugin helemaal leeg sloop tot hij alleen nog maar $article->text = "test"; doet, blijft het werken. Maar zodra ik de xml of de class name aanpas, is de pret over.
Ik heb ook geprobeerd om de encoding goed te zetten (UTF-8) maar ook dat mocht niet baten.
Dit was mijn laatste test: Ik heb de Phoca Maps Plugin gedownload (2.0.3) en ben deze aan gaan passen. Als ik alleen de .php aanpas, blijft ie het doen, maar de volgende configuratie doet al niets meer:
In dit bestand heb ik enkel <name> (regel 3) veranderd:
XML: phocamaps.xml
Ik weet dat bovenstaande constructor niet volgens de documentatie is, maar met de juiste constructor, doet ie precies hetzelfde (niet).1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <?xml version="1.0" encoding="utf-8"?> <extension group="content" method="upgrade" type="plugin" version="1.7.0"> <name>Dv Event Plugin</name> <creationDate>26/07/2011</creationDate> <author>Jan Pavelka (www.phoca.cz)</author> <authorEmail></authorEmail> <authorUrl>www.phoca.cz</authorUrl> <copyright>Jan Pavelka</copyright> <license>GNU/GPL</license> <version>2.0.3</version> <description><![CDATA[ Phoca Maps Plugin - displays Phoca Maps in article<br /> More information on <a href="http://www.phoca.cz" target="_blank" >www.phoca.cz</a> ]]></description> <files> <filename plugin="phocamaps">phocamaps.php</filename> <filename >index.html</filename> </files> <languages> <language tag="en-GB">language/en-GB/en-GB.plg_content_phocamaps.ini</language> </languages> <administration> <languages> <language tag="en-GB">language/en-GB/en-GB.plg_content_phocamaps.ini</language> </languages> </administration> <config> <fields name="params" addpath="/administrator/components/com_phocamaps/models/fields"> // *snip* hier heb ik niets veranderd t.o.v. het origineel // </fields> </config> </extension> |
In dit bestand heb ik alleen de class-naam (regel 15) aangepast en de function onContentPrepare() totaal uitgekleed. En nogmaals, doe ik alleen dat laatste, werkt het nog goed!
PHP: phocamaps.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <?php /* * @package Joomla 1.5 * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * * @plugin Phoca Plugin * @copyright Copyright (C) Jan Pavelka www.phoca.cz * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL */ defined( '_JEXEC' ) or die( 'Restricted access' ); jimport( 'joomla.plugin.plugin' ); jimport( 'joomla.application.component.helper' ); class plgContentDvEvent extends JPlugin { public function __construct(& $subject, $config) { parent::__construct($subject, $config); $this->loadLanguage(); } public function onContentPrepare($context, &$article, &$params, $page = 0) { $article->text = "PLEASE DOE HET!"; return true; } } ?> |
M'n texteditor is Notepad++. Ik installeer de plugin steeds door hem te zippen en dan via de Extension manager te installeren. Het geheel draait op een zelfgeconfigureerde Debian Squeeze met een redelijk standaard installatie van Apache, PHP en MySQL, grotendeels a.d.h.v. The Perfect Server - Debian Squeeze (Debian 6.0), maar dan zonder wat componenten als bind en courier mail.
Ik ben echt helemaal leeg en snap er echt helemaal niets meer van en heb even een duw in de juiste richting nodig. Hopelijk zie ik iets stoms over het hoofd!
[Voor 5% gewijzigd door Room42 op 18-11-2011 09:42]
Blokkeert alle ads en trackers met:
- uBlock Origin
- uMatrix
- en Pi-Hole voor de rest van het netwerk.