Example #1
0
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 */
require_once "Libs/autoload.php";
$config = new Config();
$webPage = new PJSWebPage($config->getTitle() . ' - Edit Note');
$act = Tools::Param('act');
if ("Edit Note" === $act) {
    $noteModel = new NoteModel();
    $noteModel->populateFromForm();
    if (!$noteModel->validateForUpdate()) {
        $view = new NoteFormView('Edit Note', $noteModel);
        $body = "<h2>Invalid data</h2>\n" . $view->getForm();
    } else {
        $noteController = new NoteController();
        $newId = $noteController->update($noteModel);
        if ($newId > 0) {
            $body = "Edited note # " . $newId . "<br />\n";
        }
    }
} else {
    $noteController = new NoteController();
    $noteModel = $noteController->get(Tools::param('id'));
    $view = new NoteFormView('Edit Note', $noteModel);
    $body = $view->getForm();
}
Example #2
0
    /**
     * @param NoteModel $model
     * @see ControllerBase::update()
     */
    public function update($model)
    {
        if ($model->validateForUpdate()) {
            try {
                $query = <<<SQL
UPDATE note
   SET appliesToTable = ?
     , appliesToId = ?
     , noteText = ?
 WHERE id = ?
SQL;
                $id = $model->getId();
                $appliesToTable = $model->getAppliesToTable();
                $appliesToId = $model->getAppliesToId();
                $noteText = htmlspecialchars($model->getNoteText());
                $stmt = $this->_dbh->prepare($query);
                if (!$stmt) {
                    throw new ControllerException('Prepared statement failed for ' . $query);
                }
                if (!$stmt->bind_param('sisi', $appliesToTable, $appliesToId, $noteText, $id)) {
                    throw new ControllerException('Binding parameters for prepared statement failed.');
                }
                if (!$stmt->execute()) {
                    throw new ControllerException('Failed to execute UPDATE statement. (' . $this->_dbh->error . ')');
                }
                /**
                 * @SuppressWarnings checkAliases
                 */
                if (!$stmt->close()) {
                    throw new ControllerException('Something broke while trying to close the prepared statement.');
                }
                return $id;
            } catch (Exception $e) {
                throw new ControllerException($e->getMessage());
            }
        } else {
            throw new ControllerException("Invalid data.");
        }
    }