original_string: protected static function build_paths($force) {
          global $DB;
  
          if ($force or $DB->record_exists_select('context', "contextlevel = ".CONTEXT_COURSECAT." AND (depth = 0 OR path IS NULL)")) {
              if ($force) {
                  $ctxemptyclause = $emptyclause = '';
              } else {
                  $ctxemptyclause = "AND (ctx.path IS NULL OR ctx.depth = 0)";
                  $emptyclause    = "AND ({context}.path IS NULL OR {context}.depth = 0)";
              }
  
              $base = '/'.SYSCONTEXTID;
  
              // Normal top level categories
              $sql = "UPDATE {context}
                         SET depth=2,
                             path=".$DB->sql_concat("'$base/'", 'id')."
                       WHERE contextlevel=".CONTEXT_COURSECAT."
                             AND EXISTS (SELECT 'x'
                                           FROM {course_categories} cc
                                          WHERE cc.id = {context}.instanceid AND cc.depth=1)
                             $emptyclause";
              $DB->execute($sql);
  
              // Deeper categories - one query per depthlevel
              $maxdepth = $DB->get_field_sql("SELECT MAX(depth) FROM {course_categories}");
              for ($n=2; $n<=$maxdepth; $n++) {
                  $sql = "INSERT INTO {context_temp} (id, path, depth, locked)
                          SELECT ctx.id, ".$DB->sql_concat('pctx.path', "'/'", 'ctx.id').", pctx.depth+1, ctx.locked
                            FROM {context} ctx
                            JOIN {course_categories} cc ON (cc.id = ctx.instanceid AND ctx.contextlevel = ".CONTEXT_COURSECAT." AND cc.depth = $n)
                            JOIN {context} pctx ON (pctx.instanceid = cc.parent AND pctx.contextlevel = ".CONTEXT_COURSECAT.")
                           WHERE pctx.path IS NOT NULL AND pctx.depth > 0
                                 $ctxemptyclause";
                  $trans = $DB->start_delegated_transaction();
                  $DB->delete_records('context_temp');
                  $DB->execute($sql);
                  context::merge_context_temp_table();
                  $DB->delete_records('context_temp');
                  $trans->allow_commit();
  
              }
          }
      }
code: protected static function build_paths($force) {
          global $DB;
  
          if ($force or $DB->record_exists_select('context', "contextlevel = ".CONTEXT_COURSECAT." AND (depth = 0 OR path IS NULL)")) {
              if ($force) {
                  $ctxemptyclause = $emptyclause = '';
              } else {
                  $ctxemptyclause = "AND (ctx.path IS NULL OR ctx.depth = 0)";
                  $emptyclause    = "AND ({context}.path IS NULL OR {context}.depth = 0)";
              }
  
              $base = '/'.SYSCONTEXTID;
  
              // Normal top level categories
              $sql = "UPDATE {context}
                         SET depth=2,
                             path=".$DB->sql_concat("'$base/'", 'id')."
                       WHERE contextlevel=".CONTEXT_COURSECAT."
                             AND EXISTS (SELECT 'x'
                                           FROM {course_categories} cc
                                          WHERE cc.id = {context}.instanceid AND cc.depth=1)
                             $emptyclause";
              $DB->execute($sql);
  
              // Deeper categories - one query per depthlevel
              $maxdepth = $DB->get_field_sql("SELECT MAX(depth) FROM {course_categories}");
              for ($n=2; $n<=$maxdepth; $n++) {
                  $sql = "INSERT INTO {context_temp} (id, path, depth, locked)
                          SELECT ctx.id, ".$DB->sql_concat('pctx.path', "'/'", 'ctx.id').", pctx.depth+1, ctx.locked
                            FROM {context} ctx
                            JOIN {course_categories} cc ON (cc.id = ctx.instanceid AND ctx.contextlevel = ".CONTEXT_COURSECAT." AND cc.depth = $n)
                            JOIN {context} pctx ON (pctx.instanceid = cc.parent AND pctx.contextlevel = ".CONTEXT_COURSECAT.")
                           WHERE pctx.path IS NOT NULL AND pctx.depth > 0
                                 $ctxemptyclause";
                  $trans = $DB->start_delegated_transaction();
                  $DB->delete_records('context_temp');
                  $DB->execute($sql);
                  context::merge_context_temp_table();
                  $DB->delete_records('context_temp');
                  $trans->allow_commit();
  
              }
          }
      }
code_tokens: protected static function build_paths ( $ force ) { global $ DB ; if ( $ force or $ DB -> record_exists_select ( 'context' , "contextlevel = " . CONTEXT_COURSECAT . " AND (depth = 0 OR path IS NULL)" ) ) { if ( $ force ) { $ ctxemptyclause = $ emptyclause = '' ; } else { $ ctxemptyclause = "AND (ctx.path IS NULL OR ctx.depth = 0)" ; $ emptyclause = "AND ({context}.path IS NULL OR {context}.depth = 0)" ; } $ base = '/' . SYSCONTEXTID ; // Normal top level categories $ sql = "UPDATE {context}
                         SET depth=2,
                             path=" . $ DB -> sql_concat ( "'$base/'" , 'id' ) . "
                       WHERE contextlevel=" . CONTEXT_COURSECAT . "
                             AND EXISTS (SELECT 'x'
                                           FROM {course_categories} cc
                                          WHERE cc.id = {context}.instanceid AND cc.depth=1)
                             $emptyclause" ; $ DB -> execute ( $ sql ) ; // Deeper categories - one query per depthlevel $ maxdepth = $ DB -> get_field_sql ( "SELECT MAX(depth) FROM {course_categories}" ) ; for ( $ n = 2 ; $ n <= $ maxdepth ; $ n ++ ) { $ sql = "INSERT INTO {context_temp} (id, path, depth, locked)
                          SELECT ctx.id, " . $ DB -> sql_concat ( 'pctx.path' , "'/'" , 'ctx.id' ) . ", pctx.depth+1, ctx.locked
                            FROM {context} ctx
                            JOIN {course_categories} cc ON (cc.id = ctx.instanceid AND ctx.contextlevel = " . CONTEXT_COURSECAT . " AND cc.depth = $n)
                            JOIN {context} pctx ON (pctx.instanceid = cc.parent AND pctx.contextlevel = " . CONTEXT_COURSECAT . ")
                           WHERE pctx.path IS NOT NULL AND pctx.depth > 0
                                 $ctxemptyclause" ; $ trans = $ DB -> start_delegated_transaction ( ) ; $ DB -> delete_records ( 'context_temp' ) ; $ DB -> execute ( $ sql ) ; context :: merge_context_temp_table ( ) ; $ DB -> delete_records ( 'context_temp' ) ; $ trans -> allow_commit ( ) ; } } }
docstring: Rebuild context paths and depths at course category context level.
  
  @static
  @param bool $force
docstring_tokens: Rebuild context paths and depths at course category context level .