function doBulkUpdate($filter, $do, $ids = array()) { @set_time_limit(600); // [TODO] Temp! $change_fields = array(); $deleted = false; $custom_fields = array(); if (empty($do)) { return; } // Make sure we have checked items if we want a checked list if (0 == strcasecmp($filter, "checks") && empty($ids)) { return; } if (is_array($do)) { foreach ($do as $k => $v) { switch ($k) { case 'deleted': $deleted = true; break; default: // Custom fields if (substr($k, 0, 3) == "cf_") { $custom_fields[substr($k, 3)] = $v; } break; } } } $pg = 0; if (empty($ids)) { do { list($objects, $null) = DAO_DevblocksTemplate::search(array(), $this->params, 100, $pg++, DAO_DevblocksTemplate::ID, true, false); $ids = array_merge($ids, array_keys($objects)); } while (!empty($objects)); } $batch_total = count($ids); for ($x = 0; $x <= $batch_total; $x += 100) { $batch_ids = array_slice($ids, $x, 100); if (!$deleted) { DAO_DevblocksTemplate::update($batch_ids, $change_fields); } else { DAO_DevblocksTemplate::delete($batch_ids); } // Custom Fields // self::_doBulkSetCustomFields(ChCustomFieldSource_Worker::ID, $custom_fields, $batch_ids); unset($batch_ids); } if ($deleted) { // Clear template cache $tpl = DevblocksPlatform::getTemplateService(); $tpl->clear_compiled_tpl(); } unset($ids); }
function saveTemplatePeekAction() { @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string', '')); @($id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer', 0)); @($content = DevblocksPlatform::importGPC($_REQUEST['content'], 'string', '')); @($do_delete = DevblocksPlatform::importGPC($_REQUEST['do_delete'], 'integer', 0)); if (!empty($do_delete)) { DAO_DevblocksTemplate::delete($id); } else { DAO_DevblocksTemplate::update($id, array(DAO_DevblocksTemplate::CONTENT => $content, DAO_DevblocksTemplate::LAST_UPDATED => time())); } // Clear template cache $tpl = DevblocksPlatform::getTemplateService(); $tpl->clear_compiled_tpl(); if (null != ($view = C4_AbstractViewLoader::getView($view_id))) { $view->render(); } }