public function updateTagging($fusionID) {

		// Determine any data objects with the tagging extension.

		$configuration = Config::inst();
		$classes = ClassInfo::subclassesFor('DataObject');
		unset($classes['DataObject']);
		foreach($classes as $class) {

			// Determine the specific data object extensions.

			$extensions = $configuration->get($class, 'extensions', Config::UNINHERITED);
			if(is_array($extensions) && in_array('TaggingExtension', $extensions)) {

				// Determine whether this fusion tag is being used.

				$mode = Versioned::get_reading_mode();
				Versioned::reading_stage('Stage');
				$objects = $class::get()->filter('FusionTags.ID', $fusionID);

				// Update the searchable content tagging for these data objects.

				if($class::has_extension($class, 'Versioned')) {

					// These data objects are versioned.

					foreach($objects as $object) {

						// Update the staging version.

						$object->writeWithoutVersion();
					}
					Versioned::reading_stage('Live');
					$objects = $class::get()->filter('FusionTags.ID', $fusionID);
					foreach($objects as $object) {

						// Update the live version.

						$object->writeWithoutVersion();
					}
				}
				else {

					// These data objects are not versioned.

					foreach($objects as $object) {
						$object->write();
					}
				}
				Versioned::set_reading_mode($mode);
			}
		}
	}