virtual-talk.de
HOWTO WordPress Admin Plugin Deutsch - Druckversion

+- virtual-talk.de (http://virtual-talk.de)
+-- Forum: Programmierung (http://virtual-talk.de/forumdisplay.php?fid=15)
+--- Forum: Programmierung (http://virtual-talk.de/forumdisplay.php?fid=2)
+--- Thema: HOWTO WordPress Admin Plugin Deutsch (/showthread.php?tid=1514)



HOWTO WordPress Admin Plugin Deutsch - Manni - 20.07.2019

Ein Beispiel WordPress Admin Plugin
Diese Plugin Art kann nur intern von Menschen mit Zugang zum Dashboard gesehen werden.
Dies eignet sich hervorragend um den OpenSimulator zu manipulieren oder einzustellen.

Bestandteil eines Plugin mit minimal Funktionen sind:
  • Das Verzeichnis mit dem Plugin Namen.
  • Die grundlegende Datei OSWP_Example_Dashboard_Widget.php ist sozusagen das Fundament des ganzen Plugin.
  • Die Datei widget-config.php ist der Bereich zum konfigurieren des Plugin.
  • Die Datei widget.php ist der eigentliche funktionelle Bereich des Plugin, hier wird alles abgearbeitet was das Plugin machen soll.
Bitte benutzt einen Editor wie Notepad++ es sei denn ihr nutzt den Download am ende des Artikels.
WordPress hat einen eingebauten Editor für den Quellcode der gar nicht schlecht ist, hier werden euch auch Fehler angezeigt.


Als erstes erstellen wir im Verzeichnis /var/www/html/wp-content/plugins/ ein Verzeichnis namens oswp-example


Zweitens erstellen wir uns eine Textdatei mit dem Namen OSWP_Example_Dashboard_Widget.php und fügen den nachfolgenden Quellcode hinein.


Code:
<?php
/*
Plugin Name: oswp example Dashboard Widget
Plugin URI: http://codex.wordpress.com/oswp_example_Dashboard_Widget
Description: Veranschaulicht das Hinzufügen eines einfachen Dashboard-Widgets
Version: 1.0
Author: My Name
Author URI: http://codex.wordpress.com/
License: GPLv2 or later
*/
add_action('wp_dashboard_setup', array('My_Dashboard_Widget','init') );

class My_Dashboard_Widget {

   /**
    * Die ID dieses Widgets.
    */
   const wid = 'oswp_widget_oswp_example';

   /**
    * Hake an wp_dashboard_setup an, um dieses Widget hinzuzufügen.
    */
   public static function init() {
       // Widget-Einstellungen registrieren ...
       self::update_dashboard_widget_options(
           self::wid,                                  // Die Widget-ID
           array(                                      // Array von Optionen und Standardwerten
               'oswp_example_number' => 42,
           ),
           true                                                // Nur hinzufügen (vorhandene Optionen werden nicht aktualisiert)
       );

       //Register the widget...
       wp_add_dashboard_widget(
           self::wid,                                              // Eine eindeutige slug/ID
           __( 'oswp example Dashboard Widget', 'nouveau' ),    // Sichtbarer Name für das Widget
           array('My_Dashboard_Widget','widget'),              // Rückruf für den Hauptinhalt des Widgets
           array('My_Dashboard_Widget','config')               // Optionaler Rückruf für Widget-Konfigurationsinhalte
       );
   }

   /**
    * Lade den Widget-Code
    */
   public static function widget() {
       require_once( 'widget.php' );
   }

   /**
    * Lade den Widget-Konfigurationscode.
    *
    * Dies wird angezeigt, wenn ein Administrator drauf klickt
    */
   public static function config() {
       require_once( 'widget-config.php' );
   }

   /**
    * Ruft die Optionen für ein Widget mit dem angegebenen Namen ab.
    *
     * @param string $ widget_id Optional.  Wenn angegeben, werden nur Optionen für das angegebene Widget abgerufen.
    * @return array Ein assoziatives Array, das die Optionen und Werte des Widgets enthält.  Falsch, wenn nicht anders angegeben.
     */
   public static function get_dashboard_widget_options( $widget_id='' )
   {
       // ALLE Dashboard Widget Optionen aus der Datenbank abrufen ...
       $opts = get_option( 'dashboard_widget_options' );

       // Wenn kein Widget angegeben ist, wird alles zurückgegeben
       if ( empty( $widget_id ) )
           return $opts;

       // Wenn wir ein Widget anfordern und es existiert, geben Sie es zurück
       if ( isset( $opts[$widget_id] ) )
           return $opts[$widget_id];

       // Etwas ist schief gelaufen...
       return false;
   }

      /**
     * Ruft eine bestimmte Option für das angegebene Widget ab.
     * @param $widget_id
     * @param $Option
     * @param null $default
     *
     * @return string
     */
   public static function get_dashboard_widget_option( $widget_id, $option, $default=NULL ) {

       $opts = self::get_dashboard_widget_options($widget_id);

       // Wenn Widget Optionen nicht vorhanden sind, wird false zurückgegeben
       if ( ! $opts )
           return false;

       // Ansonsten die Option holen oder default verwenden
       if ( isset( $opts[$option] ) && ! empty($opts[$option]) )
           return $opts[$option];
       else
           return ( isset($default) ) ? $default : false;

   }

    /**
     * Speichert eine Reihe von Optionen für ein einzelnes Dashboard-Widget in der Datenbank.
     * Kann auch verwendet werden, um Standardwerte für ein Widget zu definieren.
     *
     * @param string $ widget_id Der Name des zu aktualisierenden Widgets
     * @param array $ args Ein assoziatives Array von Optionen, die gespeichert werden.
     * @param bool $ add_only Wenn true, werden Optionen nicht hinzugefügt, wenn bereits Widget-Optionen vorhanden sind.
     */
   public static function update_dashboard_widget_options( $widget_id , $args=array(), $add_only=false )
   {
       // ALLE Dashboard Widget Optionen aus der Datenbank abrufen ...
       $opts = get_option( 'dashboard_widget_options' );

       // Holen Sie sich nur die Optionen unseres Widgets oder setzen Sie ein leeres Array.
       $w_opts = ( isset( $opts[$widget_id] ) ) ? $opts[$widget_id] : array();

       if ( $add_only ) {
           // Verfeinere fehlende Optionen (bestehende überschreiben neue).
           $opts[$widget_id] = array_merge($args,$w_opts);
       }
       else {
           // Neue Optionen mit vorhandenen zusammenführen und wieder zum Widgets-Array hinzufügen.
           $opts[$widget_id] = array_merge($w_opts,$args);
       }

       // Speichere das gesamte Widgets-Array zurück in die Datenbank
       return update_option('dashboard_widget_options', $opts);
   }

}



Drittens erstellen wir uns eine Textdatei mit dem Namen widget-config.php und fügen den nachfolgenden Quellcode hinein.


Code:
<?php
/**
 * Mit dieser Datei können übermittelte Formulardaten abgefangen werden.  Bei Verwendung einer Nichtkonfiguration
 * Um Formulardaten zu speichern, denken Sie daran, ein Identifikationsfeld in Ihrem Formular zu verwenden.
 */
if (!empty($_POST)) {  
   $number = ( isset( $_POST['number'] ) ) ? stripslashes( $_POST['number'] ) : '';
   self::update_dashboard_widget_options(
           self::wid,                                  //The  widget id
           array(                                      //Associative array of options & default values
               'oswp_example_number' => $number,
           )
   );
}

?>
<p>Dies ist ein oswp Beispiel Dashboard Widget!</p>
<p>Dies ist der Konfigurationsteil des Widgets und kann hier gefunden und bearbeitet werden <tt><?php echo __FILE__ ?></tt></p>
<input type="text" name="number" value="<?php echo self::get_dashboard_widget_option(self::wid, 'oswp_example_number'); ?>" /><br />



Viertens erstellen wir uns eine Textdatei mit dem Namen widget.php und fügen den nachfolgenden Quellcode hinein.


Code:
<?php
/**
 * Mit dieser Datei können übermittelte Formulardaten abgefangen werden.  Bei Verwendung einer Nichtkonfiguration
 * Um Formulardaten zu speichern, denken Sie daran, ein Identifikationsfeld in Ihrem Formular zu verwenden.
 */
?>
<p>Dies ist ein oswp Beispiel Dashboard Widget!</p>
<p>Dies ist der Hauptteil des Widgets, der hier gefunden und bearbeitet werden kann <tt><?php echo __FILE__ ?></tt></p>
<p>Widgets können ebenfalls konfiguriert werden. Derzeit ist dies eingestellt auf <b><?php echo self::get_dashboard_widget_option(self::wid, 'oswp_example_number'); ?></b> ! Um die Nummer zu ändern, bewegen Sie den Mauszeiger über den Widget Titel und klicken Sie auf den "Configure" Link.</p>



So das hätten wir, ein lauffähiges Mini Plugin mit dem man basteln kann bis der Arzt kommt.


Download:
https://github.com/BigManzai/oswp-example


RE: HOWTO WordPress Admin Plugin Deutsch - Manni - 22.07.2019

So kann das dann aussehen wenn man den Sourcecode zum Beispiel des oswp delete avatar code einfügt.

Download:  https://github.com/BigManzai/oswp-deleteavatarwidget

[attachment=9483]


RE: HOWTO WordPress Admin Plugin Deutsch - Manni - 23.07.2019

Fehler zu finden ist gar nicht so einfach, wenn man keine Hilfe hat.
Ich musste durch das Plugin "Error Log Monitor" feststellen, das meine Plugins einen Haufen Fehler haben.
Ich kann nur empfehlen, euch den Error Log Monitor oder ähnliche Plugins aus dem WordPress-Plugin Bereich zu installieren.


RE: HOWTO WordPress Admin Plugin Deutsch - Manni - 28.07.2019

HOWTO WordPress Admin Plugin Deutsch
Viele Funktionen zum herumschnüffeln und experimentieren.
Es gibt kaum etwas was man hiermit nicht in OpenSim anstellen kann.
Nach dem installieren des Plugin, einfach auf konfigurieren drücken und ihr habt eine Übersicht über die Funktionen.
Es sind 88 Funktionen geschrieben in PHP.

[attachment=9516]

https://github.com/BigManzai/oswp-function-example


Dies ist ein test um die Möglichkeiten, den OpenSimulator, über WordPress, zu Manipulieren und zu testen.
This is a test of the possibilities to manipulate and test OpenSimulator, via WordPress.
C'est un test des possibilités de manipuler et de tester OpenSimulator, via WordPress.
Esta es una prueba de las posibilidades para manipular y probar OpenSimulator, a través de WordPress.
これはWordPress経由でOpenSimulatorを操作しテストする可能性のテストです。
Это проверка возможностей для манипулирования и тестирования OpenSimulator через WordPress.


for DB
 function  opensim_new_db($timeout=60)
 
 function  opensim_check_db(&$db=null)
 
 function  opensim_avatars_update_time(&$db=null)
 
 function  opensim_is_standalone(&$db=null)

for Avatar
 function  opensim_get_avatars_num($condition='', &$db=null)
 
 function  opensim_get_avatar_name($uuid, &$db=null)
 
 function  opensim_get_avatar_uuid($name, &$db=null)
 
 function  opensim_get_avatar_session($uuid, &$db=null)
 
 function  opensim_get_avatar_info($uuid, &$db=null)
 
 function  opensim_get_avatars_infos($condition='', $order='', $limit='', &$db=null)
 
 function  opensim_get_hg_avatars_infos($condition='', $order='', $limit='', &$db=null)
 
 function  opensim_get_avatar_online($uuid, &$db=null)
 
 function  opensim_get_avatars_online($condition='', $order='', $limit='', $hg_avatar=true, &$db=null)
 
 function  opensim_get_avatars_online_num($hg_vatar=true, &$db=null)
 
 function  opensim_get_avatar_flags($uuid, &$db=null)
 
 function  opensim_set_avatar_flags($uuid, $flags=0, &$db=null)
 
 function  opensim_set_avatar_offline($uuid, &$db=null)
 
 function  opensim_create_avatar($UUID, $firstname, $lastname, $passwd, $homeregion, $base_avatar=UUID_ZERO, &$db=null)
 
 function  opensim_delete_avatar($uuid, &$db=null)

for Region
 function  opensim_get_regions_num($hg=false, &$db=null)
 
 function  opensim_get_region_uuid($name, &$db=null)
 
 function  opensim_get_regions_uuid($hg=false, &$db=null)
 
 function  opensim_get_region_name($id, &$db=null)
 
 function  opensim_get_regions_names($hg=false, $condition='', $order='', $limit='', &$db=null)
 
 function  opensim_get_region_info($region, &$db=null)
 
 function  opensim_get_regions_infos($hg=false, $condition='', $order='', $limit='', &$db=null)
 
 function  opensim_set_current_region($uuid, $regionid, &$db=null)
 
 function  opensim_delete_region($uuid, &$db=null)

for Home Region
 function  opensim_get_home_region($uuid, &$db=null)
 
 function  opensim_set_home_region($uuid, $hmregion, $pos_x='128', $pos_y='128', $pos_z='0', &$db=null)

for Estate
 function  opensim_set_region_estate($region, $estate, $owner, &$db=null)
 
 function  opensim_create_estate($estate, $owner, &$db=null)
 
 function  opensim_get_estates_infos(&$db=null)
 
 function  opensim_get_estate_info($region, &$db=null)
 
 function  opensim_set_region_estateid($region, $estateid, &$db=null)
 
 function  opensim_set_estate_owner($region, $owner, &$db=null)
 
 function  opensim_del_estate($id, &$db=null)
 
 function  opensim_update_estate($id, $name, $owner, &$db=null)

 for Parcel
 function  opensim_get_parcel_name($parcel, &$db=null)
 
 function  opensim_get_parcel_info($parcel, &$db=null)

for Assets
 function  opensim_get_asset_data($uuid, &$db=null)
 
 function  opensim_display_texture_data($uuid, $prog, $xsize='0', $ysize='0', $cachedir='', $use_tga=false)
 
 function  opensim_get_object_name($uuid, &$db=null)

for Inventory
 function  opensim_create_avatar_inventory($uuid, $base_uuid, $db=null)
 
 function  opensim_create_default_avatar_wear($uuid, $invent, $db=null)
 
 function  opensim_create_default_inventory_items($uuid, $db=null)
 
 function  opensim_create_default_inventory_folders($uuid, &$db=null)
 
 function  opensim_create_avatar_wear_dup($touuid, $fromid, $invent, &$db=null)
 
 function  opensim_create_inventory_items_dup($touuid, $fromid, $folder, $db=null)
 
 function  opensim_create_inventory_folders_dup($touuid, $fromid, $db=null)

for Password
 function  opensim_get_password($uuid, $tbl='', &$db=null)
 
 function  opensim_set_password($uuid, $passwdhash, $passwdsalt='', $tbl='', &$db=null)

for Voice (VoIP)
 function  opensim_get_voice_mode($region, &$db=null)
 
 function  opensim_set_voice_mode($region, $mode, &$db=null)

for Currency
 function  opensim_get_transaction_type($type)
 
 function  opensim_set_currency_transaction($srcId, $dstId, $amount, $type, $status, $desc, &$db=null)
 
 function  opensim_set_currency_balance($uuid, $amount, &$db=null)
 
 function  opensim_get_currency_balance($uuid, &$db=null)
 
 function  opensim_del_currency_expired(&$db=null)
 
 function  opensim_get_currency_transactions($condition='', $order='', $limit='', &$db=null)
 
 function  opensim_get_currency_amounts_log($uuid, $condition='', $order='', $limit='', &$db=null)
 
 function  opensim_get_currency_amounts_num($uuid, $condition='', &$db=null)
 
 function  opensim_set_userinfo($user, $simip, $avatar, $pass, &$db=null)
 
 function  opensim_get_userinfo($uuid, &$db=null)
 
 function  opensim_get_userinfos($condition='', $order='', $limit='', &$db=null)
 
 function  opensim_get_totalsales($condition='', $order='', $limit='', &$db=null)
 
 function  opensim_regenerate_totalsales($time, &$db=null)

Tools
 function  opensim_get_servers_ip(&$db=null)
 
 function  opensim_get_servers_name(&$db=null)
 
 function  opensim_get_server_info($uuid, &$db=null)
 
 function  opensim_is_access_from_region_server()
 
 function  opensim_check_secure_session($uuid, $regionid, $secure, &$db=null)
 
 function  opensim_check_region_secret($uuid, $secret, &$db=null)

Management of System
 function  opensim_cleanup_db(&$db=null)
 
 function  opensim_clear_login_table(&$db=null)
 
 function  opensim_del_terrainImage($uuid, &$db=null)
 
 function  opensim_del_terrainImages(&$db=null)
 
 function  opensim_debug_command(&$db=null)

Function List

 function  isNumeric($str, $nullok=false)
 
 function  isAlphabetNumeric($str, $nullok=false)
 
 function  isAlphabetNumericSpecial($str, $nullok=false)
 
 function  isGUID($uuid, $nullok=false)
 
 function  split_key_value($str)
 
 function  make_random_hash()
 
 function  make_random_guid()
 
 function  j2k_to_tga($file, $iscopy=true)
 
 function  get_j2k_to_tga_command()  
 
need j2k_to_image (OpenJpeg)

 function  get_image_size_convert_command($xsize, $ysize)
 
 function  find_command_path($command)