本文整理汇总了PHP中Fisharebest\Webtrees\Controller\PageController::__construct方法的典型用法代码示例。如果您正苦于以下问题:PHP PageController::__construct方法的具体用法?PHP PageController::__construct怎么用?PHP PageController::__construct使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fisharebest\Webtrees\Controller\PageController
的用法示例。
在下文中一共展示了PageController::__construct方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Create the chart controller
*
* @param int $show_full needed for use by charts module
*/
public function __construct($show_full = 1)
{
global $WT_TREE;
parent::__construct();
$rootid = Filter::get('rootid', WT_REGEX_XREF);
$this->root = Individual::getInstance($rootid, $WT_TREE);
if (!$this->root) {
// Missing root individual? Show the chart for someone.
$this->root = $this->getSignificantIndividual();
}
if (!$this->root || !$this->root->canShowName()) {
http_response_code(404);
$this->error_message = I18N::translate('This individual does not exist or you do not have permission to view it.');
}
// Extract parameter from form
if ($show_full) {
$this->show_full = Filter::getInteger('show_full', 0, 1, $WT_TREE->getPreference('PEDIGREE_FULL_DETAILS'));
} else {
$this->show_full = 0;
}
$this->box = new \stdClass();
if ($this->showFull()) {
$this->box->width = Theme::theme()->parameter('chart-box-x');
$this->box->height = Theme::theme()->parameter('chart-box-y');
} else {
$this->box->width = Theme::theme()->parameter('compact-chart-box-x');
$this->box->height = Theme::theme()->parameter('compact-chart-box-y');
}
}
示例2: __construct
/**
* Create a branches list controller
*/
public function __construct()
{
global $WT_TREE;
parent::__construct();
$this->surname = Filter::get('surname');
$this->soundex_std = Filter::getBool('soundex_std');
$this->soundex_dm = Filter::getBool('soundex_dm');
if ($this->surname) {
$this->setPageTitle(I18N::translate('Branches of the %s family', Filter::escapeHtml($this->surname)));
$this->loadIndividuals();
$self = Individual::getInstance($WT_TREE->getUserPreference(Auth::user(), 'gedcomid'), $WT_TREE);
if ($self) {
$this->loadAncestors($self, 1);
}
} else {
$this->setPageTitle(I18N::translate('Branches'));
}
}
示例3: __construct
/**
* Startup activity
*
* @param GedcomRecord|null $record
*/
public function __construct(GedcomRecord $record = null)
{
$this->record = $record;
// Automatically fix broken links
if ($this->record && $this->record->canEdit()) {
$broken_links = 0;
foreach ($this->record->getFacts('HUSB|WIFE|CHIL|FAMS|FAMC|REPO') as $fact) {
if (!$fact->isPendingDeletion() && $fact->getTarget() === null) {
$this->record->deleteFact($fact->getFactId(), false);
FlashMessages::addMessage(I18N::translate('The link from “%1$s” to “%2$s” has been deleted.', $this->record->getFullName(), $fact->getValue()));
$broken_links = true;
}
}
foreach ($this->record->getFacts('NOTE|SOUR|OBJE') as $fact) {
// These can be links or inline. Only delete links.
if (!$fact->isPendingDeletion() && $fact->getTarget() === null && preg_match('/^@.*@$/', $fact->getValue())) {
$this->record->deleteFact($fact->getFactId(), false);
FlashMessages::addMessage(I18N::translate('The link from “%1$s” to “%2$s” has been deleted.', $this->record->getFullName(), $fact->getValue()));
$broken_links = true;
}
}
if ($broken_links) {
// Reload the updated family
$this->record = GedcomRecord::getInstance($this->record->getXref(), $this->record->getTree());
}
}
parent::__construct();
// We want robots to index this page
$this->setMetaRobots('index,follow');
// Set a page title
if ($this->record) {
if ($this->record->canShowName()) {
// e.g. "John Doe" or "1881 Census of Wales"
$this->setPageTitle($this->record->getFullName());
} else {
// e.g. "Individual" or "Source"
$record = $this->record;
$this->setPageTitle(GedcomTag::getLabel($record::RECORD_TYPE));
}
} else {
// No such record
$this->setPageTitle(I18N::translate('Private'));
}
}
示例4: __construct
/**
* Startup activity
*/
public function __construct()
{
global $WT_TREE;
parent::__construct();
// $action comes from GET (search) or POST (replace)
if (Filter::post('action')) {
$this->action = Filter::post('action', 'replace', 'general');
$this->query = Filter::post('query');
$this->replace = Filter::post('replace');
$this->replaceNames = Filter::post('replaceNames', 'checked', '');
$this->replacePlaces = Filter::post('replacePlaces', 'checked', '');
$this->replacePlacesWord = Filter::post('replacePlacesWord', 'checked', '');
$this->replaceAll = Filter::post('replaceAll', 'checked', '');
} else {
$this->action = Filter::get('action', 'advanced|general|soundex|replace|header', 'general');
$this->query = Filter::get('query');
$this->replace = Filter::get('replace');
$this->replaceNames = Filter::get('replaceNames', 'checked', '');
$this->replacePlaces = Filter::get('replacePlaces', 'checked', '');
$this->replacePlacesWord = Filter::get('replacePlacesWord', 'checked', '');
$this->replaceAll = Filter::get('replaceAll', 'checked', '');
}
// Only editors can use search/replace
if ($this->action === 'replace' && !Auth::isEditor($WT_TREE)) {
$this->action = 'general';
}
$this->srindi = Filter::get('srindi', 'checked', '');
$this->srfams = Filter::get('srfams', 'checked', '');
$this->srsour = Filter::get('srsour', 'checked', '');
$this->srnote = Filter::get('srnote', 'checked', '');
$this->soundex = Filter::get('soundex', 'DaitchM|Russell', 'DaitchM');
$this->showasso = Filter::get('showasso');
$this->firstname = Filter::get('firstname');
$this->lastname = Filter::get('lastname');
$this->place = Filter::get('place');
$this->year = Filter::get('year');
// If no record types specified, search individuals
if (!$this->srfams && !$this->srsour && !$this->srnote) {
$this->srindi = 'checked';
}
// If no replace types specifiied, replace full records
if (!$this->replaceNames && !$this->replacePlaces && !$this->replacePlacesWord) {
$this->replaceAll = 'checked';
}
// Trees to search
if (Site::getPreference('ALLOW_CHANGE_GEDCOM')) {
foreach (Tree::getAll() as $search_tree) {
if (Filter::get('tree_' . $search_tree->getTreeId())) {
$this->search_trees[] = $search_tree;
}
}
if (!$this->search_trees) {
$this->search_trees[] = $WT_TREE;
}
} else {
$this->search_trees[] = $WT_TREE;
}
// If we want to show associated persons, build the list
switch ($this->action) {
case 'header':
// We can type in an XREF into the header search, and jump straight to it.
// Otherwise, the header search is the same as the general search
if (preg_match('/' . WT_REGEX_XREF . '/', $this->query)) {
$record = GedcomRecord::getInstance($this->query, $WT_TREE);
if ($record && $record->canShowName()) {
header('Location: ' . WT_BASE_URL . $record->getRawUrl());
exit;
}
}
$this->action = 'general';
$this->srindi = 'checked';
$this->srfams = 'checked';
$this->srsour = 'checked';
$this->srnote = 'checked';
$this->setPageTitle(I18N::translate('General search'));
$this->generalSearch();
break;
case 'general':
$this->setPageTitle(I18N::translate('General search'));
$this->generalSearch();
break;
case 'soundex':
// Create a dummy search query to use as a title to the results list
$this->query = trim($this->firstname . ' ' . $this->lastname . ' ' . $this->place);
$this->setPageTitle(I18N::translate('Phonetic search'));
$this->soundexSearch();
break;
case 'replace':
$this->setPageTitle(I18N::translate('Search and replace'));
$this->search_trees = array($WT_TREE);
$this->srindi = 'checked';
$this->srfams = 'checked';
$this->srsour = 'checked';
$this->srnote = 'checked';
if (Filter::post('query')) {
$this->searchAndReplace($WT_TREE);
header('Location: ' . WT_BASE_URL . WT_SCRIPT_NAME . '?action=replace&query=' . Filter::escapeUrl($this->query) . '&replace=' . Filter::escapeUrl($this->replace) . '&replaceAll=' . $this->replaceAll . '&replaceNames=' . $this->replaceNames . '&replacePlaces=' . $this->replacePlaces . '&replacePlacesWord=' . $this->replacePlacesWord);
//.........这里部分代码省略.........
示例5: __construct
/**
* Startup activity
*/
public function __construct()
{
global $WT_TREE;
parent::__construct();
$this->setPageTitle(I18N::translate('Timeline'));
$this->baseyear = (int) date('Y');
$pids = Filter::getArray('pids', WT_REGEX_XREF);
$remove = Filter::get('remove', WT_REGEX_XREF);
foreach (array_unique($pids) as $pid) {
if ($pid !== $remove) {
$person = Individual::getInstance($pid, $WT_TREE);
if ($person && $person->canShow()) {
$this->people[] = $person;
}
}
}
$this->pidlinks = '';
foreach ($this->people as $indi) {
// setup string of valid pids for links
$this->pidlinks .= 'pids%5B%5D=' . $indi->getXref() . '&';
$bdate = $indi->getBirthDate();
if ($bdate->isOK()) {
$date = new GregorianDate($bdate->minimumJulianDay());
$this->birthyears[$indi->getXref()] = $date->y;
$this->birthmonths[$indi->getXref()] = max(1, $date->m);
$this->birthdays[$indi->getXref()] = max(1, $date->d);
}
// find all the fact information
$facts = $indi->getFacts();
foreach ($indi->getSpouseFamilies() as $family) {
foreach ($family->getFacts() as $fact) {
$facts[] = $fact;
}
}
foreach ($facts as $event) {
// get the fact type
$fact = $event->getTag();
if (!in_array($fact, $this->nonfacts)) {
// check for a date
$date = $event->getDate();
if ($date->isOK()) {
$date = new GregorianDate($date->minimumJulianDay());
$this->baseyear = min($this->baseyear, $date->y);
$this->topyear = max($this->topyear, $date->y);
if (!$indi->isDead()) {
$this->topyear = max($this->topyear, (int) date('Y'));
}
// do not add the same fact twice (prevents marriages from being added multiple times)
if (!in_array($event, $this->indifacts, true)) {
$this->indifacts[] = $event;
}
}
}
}
}
$scale = Filter::getInteger('scale', 0, 200);
if ($scale === 0) {
$this->scale = (int) (($this->topyear - $this->baseyear) / 20 * count($this->indifacts) / 4);
if ($this->scale < 6) {
$this->scale = 6;
}
} else {
$this->scale = $scale;
}
if ($this->scale < 2) {
$this->scale = 2;
}
$this->baseyear -= 5;
$this->topyear += 5;
}
示例6: __construct
/**
* Startup activity
*/
public function __construct()
{
global $WT_TREE;
parent::__construct();
$this->setPageTitle(I18N::translate('Lifespans'));
$this->facts = explode('|', WT_EVENTS_BIRT . '|' . WT_EVENTS_DEAT . '|' . WT_EVENTS_MARR . '|' . WT_EVENTS_DIV);
$tmp = explode('\\', get_class(I18N::defaultCalendar()));
$cal = strtolower(array_pop($tmp));
$this->defaultCalendar = str_replace('calendar', '', $cal);
$filterPids = false;
// Request parameters
$clear = Filter::getBool('clear');
$newpid = Filter::get('newpid', WT_REGEX_XREF);
$addfam = Filter::getBool('addFamily');
$this->place = Filter::get('place');
$this->beginYear = Filter::getInteger('beginYear', 0, PHP_INT_MAX, null);
$this->endYear = Filter::getInteger('endYear', 0, PHP_INT_MAX, null);
$this->calendar = Filter::get('calendar', null, $this->defaultCalendar);
$this->strictDate = Filter::getBool('strictDate');
// Set up base color parameters
$this->colors['M'] = new ColorGenerator(240, self::SATURATION, self::LIGHTNESS, self::ALPHA, self::RANGE * -1);
$this->colors['F'] = new ColorGenerator(00, self::SATURATION, self::LIGHTNESS, self::ALPHA, self::RANGE);
// Build a list of people based on the input parameters
if ($clear) {
// Empty list & reset form
$xrefs = array();
$this->place = null;
$this->beginYear = null;
$this->endYear = null;
$this->calendar = $this->defaultCalendar;
} elseif ($this->place) {
// Get all individual & family records found for a place
$this->place_obj = new Place($this->place, $WT_TREE);
$xrefs = Database::prepare("SELECT DISTINCT `i_id` FROM `##placelinks`" . " JOIN `##individuals` ON `pl_gid`=`i_id` AND `pl_file`=`i_file`" . " WHERE `i_file`=:tree_id" . " AND `pl_p_id`=:place_id" . " UNION" . " SELECT DISTINCT `f_id` FROM `##placelinks`" . " JOIN `##families` ON `pl_gid`=`f_id` AND `pl_file`=`f_file`" . " WHERE `f_file`=:tree_id" . " AND `pl_p_id`=:place_id")->execute(array('tree_id' => $WT_TREE->getTreeId(), 'place_id' => $this->place_obj->getPlaceId()))->fetchOneColumn();
} else {
// Modify an existing list of records
$xrefs = Session::get(self::SESSION_DATA, array());
if ($newpid) {
$xrefs = array_merge($xrefs, $this->addFamily(Individual::getInstance($newpid, $WT_TREE), $addfam));
$xrefs = array_unique($xrefs);
} elseif (!$xrefs) {
$xrefs = $this->addFamily($this->getSignificantIndividual(), false);
}
}
$tmp = $this->getCalendarDate(unixtojd());
$this->currentYear = $tmp->today()->y;
$tmp = strtoupper(strtr($this->calendar, array('jewish' => 'hebrew', 'french' => 'french r')));
$this->calendarEscape = sprintf('@#D%s@', $tmp);
if ($xrefs) {
// ensure date ranges are valid in preparation for filtering list
if ($this->beginYear || $this->endYear) {
$filterPids = true;
if (!$this->beginYear) {
$tmp = new Date($this->calendarEscape . ' 1');
$this->beginYear = $tmp->minimumDate()->y;
}
if (!$this->endYear) {
$this->endYear = $this->currentYear;
}
$this->startDate = new Date($this->calendarEscape . $this->beginYear);
$this->endDate = new Date($this->calendarEscape . $this->endYear);
}
// Test each xref to see if the search criteria are met
foreach ($xrefs as $key => $xref) {
$valid = false;
$person = Individual::getInstance($xref, $WT_TREE);
if ($person) {
if ($person->canShow()) {
foreach ($person->getFacts() as $fact) {
if ($this->checkFact($fact)) {
$this->people[] = $person;
$valid = true;
break;
}
}
}
} else {
$family = Family::getInstance($xref, $WT_TREE);
if ($family && $family->canShow() && $this->checkFact($family->getMarriage())) {
$valid = true;
$this->people[] = $family->getHusband();
$this->people[] = $family->getWife();
}
}
if (!$valid) {
unset($xrefs[$key]);
// no point in storing a xref if we can't use it
}
}
Session::put(self::SESSION_DATA, $xrefs);
} else {
Session::forget(self::SESSION_DATA);
}
$this->people = array_filter(array_unique($this->people));
$count = count($this->people);
if ($count) {
// Build the subtitle
//.........这里部分代码省略.........