本文整理汇总了PHP中Fisharebest\Webtrees\Site类的典型用法代码示例。如果您正苦于以下问题:PHP Site类的具体用法?PHP Site怎么用?PHP Site使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Site类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: upgrade
/**
* Upgrade to to the next version
*/
public function upgrade()
{
$index_dir = Site::getPreference('INDEX_DIRECTORY');
// Due to the language code changes in 1.7.0, we need to update some other settings
foreach ($this->languages as $old => $new) {
try {
Database::prepare("UPDATE `##site_setting` SET setting_name = REPLACE(setting_name, :old, :new) " . "WHERE setting_name LIKE 'WELCOME_TEXT_AUTH_MODE_%'")->execute(array('old' => $old, 'new' => $new));
} catch (PDOException $ex) {
// Duplicate key? Already done?
}
Database::prepare("UPDATE `##block_setting` SET setting_value = REPLACE(setting_value, :old, :new) " . "WHERE setting_name = 'languages'")->execute(array('old' => $old, 'new' => $new));
// Historical fact files
if (file_exists($index_dir . 'histo.' . $old . '.php') && !file_exists($index_dir . 'histo.' . $new . '.php')) {
rename($index_dir . 'histo.' . $old . '.php', $index_dir . 'histo.' . $new . '.php');
}
// Language files
if (file_exists($index_dir . 'language/' . $old . '.php') && !file_exists($index_dir . 'language/' . $new . '.php')) {
rename($index_dir . 'language/' . $old . '.php', $index_dir . 'language/' . $new . '.php');
}
if (file_exists($index_dir . 'language/' . $old . '.csv') && !file_exists($index_dir . 'language/' . $new . '.csv')) {
rename($index_dir . 'language/' . $old . '.csv', $index_dir . 'language/' . $new . '.csv');
}
if (file_exists($index_dir . 'language/' . $old . '.mo') && !file_exists($index_dir . 'language/' . $new . '.mo')) {
rename($index_dir . 'language/' . $old . '.mo', $index_dir . 'language/' . $new . '.mo');
}
}
}
示例2: cookieWarning
/** {@inheritdoc} */
public function cookieWarning()
{
if (empty($_SERVER['HTTP_DNT']) && empty($_COOKIE['cookie']) && (Site::getPreference('GOOGLE_ANALYTICS_ID') || Site::getPreference('PIWIK_SITE_ID') || Site::getPreference('STATCOUNTER_PROJECT_ID'))) {
$cookie_warning = '<div class="cookie-warning">' . I18N::translate('Cookies') . ' - ' . I18N::translate('This website uses cookies to learn about visitor behaviour.') . '</div>';
return $this->htmlAlert($cookie_warning, 'info', true);
} else {
return '';
}
}
示例3: fetchLatestVersion
/**
* Check with the webtrees.net server for the latest version of webtrees.
* Fetching the remote file can be slow, so check infrequently, and cache the result.
* Pass the current versions of webtrees, PHP and MySQL, as the response
* may be different for each. The server logs are used to generate
* installation statistics which can be found at http://svn.webtrees.net/statistics.html
*
* @return null|string
*/
public static function fetchLatestVersion()
{
$last_update_timestamp = Site::getPreference('LATEST_WT_VERSION_TIMESTAMP');
if ($last_update_timestamp < WT_TIMESTAMP - 24 * 60 * 60) {
$row = Database::prepare("SHOW VARIABLES LIKE 'version'")->fetchOneRow();
$params = '?w=' . WT_VERSION . '&p=' . PHP_VERSION . '&m=' . $row->value . '&o=' . (DIRECTORY_SEPARATOR === '/' ? 'u' : 'w');
$latest_version_txt = File::fetchUrl('http://dev.webtrees.net/build/latest-version.txt' . $params);
if ($latest_version_txt) {
Site::setPreference('LATEST_WT_VERSION', $latest_version_txt);
Site::setPreference('LATEST_WT_VERSION_TIMESTAMP', WT_TIMESTAMP);
return $latest_version_txt;
} else {
// Cannot connect to server - use cached version (if we have one)
return Site::getPreference('LATEST_WT_VERSION');
}
} else {
return Site::getPreference('LATEST_WT_VERSION');
}
}
示例4: activeLocales
/**
* The prefered locales for this site, or a default list if no preference.
*
* @return LocaleInterface[]
*/
public static function activeLocales()
{
$code_list = Site::getPreference('LANGUAGES');
if ($code_list) {
$codes = explode(',', $code_list);
} else {
$codes = array('ar', 'bg', 'bs', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'en-US', 'es', 'et', 'fi', 'fr', 'he', 'hr', 'hu', 'is', 'it', 'ka', 'lt', 'mr', 'nb', 'nl', 'nn', 'pl', 'pt', 'ru', 'sk', 'sv', 'tr', 'uk', 'vi', 'zh-Hans');
}
$locales = array();
foreach ($codes as $code) {
if (file_exists(WT_ROOT . 'language/' . $code . '.mo')) {
try {
$locales[] = Locale::create($code);
} catch (\Exception $ex) {
// No such locale exists?
}
}
}
usort($locales, '\\Fisharebest\\Localization\\Locale::compare');
return $locales;
}
示例5: getBlock
/**
* Generate the HTML content of this block.
*
* @param int $block_id
* @param bool $template
* @param string[] $cfg
*
* @return string
*/
public function getBlock($block_id, $template = true, $cfg = array())
{
global $controller, $WT_TREE;
$indi_xref = $controller->getSignificantIndividual()->getXref();
$id = $this->getName() . $block_id;
$class = $this->getName() . '_block';
$title = $WT_TREE->getTitleHtml();
$content = '<table><tr>';
$content .= '<td><a href="pedigree.php?rootid=' . $indi_xref . '&ged=' . $WT_TREE->getNameUrl() . '"><i class="icon-pedigree"></i><br>' . I18N::translate('Default chart') . '</a></td>';
$content .= '<td><a href="individual.php?pid=' . $indi_xref . '&ged=' . $WT_TREE->getNameUrl() . '"><i class="icon-indis"></i><br>' . I18N::translate('Default individual') . '</a></td>';
if (Site::getPreference('USE_REGISTRATION_MODULE') && !Auth::check()) {
$content .= '<td><a href="' . WT_LOGIN_URL . '?action=register"><i class="icon-user_add"></i><br>' . I18N::translate('Request new user account') . '</a></td>';
}
$content .= "</tr>";
$content .= "</table>";
if ($template) {
return Theme::theme()->formatBlock($id, $title, $class, $content);
} else {
return $content;
}
}
示例6: array
echo I18N::translate('members');
?>
</span>
</div>
</div>
<div class="col-sm-8">
<?php
echo FunctionsEdit::selectEditControl('REQUIRE_AUTHENTICATION', array('0' => I18N::translate('Show to visitors'), '1' => I18N::translate('Show to members')), null, $WT_TREE->getPreference('REQUIRE_AUTHENTICATION'), 'class="form-control"');
?>
<p class="small text-muted">
<?php
echo I18N::translate('Enabling this option will force all visitors to sign in before they can view any data on the website.');
?>
</p>
<?php
if (Site::getPreference('USE_REGISTRATION_MODULE')) {
?>
<p class="small text-muted">
<?php
echo I18N::translate('If visitors can not see the family tree, they will not be able to sign up for an account. You will need to add their account manually.');
?>
</p>
<?php
}
?>
</div>
</div>
<!-- SHOW_DEAD_PEOPLE -->
<div class="form-group">
<div class="control-label col-sm-4">
示例7: historicalFacts
/**
* Get any historical events.
*
* @param Individual $person
*
* @return Fact[]
*/
private static function historicalFacts(Individual $person)
{
$SHOW_RELATIVES_EVENTS = $person->getTree()->getPreference('SHOW_RELATIVES_EVENTS');
$facts = array();
if ($SHOW_RELATIVES_EVENTS) {
// Only include events between birth and death
$birt_date = $person->getEstimatedBirthDate();
$deat_date = $person->getEstimatedDeathDate();
if (file_exists(Site::getPreference('INDEX_DIRECTORY') . 'histo.' . WT_LOCALE . '.php')) {
$histo = array();
require Site::getPreference('INDEX_DIRECTORY') . 'histo.' . WT_LOCALE . '.php';
foreach ($histo as $hist) {
// Earlier versions of the WIKI encouraged people to use HTML entities,
// rather than UTF8 encoding.
$hist = html_entity_decode($hist, ENT_QUOTES, 'UTF-8');
$fact = new Fact($hist, $person, 'histo');
$sdate = $fact->getDate();
if ($sdate->isOK() && Date::compare($birt_date, $sdate) <= 0 && Date::compare($sdate, $deat_date) <= 0) {
$facts[] = $fact;
}
}
}
}
return $facts;
}
示例8: menuThemes
/**
* Themes menu.
*
* @return Menu|null
*/
public function menuThemes()
{
if ($this->tree && Site::getPreference('ALLOW_USER_THEMES') && $this->tree->getPreference('ALLOW_THEME_DROPDOWN')) {
$submenus = array();
foreach (Theme::installedThemes() as $theme) {
$class = 'menu-theme-' . $theme->themeId() . ($theme === $this ? ' active' : '');
$submenus[] = new Menu($theme->themeName(), '#', $class, array('onclick' => 'return false;', 'data-theme' => $theme->themeId()));
}
usort($submenus, function (Menu $x, Menu $y) {
return I18N::strcasecmp($x->getLabel(), $y->getLabel());
});
$menu = new Menu(I18N::translate('Theme'), '#', 'menu-theme', array(), $submenus);
return $menu;
} else {
return null;
}
}
示例9: transport
/**
* Create a transport mechanism for sending mail
*
* @return Swift_Transport
*/
public static function transport()
{
switch (Site::getPreference('SMTP_ACTIVE')) {
case 'internal':
return Swift_MailTransport::newInstance();
case 'external':
$transport = Swift_SmtpTransport::newInstance()->setHost(Site::getPreference('SMTP_HOST'))->setPort(Site::getPreference('SMTP_PORT'))->setLocalDomain(Site::getPreference('SMTP_HELO'));
if (Site::getPreference('SMTP_AUTH')) {
$transport->setUsername(Site::getPreference('SMTP_AUTH_USER'))->setPassword(Site::getPreference('SMTP_AUTH_PASS'));
}
if (Site::getPreference('SMTP_SSL') !== 'none') {
$transport->setEncryption(Site::getPreference('SMTP_SSL'));
}
return $transport;
default:
// For testing
return Swift_NullTransport::newInstance();
}
}
示例10:
?>
</label>
</div>
<div class="value">
<input type="email" id="form_email" name="form_email" value="<?php
echo Filter::escapeHtml(Auth::user()->getEmail());
?>
" size="50">
<p class="small text-muted">
<?php
echo I18N::translate('This email address will be used to send password reminders, website notifications, and messages from other family members who are registered on the website.');
?>
</p>
</div>
<?php
if (Site::getPreference('ALLOW_USER_THEMES')) {
?>
<div class="label">
<label for="form_theme">
<?php
echo I18N::translate('Theme');
?>
</label>
</div>
<div class="value">
<select id="form_theme" name="form_theme">
<option value="">
<?php
echo Filter::escapeHtml(I18N::translate('<default theme>'));
?>
示例11:
}
}
}
}
} else {
http_response_code(406);
}
break;
case 'reject-changes':
// Reject all the pending changes for a record
$record = GedcomRecord::getInstance(Filter::post('xref', WT_REGEX_XREF), $WT_TREE);
if ($record && $record->canEdit() && Auth::isModerator($record->getTree())) {
FlashMessages::addMessage(I18N::translate('The changes to “%s” have been rejected.', $record->getFullName()));
FunctionsImport::rejectAllChanges($record);
} else {
http_response_code(406);
}
break;
case 'theme':
// Change the current theme
$theme = Filter::post('theme');
if (Site::getPreference('ALLOW_USER_THEMES') && array_key_exists($theme, Theme::themeNames())) {
Session::put('theme_id', $theme);
// Remember our selection
Auth::user()->setPreference('theme', $theme);
} else {
// Request for a non-existant theme.
http_response_code(406);
}
break;
}
示例12: updateSchema
/**
* Run a series of scripts to bring the database schema up to date.
*
* @param string $namespace Where to find our MigrationXXX classes
* @param string $schema_name Where to find our MigrationXXX classes
* @param int $target_version updade/downgrade to this version
*
* @throws PDOException
*
* @return bool Were any updates applied
*/
public static function updateSchema($namespace, $schema_name, $target_version)
{
try {
$current_version = (int) Site::getPreference($schema_name);
} catch (PDOException $e) {
// During initial installation, the site_preference table won’t exist.
$current_version = 0;
}
$updates_applied = false;
try {
// Update the schema, one version at a time.
while ($current_version < $target_version) {
$class = $namespace . '\\Migration' . $current_version;
/** @var MigrationInterface $migration */
$migration = new $class();
$migration->upgrade();
Site::setPreference($schema_name, ++$current_version);
$updates_applied = true;
}
} catch (PDOException $ex) {
// The schema update scripts should never fail. If they do, there is no clean recovery.
FlashMessages::addMessage($ex->getMessage(), 'danger');
header('Location: ' . WT_BASE_URL . 'site-unavailable.php');
throw $ex;
}
return $updates_applied;
}
示例13: IN
Database::exec("DELETE FROM `##user` WHERE user_id>0");
////////////////////////////////////////////////////////////////////////////////
echo '<p>', $INDEX_DIRECTORY, 'config.php => wt_site_setting…</p>';
Site::setPreference('USE_REGISTRATION_MODULE', $USE_REGISTRATION_MODULE);
Site::setPreference('ALLOW_USER_THEMES', $ALLOW_USER_THEMES);
Site::setPreference('ALLOW_CHANGE_GEDCOM', $ALLOW_CHANGE_GEDCOM);
Site::setPreference('SESSION_TIME', $PGV_SESSION_TIME);
Site::setPreference('SMTP_ACTIVE', $PGV_SMTP_ACTIVE ? 'external' : 'internal');
Site::setPreference('SMTP_HOST', $PGV_SMTP_HOST);
Site::setPreference('SMTP_HELO', $PGV_SMTP_HELO);
Site::setPreference('SMTP_PORT', $PGV_SMTP_PORT);
Site::setPreference('SMTP_AUTH', $PGV_SMTP_AUTH);
Site::setPreference('SMTP_AUTH_USER', $PGV_SMTP_AUTH_USER);
Site::setPreference('SMTP_AUTH_PASS', $PGV_SMTP_AUTH_PASS);
Site::setPreference('SMTP_SSL', $PGV_SMTP_SSL);
Site::setPreference('SMTP_FROM_NAME', $PGV_SMTP_FROM_NAME);
////////////////////////////////////////////////////////////////////////////////
echo '<p>pgv_site_setting => wt_site_setting…</p>';
Database::prepare("REPLACE INTO `##site_setting` (setting_name, setting_value)" . " SELECT site_setting_name, site_setting_value FROM `{$DBNAME}`.`{$TBLPREFIX}site_setting`" . " WHERE site_setting_name IN ('DEFAULT_GEDCOM', 'LAST_CHANGE_EMAIL')")->execute();
////////////////////////////////////////////////////////////////////////////////
if ($PGV_SCHEMA_VERSION >= 12) {
echo '<p>pgv_gedcom => wt_gedcom…</p>';
Database::prepare("INSERT INTO `##gedcom` (gedcom_id, gedcom_name)" . " SELECT gedcom_id, gedcom_name FROM `{$DBNAME}`.`{$TBLPREFIX}gedcom`")->execute();
echo '<p>pgv_gedcom_setting => wt_gedcom_setting…</p>';
Database::prepare("INSERT INTO `##gedcom_setting` (gedcom_id, setting_name, setting_value)" . " SELECT gedcom_id, setting_name," . " CASE setting_name" . " WHEN 'THEME_DIR' THEN" . " CASE setting_value" . " WHEN '' THEN ''" . " WHEN 'themes/cloudy/' THEN 'clouds'" . " WHEN 'themes/minimal/' THEN 'minimal'" . " WHEN 'themes/simplyblue/' THEN 'colors'" . " WHEN 'themes/simplygreen/' THEN 'colors'" . " WHEN 'themes/simplyred/' THEN 'colors'" . " WHEN 'themes/xenea/' THEN 'xenea'" . " ELSE 'themes/webtrees/'" . " END" . " WHEN 'LANGUAGE' THEN" . " CASE setting_value" . " WHEN 'arabic' THEN 'ar'" . " WHEN 'catalan' THEN 'ca'" . " WHEN 'chinese' THEN 'zh_CN'" . " WHEN 'croatian' THEN 'hr'" . " WHEN 'danish' THEN 'da'" . " WHEN 'dutch' THEN 'nl'" . " WHEN 'english' THEN 'en_US'" . " WHEN 'english-uk' THEN 'en_GB'" . " WHEN 'estonian' THEN 'et'" . " WHEN 'finnish' THEN 'fi'" . " WHEN 'french' THEN 'fr'" . " WHEN 'german' THEN 'de'" . " WHEN 'greek' THEN 'el'" . " WHEN 'hebrew' THEN 'he'" . " WHEN 'hungarian' THEN 'hu'" . " WHEN 'indonesian' THEN 'id'" . " WHEN 'italian' THEN 'it'" . " WHEN 'lithuanian' THEN 'lt'" . " WHEN 'norwegian' THEN 'nn'" . " WHEN 'polish' THEN 'pl'" . " WHEN 'portuguese' THEN 'pt'" . " WHEN 'romainian' THEN 'ro'" . " WHEN 'russian' THEN 'ru'" . " WHEN 'serbian-la' THEN 'sr@Latn'" . " WHEN 'slovak' THEN 'sk'" . " WHEN 'slovenian' THEN 'sl'" . " WHEN 'spanish' THEN 'es'" . " WHEN 'spanish-ar' THEN 'es'" . " WHEN 'swedish' THEN 'sv'" . " WHEN 'turkish' THEN 'tr'" . " WHEN 'vietnamese' THEN 'vi'" . " ELSE 'en_US'" . " END" . " ELSE setting_value" . " END" . " FROM `{$DBNAME}`.`{$TBLPREFIX}gedcom_setting`" . " WHERE setting_name NOT IN ('HOME_SITE_TEXT', 'HOME_SITE_URL')")->execute();
echo '<p>pgv_user => wt_user…</p>';
try {
// "INSERT IGNORE" is needed to allow for PhpGedView users with duplicate emails. Only the first will be imported.
Database::prepare("INSERT IGNORE INTO `##user` (user_id, user_name, real_name, email, password)" . " SELECT user_id, user_name, CONCAT_WS(' ', us1.setting_value, us2.setting_value), us3.setting_value, password FROM `{$DBNAME}`.`{$TBLPREFIX}user`" . " LEFT JOIN `{$DBNAME}`.`{$TBLPREFIX}user_setting` us1 USING (user_id)" . " LEFT JOIN `{$DBNAME}`.`{$TBLPREFIX}user_setting` us2 USING (user_id)" . " JOIN `{$DBNAME}`.`{$TBLPREFIX}user_setting` us3 USING (user_id)" . " WHERE us1.setting_name='firstname'" . " AND us2.setting_name='lastname'" . " AND us3.setting_name='email'")->execute();
} catch (PDOException $ex) {
// Ignore duplicates
示例14: transport
/**
* Create a transport mechanism for sending mail
*
* @return Zend_Mail_Transport_File|Zend_Mail_Transport_Smtp
*/
public static function transport()
{
switch (Site::getPreference('SMTP_ACTIVE')) {
case 'internal':
return new Zend_Mail_Transport_Sendmail();
case 'external':
$config = array('name' => Site::getPreference('SMTP_HELO'), 'port' => Site::getPreference('SMTP_PORT'));
if (Site::getPreference('SMTP_AUTH')) {
$config['auth'] = 'login';
$config['username'] = Site::getPreference('SMTP_AUTH_USER');
$config['password'] = Site::getPreference('SMTP_AUTH_PASS');
}
if (Site::getPreference('SMTP_SSL') !== 'none') {
$config['ssl'] = Site::getPreference('SMTP_SSL');
}
return new Zend_Mail_Transport_Smtp(Site::getPreference('SMTP_HOST'), $config);
default:
// For testing
return new Zend_Mail_Transport_File();
}
}
示例15:
<div class="label">
<?php
echo I18N::translate('Associates');
?>
</div>
<div class="value">
<input type="checkbox" name="showasso" value="on" <?php
echo $controller->showasso === 'on' ? 'checked' : '';
?>
>
<?php
echo I18N::translate('Show related individuals/families');
?>
</div>
<?php
if (count(Tree::getAll()) > 1 && Site::getPreference('ALLOW_CHANGE_GEDCOM')) {
?>
<?php
if (count(Tree::getAll()) > 3) {
?>
<div class="label"></div>
<div class="value">
<input type="button" value="<?php
echo I18N::translate('select all');
?>
" onclick="jQuery('#search_trees :checkbox').each(function(){jQuery(this).attr('checked', true);});return false;">
<input type="button" value="<?php
echo I18N::translate('select none');
?>
" onclick="jQuery('#search_trees :checkbox').each(function(){jQuery(this).attr('checked', false);});return false;">
<?php