Title: Overwrite extending class?
Last modified: August 31, 2016

---

# Overwrite extending class?

 *  Resolved [odie2](https://wordpress.org/support/users/odie2/)
 * (@odie2)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/overwrite-extending-class/)
 * Hi,
 * Nice framework. It took me a while to found latest manual and combine sortable-
   checkbox fields, but I did it and it works sweety 😉
 * I have option called `KuzniczyskosNetwork` where I store bar’s settings with 
   sortable-checkbox sites from networks (plugin [WP Multi Network](https://wordpress.org/plugins/wp-multi-network/)).
   To be sure that my redactor didn’t broke the system when he will be “messing”
   there, I edited file `factory\network_admin_page\_model\AdminPageFramework_Property_NetworkAdmin.
   php` to save option globally.
 * Code:
 *     ```
       <?php
       /**
        Admin Page Framework v3.7.7 by Michael Uno
        Generated by PHP Class Files Script Generator <https://github.com/michaeluno/PHP-Class-Files-Script-Generator>
        <http://en.michaeluno.jp/twentyfifteen>
        Copyright (c) 2013-2015, Michael Uno; Licensed under MIT <http://opensource.org/licenses/MIT>
        */
       class Kuzniczyskos_AdminPageFramework_Property_NetworkAdmin extends Kuzniczyskos_AdminPageFramework_Property_Page {
       	public $_sPropertyType = 'network_admin_page';
       	public $sStructureType = 'network_admin_page';
       	protected function _getOptions() {
       		$current_network = get_current_site()->id;
       		$main_network = get_main_network_id();
   
       		if ( $current_network != $main_network )
       			switch_to_network( $main_network );
   
       		$options = $this->addAndApplyFilter($this->getElement($GLOBALS, array('aKuzniczyskos_AdminPageFramework', 'aPageClasses', $this->sClassName)), 'options_' . $this->sClassName, $this->sOptionKey ? get_site_option($this->sOptionKey, array()) : array());
   
       		if ( $current_network != $main_network )
       			switch_to_network( $current_network );
   
       		return $options;
       	}
       	public function updateOption($aOptions = null) {
       		if ($this->_bDisableSavingOptions) {
       			return;
       		}
       		$current_network = get_current_site()->id;
       		$main_network = get_main_network_id();
   
       		if ( $current_network != $main_network )
       			switch_to_network( $main_network );
   
       		$update = update_site_option($this->sOptionKey, $aOptions !== null ? $aOptions : $this->aOptions);
   
       		if ( $current_network != $main_network )
       			switch_to_network( $current_network );
   
       		return $update;
       	}
       }
       ```
   
 * Problem is that when I would update or modify library (like yesterday I added
   MetaBox) then I will have to edit the file again.
 * I don’t know too much on OOP, but as I asked a friend, he doesn’t see any programming
   way to replace the code or he is wrong? Or maybe I can change file’s location
   somewhere, so it will be always valid?
 * Greetings
 * [https://wordpress.org/plugins/admin-page-framework/](https://wordpress.org/plugins/admin-page-framework/)

Viewing 2 replies - 1 through 2 (of 2 total)

 *  Plugin Author [miunosoft](https://wordpress.org/support/users/miunosoft/)
 * (@miunosoft)
 * [10 years, 4 months ago](https://wordpress.org/support/topic/overwrite-extending-class/#post-6997675)
 * I see. With the version 3.7.7, it is hard to modify sub classes.
 * If you are comfortable with updating the framework, try this development version(
   [https://github.com/michaeluno/admin-page-framework/archive/dev.zip](https://github.com/michaeluno/admin-page-framework/archive/dev.zip)).
   Please note that the name of the property class for the network factory has changed
   from `AdminPageFramework_Property_NetworkAdmin` to `AdminPageFramework_Property_network_admin_page`.
 * Then you can set your custom class for sub-class objects with the `$aSubClassNames`
   property.
 * (requires 3.7.12b03 or above)
    Network admin class:
 *     ```
       class YourNetworkAdminClass extends AdminPageFramework_NetworkAdmin {
   
           public $aSubClassNames = array(
               'oProp' => 'YourPropertyClassName',
           );
   
           public function setUp() {
               // do your stuff
           }
       ```
   
 * Define your custom property class:
 *     ```
       class YourPropertyClassName extends AdminPageFramework_Property_network_admin_page {
   
       	protected function _getOptions() {
       		$current_network = get_current_site()->id;
       		$main_network = get_main_network_id();
   
       		if ( $current_network != $main_network )
       			switch_to_network( $main_network );
   
       		$options = $this->addAndApplyFilter($this->getElement($GLOBALS, array('aKuzniczyskos_AdminPageFramework', 'aPageClasses', $this->sClassName)), 'options_' . $this->sClassName, $this->sOptionKey ? get_site_option($this->sOptionKey, array()) : array());
   
       		if ( $current_network != $main_network )
       			switch_to_network( $current_network );
   
       		return $options;
       	}
       	public function updateOption($aOptions = null) {
       		if ($this->_bDisableSavingOptions) {
       			return;
       		}
       		$current_network = get_current_site()->id;
       		$main_network = get_main_network_id();
   
       		if ( $current_network != $main_network )
       			switch_to_network( $main_network );
   
       		$update = update_site_option($this->sOptionKey, $aOptions !== null ? $aOptions : $this->aOptions);
   
       		if ( $current_network != $main_network )
       			switch_to_network( $current_network );
   
       		return $update;
       	}
       }
       ```
   
 * Hope this helps.
 *  Plugin Author [miunosoft](https://wordpress.org/support/users/miunosoft/)
 * (@miunosoft)
 * [9 years, 8 months ago](https://wordpress.org/support/topic/overwrite-extending-class/#post-8226771)
 * Closing the topic due to inactivity.

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Overwrite extending class?’ is closed to new replies.

 * ![](https://ps.w.org/admin-page-framework/assets/icon-256x256.png?rev=998199)
 * [Admin Page Framework](https://wordpress.org/plugins/admin-page-framework/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/admin-page-framework/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/admin-page-framework/)
 * [Active Topics](https://wordpress.org/support/plugin/admin-page-framework/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/admin-page-framework/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/admin-page-framework/reviews/)

## Tags

 * [class](https://wordpress.org/support/topic-tag/class/)
 * [method](https://wordpress.org/support/topic-tag/method/)
 * [multisite](https://wordpress.org/support/topic-tag/multisite/)
 * [network](https://wordpress.org/support/topic-tag/network/)
 * [object](https://wordpress.org/support/topic-tag/object/)
 * [oop](https://wordpress.org/support/topic-tag/oop/)

 * 2 replies
 * 2 participants
 * Last reply from: [miunosoft](https://wordpress.org/support/users/miunosoft/)
 * Last activity: [9 years, 8 months ago](https://wordpress.org/support/topic/overwrite-extending-class/#post-8226771)
 * Status: resolved