summaryrefslogtreecommitdiff
path: root/modules/exif/helpers/exif.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/exif/helpers/exif.php')
-rw-r--r--modules/exif/helpers/exif.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/modules/exif/helpers/exif.php b/modules/exif/helpers/exif.php
index ab5dff71..c488bbd4 100644
--- a/modules/exif/helpers/exif.php
+++ b/modules/exif/helpers/exif.php
@@ -133,4 +133,35 @@ class exif_Core {
}
return self::$exif_keys;
}
+
+ static function stats() {
+ $missing_exif = Database::instance()
+ ->select("items.id")
+ ->from("items")
+ ->join("exif_records", "items.id", "exif_records.item_id", "left")
+ ->where("type", "photo")
+ ->open_paren()
+ ->where("exif_records.item_id", null)
+ ->orwhere("exif_records.dirty", 1)
+ ->close_paren()
+ ->get()
+ ->count();
+
+ $total_items = ORM::factory("item")->where("type", "photo")->count_all();
+ if (!$total_items) {
+ return array(0, 0, 0);
+ }
+ return array($missing_exif, $total_items,
+ round(100 * (($total_items - $missing_exif) / $total_items)));
+ }
+
+ static function check_index() {
+ list ($remaining) = exif::stats();
+ if ($remaining) {
+ site_status::warning(
+ t('Your EXIF index needs to be updated. <a href="%url" class="gDialogLink">Fix this now</a>',
+ array("url" => url::site("admin/maintenance/start/exif_task::update_index?csrf=__CSRF__"))),
+ "exif_index_out_of_date");
+ }
+ }
}