示例#1
0
/**
 * Find source records from the database.
 *
 * @param Tree   $tree
 * @param string $term
 *
 * @return \stdClass[]
 */
function get_SOUR_rows(Tree $tree, $term)
{
    return Database::prepare("SELECT s_id AS xref, s_gedcom AS gedcom" . " FROM `##sources`" . " WHERE s_name LIKE CONCAT('%', REPLACE(:term, ' ', '%'), '%') AND s_file = :tree_id" . " ORDER BY s_name COLLATE :collation")->execute(array('term' => $term, 'tree_id' => $tree->getTreeId(), 'collation' => I18N::collation()))->fetchAll();
}
示例#2
0
 /**
  * Search for a place name.
  *
  * @param string  $filter
  * @param Tree    $tree
  *
  * @return Place[]
  */
 public static function findPlaces($filter, Tree $tree)
 {
     $places = array();
     $rows = Database::prepare("SELECT SQL_CACHE CONCAT_WS(', ', p1.p_place, p2.p_place, p3.p_place, p4.p_place, p5.p_place, p6.p_place, p7.p_place, p8.p_place, p9.p_place)" . " FROM      `##places` AS p1" . " LEFT JOIN `##places` AS p2 ON (p1.p_parent_id = p2.p_id)" . " LEFT JOIN `##places` AS p3 ON (p2.p_parent_id = p3.p_id)" . " LEFT JOIN `##places` AS p4 ON (p3.p_parent_id = p4.p_id)" . " LEFT JOIN `##places` AS p5 ON (p4.p_parent_id = p5.p_id)" . " LEFT JOIN `##places` AS p6 ON (p5.p_parent_id = p6.p_id)" . " LEFT JOIN `##places` AS p7 ON (p6.p_parent_id = p7.p_id)" . " LEFT JOIN `##places` AS p8 ON (p7.p_parent_id = p8.p_id)" . " LEFT JOIN `##places` AS p9 ON (p8.p_parent_id = p9.p_id)" . " WHERE CONCAT_WS(', ', p1.p_place, p2.p_place, p3.p_place, p4.p_place, p5.p_place, p6.p_place, p7.p_place, p8.p_place, p9.p_place) LIKE CONCAT('%', :filter_1, '%') AND CONCAT_WS(', ', p1.p_place, p2.p_place, p3.p_place, p4.p_place, p5.p_place, p6.p_place, p7.p_place, p8.p_place, p9.p_place) NOT LIKE CONCAT('%,%', :filter_2, '%') AND p1.p_file = :tree_id" . " ORDER BY  CONCAT_WS(', ', p1.p_place, p2.p_place, p3.p_place, p4.p_place, p5.p_place, p6.p_place, p7.p_place, p8.p_place, p9.p_place) COLLATE :collation")->execute(array('filter_1' => preg_quote($filter), 'filter_2' => preg_quote($filter), 'tree_id' => $tree->getTreeId(), 'collation' => I18N::collation()))->fetchOneColumn();
     foreach ($rows as $row) {
         $places[] = new self($row, $tree);
     }
     return $places;
 }
示例#3
0
 /**
  * How many times has a page been viewed
  *
  * @param Tree   $tree
  * @param string $page
  * @param string $parameter
  *
  * @return int
  */
 public static function getCount(Tree $tree, $page, $parameter)
 {
     return (int) Database::prepare("SELECT page_count FROM `##hit_counter`" . " WHERE gedcom_id = :tree_id AND page_name = :page AND page_parameter = :parameter")->execute(array('tree_id' => $tree->getTreeId(), 'page' => $page, 'parameter' => $parameter))->fetchOne();
 }