'https://www.bludit.com', 'Bludit PRO'=>'https://pro.bludit.com' )); // Fields and default values for the database of this plugin $this->dbFields = array( 'label'=>'Links', 'jsondb'=>$jsondb ); // Disable default Save and Cancel button $this->formButtons = false; } // Method called when a POST request is sent public function post() { // Get current jsondb value from database // All data stored in the database is html encoded $jsondb = $this->db['jsondb']; $jsondb = Sanitize::htmlDecode($jsondb); // Convert JSON to Array $links = json_decode($jsondb, true); // Check if the user click on the button delete or add if( isset($_POST['deleteLink']) ) { // Values from $_POST $name = $_POST['deleteLink']; // Delete the link from the array unset($links[$name]); } elseif( isset($_POST['addLink']) ) { // Values from $_POST $name = $_POST['linkName']; $url = $_POST['linkURL']; // Check empty string if( empty($name) ) { return false; } // Add the link $links[$name] = $url; } // Encode html to store the values on the database $this->db['label'] = Sanitize::html($_POST['label']); $this->db['jsondb'] = Sanitize::html(json_encode($links)); // Save the database return $this->save(); } // Method called on plugin settings on the admin area public function form() { global $L; $html = '
'; $html .= ''; $html .= ''; $html .= ''.$L->get('This title is almost always used in the sidebar of the site').''; $html .= '
'; $html .= '
'; $html .= ''; $html .= '
'; // New link, when the user click on save button this call the method post() // and the new link is added to the database $html .= ''.$L->get('Add a new link').''; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= ''.$L->get('Links').''; // Get the JSON DB, getValue() with the option unsanitized HTML code $jsondb = $this->getValue('jsondb', $unsanitized=false); $links = json_decode($jsondb, true); foreach($links as $name=>$url) { $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= ''; $html .= '
'; $html .= '
'; $html .= ''; $html .= '
'; $html .= '
'; } return $html; } // Method called on the sidebar of the website public function siteSidebar() { global $L; // HTML for sidebar $html = '
'; if ($this->getValue('label')) { $html .= '

'.$this->getValue('label').'

'; } $html .= '
'; $html .= ''; $html .= '
'; $html .= '
'; return $html; } }