(például a views_display táblában valamelyik display_options mezőt). Ilyenkor az a teendő, hogy valamilyen módon kiolvassuk a módosítandó adathalmazt az adatbázisból, "kicsomagoljuk", elvégezzük a szükséges módosításokat rajta, "becsomagoljuk", majd végül visszamásoljuk az eredeti helyére. Drupal esetében mindezt legkönnyebben egy modulból tehetjük meg. Az alábbi kódrészlet bár nem tökéletes, mégis jól szemléltei, hogyan lehet megbírkózni a feladattal.
BLOB típusú mező tartalmának kiolvasása az adatbázisból:
//Tábla adatainak kigyűjtése az adatbázisból
$result = db_query("select * from views_display");
while ($row = db_fetch_array($result))
{
//a megfelelő oszlop (display_options) elemeinek kicsomagolása
$arr = unserialize($row['display_options']);
Adat módosítás:
//A megfelelő érték módosítása a kapott tömbben
if (isset($arr['arguments']['tid']['default_argument_php']))
{
$arr['arguments']['tid']['default_argument_php'] = array();
Módosított adatok visszaírása az adatbázisba a megfeleő helyre BLOB formátumban:
$q = "UPDATE views_display SET display_options = '" . mysql_real_escape_string(serialize($arr)) . "' WHERE vid = 1 AND id = 'block_4'";
//Query lefuttatása
$a = db_query($q);
}
}
2 megjegyzés:
Szép, szép! Csak az a kár, hogy nem igen értem. Hol találok kicsit bővebb magyarázatot erre? :-)
Laci betyárnak: Mi már nyugodjunk bele, hogy tudatlanul hallunk meg. Azt hogy ezt értsed, újból kéne születni. Mondom én az 56 évemmel.
Megjegyzés küldése