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
41
42
43
44
45
46
47
48
49
50
51
|
<?php /** * Bundle configuration saved as a WordPress site option. */ class Loco_config_CustomSaved extends Loco_data_Option { /** * @var Loco_package_Bundle */ private $bundle; /** * {@inheritdoc} */ public function getKey(){ return strtolower( $this->bundle->getType() ).'_config__'.$this->bundle->getHandle(); } /** * {@inheritdoc} */ public function persist(){ $writer = new Loco_config_BundleWriter( $this->bundle ); $this->exchangeArray( $writer->toArray() ); return parent::persist(); }
/** * @return Loco_config_CustomSaved */ public function setBundle( Loco_package_Bundle $bundle ){ $this->bundle = $bundle; return $this; }
/** * Modify currently set bundle according to saved config data * @return Loco_package_Bundle */ public function configure(){ $this->bundle->clear(); $reader = new Loco_config_BundleReader( $this->bundle ); $reader->loadArray( $this->getArrayCopy() ); return $this->bundle; }
}
|