remove config var

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

remove config var

Post by Timbalu »

Hi

Ich steckte gerade fest, in dem ich versuchte aus einem Plugin zur Verifikation eine alte und nicht mehr benutzte config variable zu löschen. Ich kenne nur die klassischen set_config() und get_config(), um Variablen zu setzen bzw zu holen. In der Entwicklung eines Plugins kann es aber durchaus vorkommen eine Variable umbenennen bzw löschen zu müssen.

Es existiert ja noch cleanup(), doch scheint diese gar nicht auf aktiv gesetzt und nur true zurückzuliefern und das eigentliche serendipity_plugin_api::remove_plugin_value($this->instance, array('title', 'description'));
funktioniert als angewendetes Beispiel im Plugin nur auf diese Weise:

Code: Select all

//wenn Bedingung
    $this->set_config('oldvar', '');  // remove_plugin_value removes empty vars only
    serendipity_plugin_api::remove_plugin_value($this->instance, array('oldvar', ''));
Könnten wir nicht so etwas wie eine unset_config() o.ä. einführen?

Grüße
Ian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: remove config var

Post by garvinhicking »

Hi!

Für sowas würde ich dann per phpMyAdmin in der sernedipity_config Tabelle einfach den Wert löschen. So etwas ist ja eigentlich wirklich meist nur während der Entwicklung relevant, und sollte im finalen Plugin dann garnicht erscheinen, da es ja dann unnötig variablen löschen würde die beim normalen user nie existierten...

In der Tat greift remove_plugin_value ja auf "value=''" zu, vermutlich gibt es da auch irgendeinen Grund für, um nicht gefüllte Werte aus versehen zu löschen.

Für so eine selten genutzte Funktion würde ich eigentlich ungerne die plugn api weiter aufblähen, letztlich sind es ja nur zwei zeilen mit denen man im plugin dasselbe emulieren kann...

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: remove config var

Post by Timbalu »

Ok danke. Bei mir kam das allerdings doch vor... und somit ist PhpMyAdmin keine Wahl.
...vermutlich gibt es da auch irgendeinen Grund für, um nicht gefüllte Werte aus versehen zu löschen.
Das verstehe ich gerad nicht. Wie meinst du das?

Ich würde dann aber vorschlagen das auskommentierte cleanup() Beispiel
serendipity_plugin_api::remove_plugin_value($this->instance, array('title', 'description'));
in sowas wie
serendipity_plugin_api::remove_plugin_value($this->instance, array('name1', 'name2', ...));
zu ändern, da remove_plugin_value das array als ['{instance}/{key}_%' AND value=''] zum Suchen und Löschen benutzt. Das 'description' verwirrt da nur und lockt einen auf falsche Schlüsse.

Komischerweise nutzte meine zu löschende config var gar keinen Unterstrich, wurde aber trotzdem gelöscht. Wie kann das sein?

Ian
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: remove config var

Post by garvinhicking »

Hi!

Okay, guter punkt! Habe ich im Code aktualisiert, danke!

Gelöscht wurde es wohl weil "_" ja auch ein SQL-Platzhalter für ein beliebiges Zeichen ist :)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply