Jump to content

Force default, edit or delete state

state force edit

  • Please log in to reply
4 replies to this topic

#1 fredconv



  • Members
  • PipPip
  • 17 posts

Posted 18 September 2012 - 09:35 AM


Is it possible to force a grocery render in edit mode by default ?
Currently I m using GC for displaying a SQL VIEW. but since i can edit a SQL view, i want to still have a link in one of the field of the grid to be able to edit one of the table my view is using

for example: i have 3 tables (projects, sub_projects, users) linked together with joins. (1 to n link, projects to sub_projects and sub_projects to users) but since i want some added or calculated fields that are calculated in the database etc...i use a view to display all on big grid with the informations i want.

How can i add an EDIT link on the project name field that would be the same as if i click on a EDIT link from the projects table that i would have rendered if i was not displaying the VIEW grid ?

i was going to try creating a new grocery_crud object refering to the table projects and open it in the edit mode.

and when i push the update or the back to list , the page owould come back to the VIEW grid instead of the Projects grid..

i know it s possible, instead of a view display to use a big table with join rules and set relations, but i was wondering if it s possible to do it that way.

Hope i m clear enough


#2 midnigther


    Advanced Member

  • Members
  • PipPipPip
  • 44 posts
  • LocationPortugal

Posted 18 September 2012 - 06:55 PM

"Genius is 1% inspiration and 99% perspiration." - Thomas Edison

#3 fredconv



  • Members
  • PipPip
  • 17 posts

Posted 19 September 2012 - 07:49 AM


Thanks for this help

But i did know how to add a link on a specific column :)
let s say, in my projects controller, i have a projects_view method with grocery object pointing to projects_view view. with a project code. when i click edit on a row edit link, it calls a function , with a grocery object refering to projects_table. I want to reach the edit page just as if i ve click on a edit link in a grocery object refering to the projects_tables.

here's my code:

function get_list_from_projects_view(){

        $crud = new grocery_CRUD();
        $crud->unset_operations(); // it s a view


        $output = $crud->render();


and the function:

function callback_projectedit_link($value, $row){

        return ('<a href="'.base_url("index.php/projects/index/edit/".$row->project_code).'">'.$value.'</a>');

but i want the edit link to act as if i clicked on an edit link from this grid (in the same controller) where i would have passed the project code (so force the edit state from this object
function get_list_from_projects_table($code){
$crud = new grocery_CRUD();
$output = $crud->render();

any idea ?


#4 fredconv



  • Members
  • PipPip
  • 17 posts

Posted 25 September 2012 - 12:57 PM


this will i htink also help Chris on his topic

Displaying a crud view of a view_project_table that is referring to a project_table and concatenate with subproject_table
but when i clicked add -> using the create form from the crud ojbject referring to the project_table only ... so only call the edit / delete / create form of the crud object, not the grid list.


#5 Amit Shah

Amit Shah

    grocery CRUD Master

  • Advanced Member
  • PipPipPip
  • 1,192 posts
  • LocationMumbai, India

Posted 16 May 2013 - 08:18 PM

Well there is another scenario you can have


I found it interesting and i thought of sharing with you guys. May be this can help you too.


There was a requirement where i was interested to use grocery crud edit function for updating a users profile. It seemed trickey but then it was easy with redirections

            $crud = new grocery_CRUD();
//the above ensures the the user is not permitted to do anything but edit
//The above ensures the user is left on the same page after edit / update and have no other actions.
//Here was the trick. Identify if the operation was Unknown / List then redirect it the users 
//profile update page
            $state_code = $crud->getState();
            if($state_code == 'unknown' || $state_code == 'list') {
                redirect("users/my_profile/edit/" . $this->user_id);
//Now comes for security. Check if the primary key used for edit is not the same as of the user then
//show him error - do not allow the user to end up editing other users profile            
            $segment_object = $crud->getStateInfo();
            $primary_key = $segment_object->primary_key;
            if($primary_key != $this->user_id) {
                show_error("Sorry you are not authorized to access this page.");

Well hope this is a useful little trick that i managed to build. And you guys can take good advantage of the same.

Also tagged with one or more of these keywords: state, force, edit

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users