CWIS Developer Documentation
SavedSearchFactory.php
Go to the documentation of this file.
1 <?PHP
2 #
3 # FILE: SavedSearchFactory.php
4 #
5 # Part of the Collection Workflow Integration System (CWIS)
6 # Copyright 2009-2013 Edward Almasy and Internet Scout Research Group
7 # http://scout.wisc.edu/cwis/
8 #
9 
14 
15  # ---- PUBLIC INTERFACE --------------------------------------------------
16 
20  function __construct()
21  {
22  # set up item factory base class
23  $this->ItemFactory("SavedSearch", "SavedSearches", "SearchId", "SearchName");
24  }
25 
32  function GetSearchesForUser($UserId)
33  {
34  # return list of searches to caller
35  return $this->GetItems("UserId = ".intval($UserId));
36  }
37 
44  {
45  # retrieve searches with frequency/time values that indicate need to be run
46  return $this->GetItems(
47  "((Frequency = ".SavedSearch::SEARCHFREQ_HOURLY.")"
48  ." AND (DateLastRun < '"
49  .date("Y-m-d H:i:s", (strtotime("1 hour ago") + 15))."'))"
50  ." OR ((Frequency = ".SavedSearch::SEARCHFREQ_DAILY.")"
51  ." AND (DateLastRun < '"
52  .date("Y-m-d H:i:s", (strtotime("1 day ago") + 15))."'))"
53  ." OR ((Frequency = ".SavedSearch::SEARCHFREQ_WEEKLY.")"
54  ." AND (DateLastRun < '"
55  .date("Y-m-d H:i:s", (strtotime("1 week ago") + 15))."'))"
56  ." OR ((Frequency = ".SavedSearch::SEARCHFREQ_BIWEEKLY.")"
57  ." AND (DateLastRun < '"
58  .date("Y-m-d H:i:s", (strtotime("2 weeks ago") + 15))."'))"
59  ." OR ((Frequency = ".SavedSearch::SEARCHFREQ_MONTHLY.")"
60  ." AND (DateLastRun < '"
61  .date("Y-m-d H:i:s", (strtotime("1 month ago") + 15))."'))"
62  ." OR ((Frequency = ".SavedSearch::SEARCHFREQ_QUARTERLY.")"
63  ." AND (DateLastRun < '"
64  .date("Y-m-d H:i:s", (strtotime("3 months ago") + 15))."'))"
65  ." OR ((Frequency = ".SavedSearch::SEARCHFREQ_YEARLY.")"
66  ." AND (DateLastRun < '"
67  .date("Y-m-d H:i:s", (strtotime("1 year ago") + 15))."'))");
68  }
69 
74  function GetSearchUserCount()
75  {
76  return $this->DB->Query(
77  "SELECT COUNT(DISTINCT UserId) AS UserCount FROM SavedSearches",
78  "UserCount");
79  }
80 
81 
82  # ---- PRIVATE INTERFACE -------------------------------------------------
83 
84 }
85 
GetSearchesForUser($UserId)
Get all saved searches for a specified user.
const SEARCHFREQ_WEEKLY
Definition: SavedSearch.php:27
__construct()
Object constructor.
Factory for manipulating SavedSearch objects.
const SEARCHFREQ_DAILY
Definition: SavedSearch.php:26
const SEARCHFREQ_QUARTERLY
Definition: SavedSearch.php:30
const SEARCHFREQ_YEARLY
Definition: SavedSearch.php:31
PHP
Definition: OAIClient.php:39
const SEARCHFREQ_HOURLY
Definition: SavedSearch.php:25
const SEARCHFREQ_BIWEEKLY
Definition: SavedSearch.php:28
const SEARCHFREQ_MONTHLY
Definition: SavedSearch.php:29
GetSearchUserCount()
Get number of users with saved searches.
GetItems($SqlCondition=NULL)
Retrieve items.
Common factory class for item manipulation.
Definition: ItemFactory.php:17
GetSearchesDueToRun()
Get all searches that should be run according to frequency and last run time.
ItemFactory($ItemClassName, $ItemTableName, $ItemIdFieldName, $ItemNameFieldName=NULL, $OrderOpsAllowed=FALSE, $SqlCondition=NULL)
Class constructor.
Definition: ItemFactory.php:36