// We have an existing module entry we're saving a change to. if ($edit_id) { BigTreeAutoModule::submitChange($bigtree["module"]["id"], $table, $edit_id, $item, $many_to_many, $tags); $admin->growl($bigtree["module"]["name"], "Saved " . $bigtree["form"]["title"] . " Draft"); // It's a new entry, so we create a pending item. } else { $edit_id = "p" . BigTreeAutoModule::createPendingItem($bigtree["module"]["id"], $table, $item, $many_to_many, $tags); $admin->growl($bigtree["module"]["name"], "Created " . $bigtree["form"]["title"] . " Draft"); } // We're a publisher and we want to publish } elseif ($bigtree["access_level"] == "p" && $data_action == "publish") { // If we have an edit_id we're modifying something that exists. if ($edit_id) { // If the edit id starts with a "p" it's a pending entry we're publishing. if (substr($edit_id, 0, 1) == "p") { $edit_id = BigTreeAutoModule::publishPendingItem($table, substr($edit_id, 1), $item, $many_to_many, $tags); $admin->growl($bigtree["module"]["name"], "Updated & Published " . $bigtree["form"]["title"]); $did_publish = true; // Otherwise we're updating something that is already published } else { BigTreeAutoModule::updateItem($table, $edit_id, $item, $many_to_many, $tags); $admin->growl($bigtree["module"]["name"], "Updated " . $bigtree["form"]["title"]); $did_publish = true; } // We're creating a new published entry. } else { $edit_id = BigTreeAutoModule::createItem($table, $item, $many_to_many, $tags); $admin->growl($bigtree["module"]["name"], "Created " . $bigtree["form"]["title"]); $did_publish = true; } }
$permission_level = $admin->getAccessLevel($admin->getModule($change["module"]), $data["item"], $change["table"]); } else { if ($change["item_id"]) { $permission_level = $admin->getPageAccessLevel($item_id); } else { $f = $admin->getPendingChange($change["id"]); $permission_level = $admin->getPageAccessLevel($f["changes"]["parent"]); } } // If they're not a publisher, they have no business here. if ($permission_level != "p") { die("Permission denied."); } $change["changes"] = BigTreeAutoModule::sanitizeData($change["table"], $change["changes"]); // This is an update to an existing entry. if (!is_null($change["item_id"])) { if ($change["table"] == "bigtree_pages") { $page_data = $cms->getPendingPage($change["item_id"]); $admin->updatePage($change["item_id"], $page_data); } else { BigTreeAutoModule::updateItem($change["table"], $change["item_id"], $change["changes"], $change["mtm_changes"], $change["tags_changes"]); } // It's a new entry, let's publish it. } else { if ($change["table"] == "bigtree_pages") { $page = $admin->createPage($change["changes"]); $admin->deletePendingChange($change["id"]); } else { BigTreeAutoModule::publishPendingItem($change["table"], $change["id"], $change["changes"], $change["mtm_changes"], $change["tags_changes"]); } }