'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 .= ''; $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 .= '
'; // Get the JSON DB, getValue() with the option unsanitized HTML code $jsondb = $this->getValue('jsondb', $unsanitized = false); $links = json_decode($jsondb, true); $html .= !empty($links) ? '

' . $L->get('Links') . '

' : ''; foreach ($links as $name => $url) { $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; } }