class Model_Admin extends Model { $form->add('first_name', 'First Name', array( 'type' => 'text', 'value' => ! empty($admin['first_name']) ? $admin['first_name'] : '', 'id' => 'first-name', 'size' => 50, ), array( array('required'), array('trim'), array('max_length', 50), ) ); // Other form fields and logic
class Validation extends \Fuel\Core\Validation { public function _validation_unique($val, $options) { list($table, $field) = explode('.', $options); $result = DB::select("LOWER (\"$field\")") ->where("$field", '=', MBSTRING ? mb_strtolower($val) : strtolower($val)) ->from($table)->execute(); if($result->count() > 0) return false; else return true; }Where and how do I add this callback using fieldset/model?
public function action_add_edit_example($example_id = null) { ... $form = Fieldset::factory('form_example')->add_model('Model_Mexamples', $example_id, 'set_form_fields_example'); ... }
class Model_Mexamples extends Model { public static function set_form_fields_example(Fieldset $form, $example_id = null) { if ($example_id != null) { $data = self::get_example_info($example_id); } ... $form->add('email', 'Email', array( 'type' => 'text', 'value' => ! empty($user['email']) ? $user['email'] : '', 'id' => 'email', 'size' => 50, ), array( array('required'), array('trim'), array('max_length', 255), array('valid_email'), array('unique', 'auth_users', 'email', 'user_id', $user_id), ) ); ... }
public function _validation_unique($form_value, $db_table, $unique_field, $id_field, $id) { $query = DB::select($unique_field) ->from($db_table) ->where("$unique_field", '=', MBSTRING ? mb_strtolower($form_value) : strtolower($form_value)) ->and_where($id_field, '!=', $id) ; $result = $query->execute(); if ($result->count() == 0) { return true; } else { $this->set_message('unique', 'That :label is already used. Please pick a different :label.'); return false; } }
Autoloader::add_classes(array( // Add classes you want to override here // Example: 'View' => APPPATH.'classes/view.php', 'Security' => APPPATH.'classes/security.php', 'Session' => APPPATH.'classes/session.php', 'Validation' => APPPATH.'classes/validation.php', 'Fieldset' => APPPATH.'classes/fieldset.php', ));
$form->add('username', 'User Name', array( 'type' => 'text', 'value' => ! empty($admin['username']) ? $admin['username'] : '', 'id' => 'phone', 'size' => 50, ), array( array('required'), array('trim'), array('max_length', 50), array('unique[simpleusers.username]'), ) );When I run the code, function notice() in error.php is called with msg:
class MySession extends Session { public static function print_flash() { $flash = Session::get_flash(); if (isset($flash['success'])) { return '<p class="success">' . Session::get_flash('success') . '</p>'; } else if (isset($flash['notice'])) { return '<p class="notice">' . Session::get_flash('notice') . '</p>'; } else if (isset($flash['error'])) { return '<p class="error">' . Session::get_flash('error') . '</p>'; } else { return null; } } }Calls to Session::print_flash() result in an error: Call to undefined method Fuel\core\Session::print_flash(). Please let me know if you see what I'm doing wrong. If your question was why am I extending the core classes at all, you can probably see from the example that I'm basically wrapping the Fuel functionality in a higher level wrapper. All suggestions for better ways to do things are always welcome.
Autoloader::add_classes(array( 'Session' => APPPATH.'classes/session.php', ));
class Session extends Fuel\Core\Session { }
Autoloader::add_classes(array( // Add classes you want to override here // Example: 'View' => APPPATH.'classes/view.php', 'Security' => APPPATH.'classes/security.php', 'Session' => APPPATH.'classes/session.php', 'Validation' => APPPATH.'classes/validation.php', 'Fieldset' => APPPATH.'classes/fieldset.php', ));
class Validation extends \Fuel\Core\Validation { public function _validation_unique($val, $options) { list($table, $field) = explode('.', $options); $result = DB::select("LOWER (\"$field\")") ->where("$field", '=', MBSTRING ? mb_strtolower($val) : strtolower($val)) ->from($table)->execute(); if($result->count() > 0) return false; else return true; }
public static function set_form_fields(Fieldset $form, $user_id = null) { .... $form->add('username', 'User Name', array( 'type' => 'text', 'value' => ! empty($admin['username']) ? $admin['username'] : '', 'id' => 'phone', 'size' => 50, ), array( array('required'), array('trim'), array('max_length', 50), array('unique[simpleusers.username]'), ) ); ....
It looks like you're new here. If you want to get involved, click one of these buttons!