} } foreach ($fields as $key => $field) { if (!$old_view["fields"][$key]) { $keys_match = false; } } // Check actions if (count($old_view["actions"]) != count($actions)) { $keys_match = false; } // Check preview field if (!$old_view["preview_url"] && $preview_url || $old_view["preview_url"] && !$preview_url) { $keys_match = false; } if (!$keys_match || $old_view["type"] == "searchable" && $type != "searchable" || $type == "searchable" && $old_view["type"] != "searchable") { foreach ($fields as $key => $field) { unset($fields[$key]["width"]); } } // Let's update the view and clear its cache $admin->updateModuleView(end($bigtree["path"]), $title, $description, $table, $type, $options, $fields, $actions, $related_form, $preview_url); BigTreeAutoModule::clearCache(end($bigtree["path"])); $action = $admin->getModuleActionForView(end($bigtree["path"])); $admin->growl("Developer", "Updated View"); if ($_POST["return_page"]) { BigTree::redirect($_POST["return_page"]); } else { BigTree::redirect(DEVELOPER_ROOT . "modules/edit/" . $action["module"] . "/"); } }
function updateModule($id, $name, $group, $class, $permissions, $icon) { // If this has a permissions table, wipe that table's view cache if ($permissions["table"]) { BigTreeAutoModule::clearCache($permissions["table"]); } $id = sqlescape($id); $name = sqlescape(BigTree::safeEncode($name)); $group = $group ? "'" . sqlescape($group) . "'" : "NULL"; $class = sqlescape($class); $permissions = BigTree::json($permissions, true); $icon = sqlescape($icon); sqlquery("UPDATE bigtree_modules SET name = '{$name}', `group` = {$group}, class = '{$class}', icon = '{$icon}', `gbp` = '{$permissions}' WHERE id = '{$id}'"); $this->track("bigtree_modules", $id, "updated"); // Remove cached class list. unlink(SERVER_ROOT . "cache/bigtree-module-class-list.json"); }
<?php // Grab View Data $view = BigTreeAutoModule::getView($_POST["view"]); $module = $admin->getModule(BigTreeAutoModule::getModuleForView($view)); $access_level = $admin->getAccessLevel($module); $table = $view["table"]; if ($access_level == "p") { parse_str($_POST["sort"]); foreach ($row as $position => $id) { if (is_numeric($id)) { sqlquery("UPDATE `{$table}` SET position = '" . (count($row) - $position) . "' WHERE id = '" . sqlescape($id) . "'"); BigTreeAutoModule::recacheItem($id, $table); } else { BigTreeAutoModule::updatePendingItemField(substr($id, 1), "position", count($row) - $position); BigTreeAutoModule::recacheItem(substr($id, 1), $table, true); } } } // Find any view that uses this table for grouping and wipe its view cache $dependant = BigTreeAutoModule::getDependantViews($table); foreach ($dependant as $v) { BigTreeAutoModule::clearCache($v["table"]); }