Joomla Plugin-->Wordpress

xdave78

Enthusiast
Thread Starter
Mitglied seit
27.02.2012
Beiträge
841
Ort
%SystemRoot%
Tag allerseits,

also ich wende mich mal auch an Euch Luxxer.
Und zwar hab ich eine Wordpress Seite (MMO Gilde).
Dort möchte ich gerne als Widget im Seitenmenü Infos aus einem inzwischen eingestellten Eventplaner (phpraider) anzeigen.
Ich hab schon vor Jahren eine Gildenseite in Joomla gehabt und dort gab es eigens dafür ein Modul, welches das realisiert hat.
Diese würde ich eigentlich in stark vereinfachter Form in WP haben wollen.

In Joomla hat das Modul:
  • Events mit Eventicon, Name (inkl Link zum Event), Tag, Zeit gezeigt
  • als Tooltip die angemeldeten User sowie gesamtzahl der Plätze/gebuchte Plätze
  • als Tooltip eine Möglichkeit sich direkt anzumelden ohne die Seite zu wechseln

Das WP Widget soll:
  • Events mit Eventicon, Name (inkl Link zum Event), Tag, Zeit zeigen

Ich selber habe PHP (very) Basic Skills, bin aber leider mit dem ganzen Wordpress drumherum etwas überfordert ( also das Ganze so zu verpacken, das WP es "versteht" und ich es auch im Backend aktivieren kann).
Ich wollte auch schon nen Freelancer anheuern, allerdings ist mir die Umsetzung einer - wie mir scheint- doch sehr einfachen Aufgabe für 200€ einfach mal zu happig da ich glaube, dass eine Umsetzung ohne viel Brimborium wahrscheinlich für jemanden der schon mal etwas für WP geschrieben hat maximal 1-2 Std dauert. (Hab mal das Joomla Modul angeschaut, und es ist im Prinzip kaum Code nötig)

Naja lange Rede kurzer Sinn. Ich brauche Hilfe, da ich mich nicht durch die gesamte WP Dokumentation zum Thema Entwicklung wurschteln mag.

Mal sehn ob ich mit Euch etwas weiter komme...

LG

Folgendes muss wohl im Widget/Plugin verpackt werden:

Datenbankverbindung

PHP:
	function getDb($params){
	$option['driver']	= 'mysql';            // Database driver name
	$option['host']		= trim( $params->get( 'host' ) );    // Database host name
	$option['user']		= trim( $params->get( 'user' ) );       // User for database authentication
	$option['password']	= trim( $params->get( 'password' ) );  // Password for database authentication
	$option['database']	= trim( $params->get( 'database' ) );      // Database name
	$option['prefix']	= '';
	


		$db =mysqli_connect("localhost", "user", "password", "database");
		return $db;
	}

Die Daten"holen"
PHP:
	function getRaids( $db, $params )
	{
	$limit = trim( $params->get( 'limit' ) );
	$prefix = trim( $params->get( 'prefix' ) );
		$query 	=	'SELECT
					r.raid_id, 
					r.location, 
					r.invite_time, 
					r.icon_name, 
					r.maximum					
				FROM
				`'.$prefix.'raid` AS `r`
				WHERE (r.`invite_time` >= \''.time().'\')
				ORDER BY
					 r.invite_time ASC
				LIMIT 0,'.$limit ;

		$db->setQuery($query, 0);
		$rows = $db->loadObjectList();
		return $rows;

Ausgabe vorbereiten
PHP:
foreach($rows as $row)
{
	$raid_id 		= $row->raid_id;
	$location 		= $row->location;
	$invite_time		= $row->invite_time;
	$icon_name		= $row->icon_name;
	$maximum		= $row->maximum;
	$signups = modNextraidHelper::getSignups($db, $params, $row->raid_id);


	/* building link url */
	$link = $pageurl."/index.php?option=com_view&id=".$raid_id;
	/* end of building link url */
	
	/* building time */
	$formatdate = trim( $params->get( 'formatdate' ) );
	$raid_time = date ($formatdate, $invite_time);
        /* end of building time */

Naja und dann Ausgabe:
PHP:
	echo "<div id='raid_id' style='font-weight: bold;text-align:left;'>";
	echo "<a class='forumitemlink' href=\"".$link."\">";
        echo "<img src=\"".$pageurl."/games/ESO/images/raids/".$icon_name."\" style=\"vertical-align: middle;\" /></a> ";
        echo "<a class=\"raid_item\"  href=\"".$link."\">";
        echo $raid_time." - ".$signups['s']."/".$maximum."</span></a>";
	echo "</div>";
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Schwer ist das sicherlich nicht, was du vorhast, wenn du ein bisschen PHP kannst, sollte das für dich auch kein Problem werden.

Liegt phpraider in der gleichen Datenbank wie Wordpress?

Anfangen würd' ich hiermit: Widgets API « WordPress Codex, da kannst du ja erstmal ein leeres eigenes Widget erstellen.
Das würde ich dann erstmal soweit bringen, dass es von Wordpress erkannt wird und dann kannst du deinen eigenen Code recht sauber darin unterbringen.
 
Bevor ich zum eigentlichen Problem komme, würde ich gern etwas abschweifen und eine kleine Geschichte erzählen:

Ein Unternehmer hat ein kleines Problem; seine Produktionsmaschine ist leider kaputt. Um sie zu reparieren meldet er sich beim Hersteller, der umgehend einen Techniker vorbei schickt um das Problem zu beheben. Der Techniker kommt an und sieht sich die Maschine ein paar Minuten an. Nach kurzer Zeit greift er zu seinem Werkzeug, wechselt eine einzige Schraube an der Maschine und sie läuft wieder - was den Unternehmer natürlich freut.
Ein paar Tage später kommt die Rechnung vom Techniker. Der Unternehmer ist schockiert über die Summe; stolze 500€ soll er für das Wechseln einer Schraube, einem simplen "5-Minuten-Job", zahlen. Nachdem er damit nicht einverstanden ruft er bei der Firma an und verlangt eine Erklärung, welche er schließlich bekommt:
1x Schraube - 1€
1x Wissen welche Schraube getauscht werden muss - 499€

Was ich damit sagen will:
Ich wollte auch schon nen Freelancer anheuern, allerdings ist mir die Umsetzung einer - wie mir scheint- doch sehr einfachen Aufgabe für 200€ einfach mal zu happig da ich glaube, dass eine Umsetzung ohne viel Brimborium wahrscheinlich für jemanden der schon mal etwas für WP geschrieben hat maximal 1-2 Std dauert.
Für die Umsetzung der Aufgabe setzt man sich nicht hin, schreibt das in 1-2 Stunden runter und das wars. Da kommt schon mehr zusammen: Vorbereitung (WP aufsetzen, ...), Implementierung (die unter WP recht hässlich werden kann), Testen und vorallem auch das Wissen wie das alles geht. Technisch gesehen macht ein Frisör nichts anderes als mit einer Schere ein paar Haare zu schneiden, was prinzipiell jeder 3 jährige kann. Praktisch gesehen würde man mich bis zu meiner Katze verklagen, wenn ich jemanden die Haare schneide und dafür 20€ verlange; das einzig lustige dabei wäre die Tatsache, dass ich von einem Typen verklagt werde, der Haare wie ein Uhu nachm Waldbrand hat, naja.
Ich persönliche halte 200€ für einen durchaus fairen und aktzeptablen Preis.

Zum Problem selbst:
Du musst dich nicht durch die ganze API kämpfen um ein Widget zu schreiben.

1. Erstell nen Ordner mit dem Plugin Namen und leg eine .php-Datei darin an mit gewünschtem Namen (also zB phpraider/phpraider.php)
2. Folgendes in den Kopf der Datei:
Code:
<?php
/*
Plugin Name: Pluginname
Description: Hello World
Author: John Doe
*/

Bewirkt dass WordPress deinen Code als Plugin erkennt und man das Ding aktivieren bzw. deaktivieren kann. Alles weitere in dieser Datei ist kompett dir überlassen.

3. Damit du ein Widget daraus basteln kannst, kannst dir mal mein Mini-Plugin ansehen: https://github.com/HirczyK/Random-QA/blob/master/rqa.php
Ein sehr einfaches Random QA-Plugin. Ab Zeile 85 dürfts für dich interessant werden; Widget registrieren, ne Klasse basteln die von WP_Widget erbt, die entsprechenden Methoden (widget -> wird beim Anzeigen aufgerufen, form -> wird im Admin aufgerufen, update -> wird beim Updaten aufgerufen) rein und fertig.

Jetzt nur noch die Snippets von dir und die drei Punkte von mir verbinden und voilà - du hast ein funktionstüchtiges Widget :)...
 
Grundsätzlich stimm ich Dir ja zu @nehalist. Was ich damit ausdrücken wollte ist, dass ich dafür keine 200€ ausgeben will. Im Zweifelsfall lass ich alles so wie es ist, ist nicht kriegsentscheidend.

Die DB vom phpraider ist separat aber auf dem selben Host. Ich hab das so lieber.
Das "Hello World" Plugin hab ich schon längst geschrieben und das phpraider plugin wird auch erstmal erkannt.
Reicht es aus, das mit einer php-Datei zu realisieren ?
Danke erstmal, ich werd mir das alles mal ansehen und mich ggf nochmal melden :d
 
Du kannst theoretisch ein ganzes CMS in eine Datei packen. Ob das aber klug ist, sei dahingestellt :)...
 
Du kannst theoretisch ein ganzes CMS in eine Datei packen. Ob das aber klug ist, sei dahingestellt :)...
Man könnte hier auch die Bibel zitieren, aber ob das klug ist, sei dahingestellt :bigok:

@xdave78: Eine Datei reicht völlig, würde nur wichtige Sachen in eigene Funktionen verpacken (der Übersichtlichkeit halber).
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh