当前位置: 首页>>代码示例>>PHP>>正文


PHP I18N::plural方法代码示例

本文整理汇总了PHP中Fisharebest\Webtrees\I18N::plural方法的典型用法代码示例。如果您正苦于以下问题:PHP I18N::plural方法的具体用法?PHP I18N::plural怎么用?PHP I18N::plural使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Fisharebest\Webtrees\I18N的用法示例。


在下文中一共展示了I18N::plural方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getAgeAtEvent

 /**
  * Convert a GEDCOM age string to localized text.
  *
  * @param string $age_string
  * @param bool $show_years
  *
  * @return string
  */
 public static function getAgeAtEvent($age_string, $show_years)
 {
     switch (strtoupper($age_string)) {
         case 'CHILD':
             return I18N::translate('Child');
         case 'INFANT':
             return I18N::translate('Infant');
         case 'STILLBORN':
             return I18N::translate('Stillborn');
         default:
             return preg_replace_callback(array('/(\\d+)([ymwd])/'), function ($match) use($age_string, $show_years) {
                 switch ($match[2]) {
                     case 'y':
                         if ($show_years || preg_match('/[dm]/', $age_string)) {
                             return I18N::plural('%s year', '%s years', $match[1], I18N::digits($match[1]));
                         } else {
                             return I18N::digits($match[1]);
                         }
                     case 'm':
                         return I18N::plural('%s month', '%s months', $match[1], I18N::digits($match[1]));
                     case 'w':
                         return I18N::plural('%s week', '%s weeks', $match[1], I18N::digits($match[1]));
                     case 'd':
                         return I18N::plural('%s day', '%s days', $match[1], I18N::digits($match[1]));
                 }
             }, $age_string);
     }
 }
开发者ID:pal-saugstad,项目名称:webtrees,代码行数:36,代码来源:FunctionsDate.php

示例2: 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 $WT_TREE;
     $id = $this->getName() . $block_id;
     $class = $this->getName() . '_block';
     $title = $this->getTitle();
     $anonymous = 0;
     $logged_in = array();
     $content = '';
     foreach (User::allLoggedIn() as $user) {
         if (Auth::isAdmin() || $user->getPreference('visibleonline')) {
             $logged_in[] = $user;
         } else {
             $anonymous++;
         }
     }
     $count_logged_in = count($logged_in);
     $content .= '<div class="logged_in_count">';
     if ($anonymous) {
         $content .= I18N::plural('%s anonymous signed-in user', '%s anonymous signed-in users', $anonymous, I18N::number($anonymous));
         if ($count_logged_in) {
             $content .= '&nbsp;|&nbsp;';
         }
     }
     if ($count_logged_in) {
         $content .= I18N::plural('%s signed-in user', '%s signed-in users', $count_logged_in, I18N::number($count_logged_in));
     }
     $content .= '</div>';
     $content .= '<div class="logged_in_list">';
     if (Auth::check()) {
         foreach ($logged_in as $user) {
             $individual = Individual::getInstance($WT_TREE->getUserPreference($user, 'gedcomid'), $WT_TREE);
             $content .= '<div class="logged_in_name">';
             if ($individual) {
                 $content .= '<a href="' . $individual->getHtmlUrl() . '">' . $user->getRealNameHtml() . '</a>';
             } else {
                 $content .= $user->getRealNameHtml();
             }
             $content .= ' - ' . Filter::escapeHtml($user->getUserName());
             if (Auth::id() != $user->getUserId() && $user->getPreference('contactmethod') != 'none') {
                 $content .= ' <a class="icon-email" href="#" onclick="return message(\'' . Filter::escapeHtml($user->getUserName()) . '\', \'\', \'' . Filter::escapeHtml(Functions::getQueryUrl()) . '\');" title="' . I18N::translate('Send a message') . '"></a>';
             }
             $content .= '</div>';
         }
     }
     $content .= '</div>';
     if ($anonymous === 0 && $count_logged_in === 0) {
         return '';
     }
     if ($template) {
         return Theme::theme()->formatBlock($id, $title, $class, $content);
     } else {
         return $content;
     }
 }
开发者ID:tronsmit,项目名称:webtrees,代码行数:64,代码来源:LoggedInUsersModule.php

示例3:

        echo I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 50, I18N::digits(1800), I18N::number(50));
        ?>
									</option>
									<option value="1900,1920,1940,1960,1980,1990,2000">
										<?php 
        echo I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 20, I18N::digits(1900), I18N::number(20));
        ?>
									</option>
									<option value="1900,1925,1950,1975,2000">
										<?php 
        echo I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 25, I18N::digits(1900), I18N::number(25));
        ?>
									</option>
									<option value="1940,1950,1960,1970,1980,1990,2000">
										<?php 
        echo I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 10, I18N::digits(1940), I18N::number(10));
        ?>
									</option>
								</select>
								<br>
								<br>
								<?php 
        echo I18N::translate('Results');
        ?>
								<br>
								<label>
									<input type="radio" name="y-as" value="201" checked>
									<?php 
        echo I18N::translate('numbers');
        ?>
								</label>
开发者ID:tronsmit,项目名称:webtrees,代码行数:31,代码来源:statistics.php

示例4: 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 $ctype, $WT_TREE;
        $num = $this->getBlockSetting($block_id, 'num', '10');
        $infoStyle = $this->getBlockSetting($block_id, 'infoStyle', 'table');
        $block = $this->getBlockSetting($block_id, 'block', '0');
        foreach (array('num', 'infoStyle', 'block') as $name) {
            if (array_key_exists($name, $cfg)) {
                ${$name} = $cfg[$name];
            }
        }
        $stats = new Stats($WT_TREE);
        $id = $this->getName() . $block_id;
        $class = $this->getName() . '_block';
        if ($ctype === 'gedcom' && Auth::isManager($WT_TREE) || $ctype === 'user' && Auth::check()) {
            $title = '<a class="icon-admin" title="' . I18N::translate('Configure') . '" href="block_edit.php?block_id=' . $block_id . '&amp;ged=' . $WT_TREE->getNameHtml() . '&amp;ctype=' . $ctype . '"></a>';
        } else {
            $title = '';
        }
        if ($num == 1) {
            // I18N: i.e. most popular given name.
            $title .= I18N::translate('Top given name');
        } else {
            // I18N: Title for a list of the most common given names, %s is a number. Note that a separate translation exists when %s is 1
            $title .= I18N::plural('Top %s given name', 'Top %s given names', $num, I18N::number($num));
        }
        $content = '<div class="normal_inner_block">';
        //Select List or Table
        switch ($infoStyle) {
            case "list":
                // Output style 1:  Simple list style. Better suited to left side of page.
                if (I18N::direction() === 'ltr') {
                    $padding = 'padding-left: 15px';
                } else {
                    $padding = 'padding-right: 15px';
                }
                $params = array(1, $num, 'rcount');
                // List Female names
                $totals = $stats->commonGivenFemaleTotals($params);
                if ($totals) {
                    $content .= '<b>' . I18N::translate('Females') . '</b><div class="wrap" style="' . $padding . '">' . $totals . '</div><br>';
                }
                // List Male names
                $totals = $stats->commonGivenMaleTotals($params);
                if ($totals) {
                    $content .= '<b>' . I18N::translate('Males') . '</b><div class="wrap" style="' . $padding . '">' . $totals . '</div><br>';
                }
                break;
            case "table":
                // Style 2: Tabular format. Narrow, 2 or 3 column table, good on right side of page
                $params = array(1, $num, 'rcount');
                $content .= '<table style="margin:auto;">
						<tr valign="top">
						<td>' . $stats->commonGivenFemaleTable($params) . '</td>
						<td>' . $stats->commonGivenMaleTable($params) . '</td>';
                $content .= '</tr></table>';
                break;
        }
        $content .= "</div>";
        if ($template) {
            if ($block) {
                $class .= ' small_inner_block';
            }
            return Theme::theme()->formatBlock($id, $title, $class, $content);
        } else {
            return $content;
        }
    }
开发者ID:pal-saugstad,项目名称:webtrees,代码行数:77,代码来源:TopGivenNamesModule.php

示例5: usersLoggedInQuery

 /**
  * Who is currently logged in?
  *
  * @param string $type
  *
  * @return string
  */
 private function usersLoggedInQuery($type = 'nolist')
 {
     $content = '';
     // List active users
     $NumAnonymous = 0;
     $loggedusers = array();
     foreach (User::allLoggedIn() as $user) {
         if (Auth::isAdmin() || $user->getPreference('visibleonline')) {
             $loggedusers[] = $user;
         } else {
             $NumAnonymous++;
         }
     }
     $LoginUsers = count($loggedusers);
     if ($LoginUsers == 0 && $NumAnonymous == 0) {
         return I18N::translate('No logged-in and no anonymous users');
     }
     if ($NumAnonymous > 0) {
         $content .= '<b>' . I18N::plural('%s anonymous logged-in user', '%s anonymous logged-in users', $NumAnonymous, I18N::number($NumAnonymous)) . '</b>';
     }
     if ($LoginUsers > 0) {
         if ($NumAnonymous) {
             if ($type == 'list') {
                 $content .= "<br><br>";
             } else {
                 $content .= " " . I18N::translate('and') . " ";
             }
         }
         $content .= '<b>' . I18N::plural('%s logged-in user', '%s logged-in users', $LoginUsers, I18N::number($LoginUsers)) . '</b>';
         if ($type == 'list') {
             $content .= '<ul>';
         } else {
             $content .= ': ';
         }
     }
     if (Auth::check()) {
         foreach ($loggedusers as $user) {
             if ($type == 'list') {
                 $content .= '<li>' . Filter::escapeHtml($user->getRealName()) . ' - ' . Filter::escapeHtml($user->getUserName());
             } else {
                 $content .= Filter::escapeHtml($user->getRealName()) . ' - ' . Filter::escapeHtml($user->getUserName());
             }
             if (Auth::id() != $user->getUserId() && $user->getPreference('contactmethod') != 'none') {
                 if ($type == 'list') {
                     $content .= '<br><a class="icon-email" href="#" onclick="return message(\'' . $user->getUserId() . '\', \'\', \'' . Filter::escapeJs(Functions::getQueryUrl()) . '\');" title="' . I18N::translate('Send a message') . '"></a>';
                 } else {
                     $content .= ' <a class="icon-email" href="#" onclick="return message(\'' . $user->getUserId() . '\', \'\', \'' . Filter::escapeJs(Functions::getQueryUrl()) . '\');" title="' . I18N::translate('Send a message') . '"></a>';
                 }
             }
             if ($type == 'list') {
                 $content .= '</li>';
             }
         }
     }
     if ($type == 'list') {
         $content .= '</ul>';
     }
     return $content;
 }
开发者ID:AlexSnet,项目名称:webtrees,代码行数:66,代码来源:Stats.php

示例6: pedigreeMap


//.........这里部分代码省略.........
                if ($name == I18N::translate('Private')) {
                    $priv++;
                }
                $place = $person->getBirthPlace();
                if (empty($place)) {
                    $latlongval[$i] = null;
                } else {
                    $latlongval[$i] = $this->getLatitudeAndLongitudeFromPlaceLocation($person->getBirthPlace());
                }
                if ($latlongval[$i]) {
                    $lat[$i] = str_replace(array('N', 'S', ','), array('', '-', '.'), $latlongval[$i]->pl_lati);
                    $lon[$i] = str_replace(array('E', 'W', ','), array('', '-', '.'), $latlongval[$i]->pl_long);
                    if ($lat[$i] && $lon[$i]) {
                        $count++;
                    } else {
                        // The place is in the table but has empty values
                        if ($name) {
                            if ($missing) {
                                $missing .= ', ';
                            }
                            $missing .= '<a href="' . $person->getHtmlUrl() . '">' . $name . '</a>';
                            $miscount++;
                        }
                    }
                } else {
                    // There was no place, or not listed in the map table
                    if ($name) {
                        if ($missing) {
                            $missing .= ', ';
                        }
                        $missing .= '<a href="' . $person->getHtmlUrl() . '">' . $name . '</a>';
                        $miscount++;
                    }
                }
            }
        }
        //<!-- end of count records by type -->
        //<!-- start of map display -->
        echo '<div id="pedigreemap_chart">';
        echo '<table class="tabs_table" cellspacing="0" cellpadding="0" border="0" width="100%">';
        echo '<tr>';
        echo '<td valign="top">';
        echo '<div id="pm_map" style="border: 1px solid gray; height: ', $this->getSetting('GM_YSIZE'), 'px; font-size: 0.9em;';
        echo '"><i class="icon-loading-large"></i></div>';
        if (Auth::isAdmin()) {
            echo '<table width="100%">';
            echo '<tr><td align="left">';
            echo '<a href="module.php?mod=googlemap&amp;mod_action=admin_config">', I18N::translate('Google Maps™ preferences'), '</a>';
            echo '</td>';
            echo '<td align="center">';
            echo '<a href="module.php?mod=googlemap&amp;mod_action=admin_places">', I18N::translate('Geographic data'), '</a>';
            echo '</td>';
            echo '<td align="right">';
            echo '<a href="module.php?mod=googlemap&amp;mod_action=admin_placecheck">', I18N::translate('Place check'), '</a>';
            echo '</td></tr>';
            echo '</table>';
        }
        echo '</td><td width="15px"></td>';
        echo '<td width="310px" valign="top">';
        echo '<div id="side_bar" style="width:300px; font-size:0.9em; overflow:auto; overflow-x:hidden; overflow-y:auto; height:', $this->getSetting('GM_YSIZE'), 'px;"></div></td>';
        echo '</tr>';
        echo '</table>';
        // display info under map
        echo '<hr>';
        echo '<table cellspacing="0" cellpadding="0" border="0" width="100%">';
        echo '<tr>';
        echo '<td valign="top">';
        // print summary statistics
        if (isset($curgen)) {
            $total = pow(2, $curgen) - 1;
            echo I18N::plural('%1$s individual displayed, out of the normal total of %2$s, from %3$s generations.', '%1$s individuals displayed, out of the normal total of %2$s, from %3$s generations.', $count, I18N::number($count), I18N::number($total), I18N::number($curgen)), '<br>';
            echo '</td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td valign="top">';
            if ($priv) {
                echo I18N::plural('%s individual is private.', '%s individuals are private.', $priv, $priv), '<br>';
            }
            if ($count + $priv != $total) {
                if ($miscount == 0) {
                    echo I18N::translate('No ancestors in the database.'), "<br>";
                } else {
                    echo I18N::plural('%1$s individual is missing birthplace map coordinates: %2$s.', '%1$s individuals are missing birthplace map coordinates: %2$s.', $miscount, I18N::number($miscount), $missing), '<br>';
                }
            }
        }
        echo '</td>';
        echo '</tr>';
        echo '</table>';
        echo '</div>';
        // close #pedigreemap_chart
        echo '</div>';
        // close #pedigreemap-page
        ?>
		<!-- end of map display -->
		<!-- Start of map scripts -->
		<?php 
        echo '<script src="', $this->googleMapsScript(), '"></script>';
        $controller->addInlineJavascript($this->pedigreeMapJavascript());
    }
开发者ID:bxbroze,项目名称:webtrees,代码行数:101,代码来源:GoogleMapsModule.php

示例7:

		<label for="MAX_EXECUTION_TIME" class="col-sm-3 control-label">
			<?php 
    echo I18N::translate('PHP time limit');
    ?>
		</label>
		<div class="col-sm-9">
			<input type="text" class="form-control" id="MAX_EXECUTION_TIME" name="MAX_EXECUTION_TIME" value="<?php 
    echo Filter::escapeHtml(Site::getPreference('MAX_EXECUTION_TIME'));
    ?>
" pattern="[0-9]*" placeholder="<?php 
    echo get_cfg_var('max_execution_time');
    ?>
" maxlength="255">
			<p class="small text-muted">
				<?php 
    echo I18N::plural('By default, your server allows scripts to run for %s second.', 'By default, your server allows scripts to run for %s seconds.', get_cfg_var('max_execution_time'), I18N::number(get_cfg_var('max_execution_time')));
    ?>
				<?php 
    echo I18N::translate('You can request a higher or lower limit, although the server may ignore this request.');
    ?>
				<?php 
    echo I18N::translate('If you leave this setting empty, the default value will be used.');
    ?>
			</p>
		</div>
	</div>

	<!-- TIMEZONE -->
	<div class="form-group">
		<label for="TIMEZONE" class="col-sm-3 control-label">
			<?php 
开发者ID:AlexSnet,项目名称:webtrees,代码行数:31,代码来源:admin_site_config.php

示例8: catch

        try {
            Database::prepare("UPDATE `##favorite` SET xref = ? WHERE xref = ? AND gedcom_id = ?")->execute(array($new_xref, $old_xref, $WT_TREE->getTreeId()));
        } catch (\Exception $ex) {
            // Perhaps the favorites module was not installed?
        }
        // How much time do we have left?
        if (microtime(true) - WT_START_TIME > ini_get('max_execution_time') - 2) {
            echo '<p>', I18N::translate('The server’s time limit has been reached.'), '</p>';
            break;
        }
    }
    if ($xrefs) {
    }
} else {
    echo '<p>', I18N::translate('In a family tree, each record has an internal reference number (called an “XREF”) such as “F123” or “R14”.'), '</p>';
    echo '<p>', I18N::translate('You can renumber the records in a family tree, so that these internal reference numbers are not duplicated in any other family tree.'), '</p>';
}
echo '<p>', I18N::plural('This family tree has %s record which uses the same “XREF” as another family tree.', 'This family tree has %s records which use the same “XREF” as another family tree.', count($xrefs), count($xrefs)), '</p>';
if ($xrefs) {
    // We use GET (not POST) for this update operation - because we want the user to
    // be able to press F5 to continue after a timeout.
    echo '<form>';
    echo '<p>', I18N::translate('You can renumber this family tree.'), '</p>';
    echo '<button type="submit" class="btn btn-primary">';
    echo '<i class="fa fa-check"></i> ', I18N::translate('continue');
    echo '</button>';
    echo '<input type="hidden" name="action" value="renumber">';
    echo '<input type="hidden" name="ged" value="', $WT_TREE->getNameHtml(), '">';
    echo '</form>';
    echo '<p>', I18N::translate('Caution! This may take a long time. Be patient.'), '</p>';
}
开发者ID:tronsmit,项目名称:webtrees,代码行数:31,代码来源:admin_trees_renumber.php

示例9: 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 $ctype, $WT_TREE;
     $block = $this->getBlockSetting($block_id, 'block', '1');
     foreach (array('block') as $name) {
         if (array_key_exists($name, $cfg)) {
             ${$name} = $cfg[$name];
         }
     }
     $messages = Database::prepare("SELECT message_id, sender, subject, body, UNIX_TIMESTAMP(created) AS created FROM `##message` WHERE user_id=? ORDER BY message_id DESC")->execute(array(Auth::id()))->fetchAll();
     $count = count($messages);
     $id = $this->getName() . $block_id;
     $class = $this->getName() . '_block';
     $title = I18N::plural('%s message', '%s messages', $count, I18N::number($count));
     $users = array_filter(User::all(), function (User $user) {
         return $user->getUserId() !== Auth::id() && $user->getPreference('verified_by_admin') && $user->getPreference('contactmethod') !== 'none';
     });
     $content = '<form id="messageform" name="messageform" method="post" action="module.php?mod=user_messages&mod_action=delete" onsubmit="return confirm(\'' . I18N::translate('Are you sure you want to delete this message?  It cannot be retrieved later.') . '\');">';
     $content .= '<input type="hidden" name="ged" value="' . $ctype . '">';
     $content .= '<input type="hidden" name="ctype" value="' . $WT_TREE->getNameHtml() . '">';
     if ($users) {
         $content .= '<label for="touser">' . I18N::translate('Send a message') . '</label>';
         $content .= '<select id="touser" name="touser">';
         $content .= '<option value="">' . I18N::translate('&lt;select&gt;') . '</option>';
         foreach ($users as $user) {
             $content .= sprintf('<option value="%1$s">%2$s - %1$s</option>', Filter::escapeHtml($user->getUserName()), Filter::escapeHtml($user->getRealName()));
         }
         $content .= '</select>';
         $content .= '<input type="button" value="' . I18N::translate('Send') . '" onclick="return message(document.messageform.touser.options[document.messageform.touser.selectedIndex].value, \'messaging2\', \'\');"><br><br>';
     }
     if ($messages) {
         $content .= '<table class="list_table"><tr>';
         $content .= '<th class="list_label">' . I18N::translate('Delete') . '<br><a href="#" onclick="jQuery(\'#' . $this->getName() . $block_id . ' :checkbox\').prop(\'checked\', true); return false;">' . I18N::translate('All') . '</a></th>';
         $content .= '<th class="list_label">' . I18N::translate('Subject') . '</th>';
         $content .= '<th class="list_label">' . I18N::translate('Date sent') . '</th>';
         $content .= '<th class="list_label">' . I18N::translate('Email address') . '</th>';
         $content .= '</tr>';
         foreach ($messages as $message) {
             $content .= '<tr>';
             $content .= '<td class="list_value_wrap"><input type="checkbox" name="message_id[]" value="' . $message->message_id . '" id="cb_message' . $message->message_id . '"></td>';
             $content .= '<td class="list_value_wrap"><a href="#" onclick="return expand_layer(\'message' . $message->message_id . '\');"><i id="message' . $message->message_id . '_img" class="icon-plus"></i> <b dir="auto">' . Filter::escapeHtml($message->subject) . '</b></a></td>';
             $content .= '<td class="list_value_wrap">' . FunctionsDate::formatTimestamp($message->created + WT_TIMESTAMP_OFFSET) . '</td>';
             $content .= '<td class="list_value_wrap">';
             $user = User::findByIdentifier($message->sender);
             if ($user) {
                 $content .= $user->getRealNameHtml();
                 $content .= '  - <span dir="auto">' . $user->getEmail() . '</span>';
             } else {
                 $content .= '<a href="mailto:' . Filter::escapeHtml($message->sender) . '">' . Filter::escapeHtml($message->sender) . '</a>';
             }
             $content .= '</td>';
             $content .= '</tr>';
             $content .= '<tr><td class="list_value_wrap" colspan="4"><div id="message' . $message->message_id . '" style="display:none;">';
             $content .= '<div dir="auto" style="white-space: pre-wrap;">' . Filter::expandUrls($message->body) . '</div><br>';
             if (strpos($message->subject, I18N::translate('RE: ')) !== 0) {
                 $message->subject = I18N::translate('RE: ') . $message->subject;
             }
             if ($user) {
                 $content .= '<button type="button" onclick="reply(\'' . Filter::escapeJs($message->sender) . '\', \'' . Filter::escapeJs($message->subject) . '\'); return false;">' . I18N::translate('Reply') . '</button> ';
             }
             $content .= '<button type="button" onclick="if (confirm(\'' . I18N::translate('Are you sure you want to delete this message?  It cannot be retrieved later.') . '\')) {jQuery(\'#messageform :checkbox\').prop(\'checked\', false); jQuery(\'#cb_message' . $message->message_id . '\').prop(\'checked\', true); document.messageform.submit();}">' . I18N::translate('Delete') . '</button></div></td></tr>';
         }
         $content .= '</table>';
         $content .= '<p><button type="submit">' . I18N::translate('Delete selected messages') . '</button></p>';
     }
     $content .= '</form>';
     if ($template) {
         if ($block) {
             $class .= ' small_inner_block';
         }
         return Theme::theme()->formatBlock($id, $title, $class, $content);
     } else {
         return $content;
     }
 }
开发者ID:tunandras,项目名称:webtrees,代码行数:84,代码来源:UserMessagesModule.php

示例10: copy

    copy('app/GedcomTag.php', WT_DATA_DIR . 'GedcomTag' . date('-Y-m-d') . '.php');
} catch (\ErrorException $ex) {
    // No problem if we cannot do this.
}
reset_timeout();
$start_time = microtime(true);
$res = $archive->extract(\PCLZIP_OPT_PATH, WT_ROOT, \PCLZIP_OPT_REMOVE_PATH, 'webtrees', \PCLZIP_OPT_REPLACE_NEWER);
$end_time = microtime(true);
if (is_array($res)) {
    foreach ($res as $result) {
        // Note that most of the folders will already exist, so it is not an error if we cannot create them
        if ($result['status'] != 'ok' && !substr($result['filename'], -1) == '/') {
            echo '<br>', I18N::translate('The file %s could not be created.', Html::filename($result['filename'])), $icon_failure;
        }
    }
    echo '<br>', I18N::plural('%1$s file was extracted in %2$s seconds.', '%1$s files were extracted in %2$s seconds.', count($res), count($res), I18N::number($end_time - $start_time, 2)), $icon_success;
} else {
    echo '<br>', I18N::translate('An error occurred when unzipping the file.'), $icon_failure;
    echo '</li></ul></form>';
    return;
}
echo '</li>';
////////////////////////////////////////////////////////////////////////////////
// All done - put the site back online
////////////////////////////////////////////////////////////////////////////////
echo '<li>', I18N::translate('Place the website online, by deleting the file %s…', Html::filename($lock_file));
if (File::delete($lock_file)) {
    echo '<br>', I18N::translate('The file %s has been deleted.', Html::filename($lock_file)), $icon_success;
} else {
    echo '<br>', I18N::translate('The file %s could not be deleted.', Html::filename($lock_file)), $icon_failure;
}
开发者ID:pal-saugstad,项目名称:webtrees,代码行数:31,代码来源:admin_site_upgrade.php

示例11: configureBlock

 /**
  * An HTML form to edit block settings
  *
  * @param int $block_id
  */
 public function configureBlock($block_id)
 {
     if (Filter::postBool('save') && Filter::checkCsrf()) {
         $this->setBlockSetting($block_id, 'days', Filter::postInteger('days', 1, 30, 7));
         $this->setBlockSetting($block_id, 'filter', Filter::postBool('filter'));
         $this->setBlockSetting($block_id, 'onlyBDM', Filter::postBool('onlyBDM'));
         $this->setBlockSetting($block_id, 'infoStyle', Filter::post('infoStyle', 'list|table', 'table'));
         $this->setBlockSetting($block_id, 'sortStyle', Filter::post('sortStyle', 'alpha|anniv', 'alpha'));
         $this->setBlockSetting($block_id, 'block', Filter::postBool('block'));
     }
     $days = $this->getBlockSetting($block_id, 'days', '7');
     $filter = $this->getBlockSetting($block_id, 'filter', '1');
     $onlyBDM = $this->getBlockSetting($block_id, 'onlyBDM', '0');
     $infoStyle = $this->getBlockSetting($block_id, 'infoStyle', 'table');
     $sortStyle = $this->getBlockSetting($block_id, 'sortStyle', 'alpha');
     $block = $this->getBlockSetting($block_id, 'block', '1');
     echo '<tr><td class="descriptionbox wrap width33">';
     echo I18N::translate('Number of days to show');
     echo '</td><td class="optionbox">';
     echo '<input type="text" name="days" size="2" value="', $days, '">';
     echo ' <em>', I18N::plural('maximum %s day', 'maximum %s days', 30, I18N::number(30)), '</em>';
     echo '</td></tr>';
     echo '<tr><td class="descriptionbox wrap width33">';
     echo I18N::translate('Show only events of living individuals');
     echo '</td><td class="optionbox">';
     echo FunctionsEdit::editFieldYesNo('filter', $filter);
     echo '</td></tr>';
     echo '<tr><td class="descriptionbox wrap width33">';
     echo I18N::translate('Show only births, deaths, and marriages');
     echo '</td><td class="optionbox">';
     echo FunctionsEdit::editFieldYesNo('onlyBDM', $onlyBDM);
     echo '</td></tr>';
     echo '<tr><td class="descriptionbox wrap width33">';
     echo I18N::translate('Presentation style');
     echo '</td><td class="optionbox">';
     echo FunctionsEdit::selectEditControl('infoStyle', array('list' => I18N::translate('list'), 'table' => I18N::translate('table')), null, $infoStyle, '');
     echo '</td></tr>';
     echo '<tr><td class="descriptionbox wrap width33">';
     echo I18N::translate('Sort order');
     echo '</td><td class="optionbox">';
     echo FunctionsEdit::selectEditControl('sortStyle', array('alpha' => I18N::translate('sort by name'), 'anniv' => I18N::translate('sort by date')), null, $sortStyle, '');
     echo '</td></tr>';
     echo '<tr><td class="descriptionbox wrap width33">';
     echo I18N::translate('Add a scrollbar when block contents grow');
     echo '</td><td class="optionbox">';
     echo FunctionsEdit::editFieldYesNo('block', $block);
     echo '</td></tr>';
 }
开发者ID:tronsmit,项目名称:webtrees,代码行数:53,代码来源:UpcomingAnniversariesModule.php

示例12: eventsList

 /**
  * Print a list of events
  *
  * This performs the same function as print_events_table(), but formats the output differently.
  *
  * @param int $startjd
  * @param int $endjd
  * @param string $events
  * @param bool $only_living
  * @param string $sort_by
  *
  * @return string
  */
 public static function eventsList($startjd, $endjd, $events = 'BIRT MARR DEAT', $only_living = false, $sort_by = 'anniv')
 {
     global $WT_TREE;
     // Did we have any output?  Did we skip anything?
     $output = 0;
     $filter = 0;
     $filtered_events = array();
     $html = '';
     foreach (FunctionsDb::getEventsList($startjd, $endjd, $events, $WT_TREE) as $fact) {
         $record = $fact->getParent();
         //-- only living people ?
         if ($only_living) {
             if ($record instanceof Individual && $record->isDead()) {
                 $filter++;
                 continue;
             }
             if ($record instanceof Family) {
                 $husb = $record->getHusband();
                 if (is_null($husb) || $husb->isDead()) {
                     $filter++;
                     continue;
                 }
                 $wife = $record->getWife();
                 if (is_null($wife) || $wife->isDead()) {
                     $filter++;
                     continue;
                 }
             }
         }
         $output++;
         $filtered_events[] = $fact;
     }
     // Now we've filtered the list, we can sort by event, if required
     switch ($sort_by) {
         case 'anniv':
             // Data is already sorted by anniversary date
             break;
         case 'alpha':
             uasort($filtered_events, function (Fact $x, Fact $y) {
                 return GedcomRecord::compare($x->getParent(), $y->getParent());
             });
             break;
     }
     foreach ($filtered_events as $fact) {
         $record = $fact->getParent();
         $html .= '<a href="' . $record->getHtmlUrl() . '" class="list_item name2">' . $record->getFullName() . '</a>';
         if ($record instanceof Individual) {
             $html .= $record->getSexImage();
         }
         $html .= '<br><div class="indent">';
         $html .= $fact->getLabel() . ' — ' . $fact->getDate()->display(true);
         if ($fact->anniv) {
             $html .= ' (' . I18N::translate('%s year anniversary', I18N::number($fact->anniv)) . ')';
         }
         if (!$fact->getPlace()->isEmpty()) {
             $html .= ' — <a href="' . $fact->getPlace()->getURL() . '">' . $fact->getPlace()->getFullName() . '</a>';
         }
         $html .= '</div>';
     }
     // Print a final summary message about restricted/filtered facts
     $summary = '';
     if ($endjd == WT_CLIENT_JD) {
         // We're dealing with the Today’s Events block
         if ($output == 0) {
             if ($filter == 0) {
                 $summary = I18N::translate('No events exist for today.');
             } else {
                 $summary = I18N::translate('No events for living individuals exist for today.');
             }
         }
     } else {
         // We're dealing with the Upcoming Events block
         if ($output == 0) {
             if ($filter == 0) {
                 if ($endjd == $startjd) {
                     $summary = I18N::translate('No events exist for tomorrow.');
                 } else {
                     // I18N: translation for %s==1 is unused; it is translated separately as “tomorrow”
                     $summary = I18N::plural('No events exist for the next %s day.', 'No events exist for the next %s days.', $endjd - $startjd + 1, I18N::number($endjd - $startjd + 1));
                 }
             } else {
                 if ($endjd == $startjd) {
                     $summary = I18N::translate('No events for living individuals exist for tomorrow.');
                 } else {
                     // I18N: translation for %s==1 is unused; it is translated separately as “tomorrow”
                     $summary = I18N::plural('No events for living people exist for the next %s day.', 'No events for living people exist for the next %s days.', $endjd - $startjd + 1, I18N::number($endjd - $startjd + 1));
                 }
//.........这里部分代码省略.........
开发者ID:tunandras,项目名称:webtrees,代码行数:101,代码来源:FunctionsPrintLists.php

示例13: statusHide

        echo " onclick=\"statusDisable('z-axis-boundaries-periods');";
        echo '"><label for="z_none">', I18N::translate('overall'), '</label><br>';
        echo '<input type="radio" id="z_sex" name="z-as" value="301" ';
        echo " onclick=\"statusDisable('z-axis-boundaries-periods');";
        echo '"><label for="z_sex">', I18N::translate('gender'), '</label><br>';
        echo '<input type="radio" id="z_time" name="z-as" value="302" checked';
        echo " onclick=\"statusEnable('z-axis-boundaries-periods');";
        echo '"><label for="z_time">', I18N::translate('date periods'), '</label><br><br>';
        echo I18N::translate('Date range'), '<br>';
        echo '<select id="z-axis-boundaries-periods" name="z-axis-boundaries-periods">
				<option value="1700,1750,1800,1850,1900,1950,2000" selected>', I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 50, I18N::digits(1700), I18N::number(50)), '</option>
				<option value="1800,1840,1880,1920,1950,1970,2000">', I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 40, I18N::digits(1800), I18N::number(40)), '</option>
				<option value="1800,1850,1900,1950,2000">', I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 50, I18N::digits(1800), I18N::number(50)), '</option>
				<option value="1900,1920,1940,1960,1980,1990,2000">', I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 20, I18N::digits(1900), I18N::number(20)), '</option>
				<option value="1900,1925,1950,1975,2000">', I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 25, I18N::digits(1900), I18N::number(25)), '</option>
				<option value="1940,1950,1960,1970,1980,1990,2000">', I18N::plural('from %1$s interval %2$s year', 'from %1$s interval %2$s years', 10, I18N::digits(1940), I18N::number(10)), '</option>
			</select>
			<br><br>';
        echo I18N::translate('Results'), '<br>';
        echo '<input type="radio" id="y_num" name="y-as" value="201" checked';
        echo '><label for="y_num">', I18N::translate('numbers'), '</label><br>';
        echo '<input type="radio" id="y_perc" name="y-as" value="202" ';
        echo '><label for="y_perc">', I18N::translate('percentage'), '</label><br>';
        echo '</td>
			</tr>
			</table>
			<table width="100%">
			<tr align="center"><td>
				<br>
				<input type="submit" value="', I18N::translate('show the plot'), ' ">
				<input type="reset"  value=" ', I18N::translate('reset'), ' " onclick="{statusEnable(\'z_sex\'); statusHide(\'x_years\'); statusHide(\'x_months\'); statusHide(\'x_numbers\'); statusHide(\'map_opt\');}"><br>
开发者ID:tunandras,项目名称:webtrees,代码行数:31,代码来源:statistics.php

示例14: renderContent

    /**
     * {@inhericDoc}
     * @see \MyArtJaub\Webtrees\Mvc\View\AbstractView::renderContent()
     */
    protected function renderContent()
    {
        ?>
                
        <div id="maj-sosa-stats-page">
			<h2><?php 
        echo $this->data->get('title');
        ?>
</h2>
			
			<?php 
        /** @var \Fisharebest\Webtrees\Individual $root_indi */
        $root_indi = $this->data->get('root_indi');
        if ($root_indi !== null && $root_indi->canShowName()) {
            ?>
			<h4 class="center"><?php 
            echo I18N::translate('%s: %s', I18N::translate('Root individual'), $root_indi->getFullName());
            ?>
<h4>
			<?php 
        }
        ?>
			
			<?php 
        if ($this->data->get('is_setup')) {
            $general_stats = $this->data->get('general_stats');
            ?>
			<h3><?php 
            echo I18N::translate('General statistics');
            ?>
</h3>
			<div class="maj-table">
				<div class="maj-row">
					<div class="label"><?php 
            echo I18N::translate('Number of ancestors');
            ?>
</div>
					<div class="value"><?php 
            echo I18N::number($general_stats['sosa_count']);
            ?>
</div>
				</div>
				<div class="maj-row">
					<div class="label"><?php 
            echo I18N::translate('Number of different ancestors');
            ?>
</div>
					<div class="value"><?php 
            echo I18N::number($general_stats['distinct_count']);
            ?>
</div>
				</div>
				<div class="maj-row">
					<div class="label"><?php 
            echo I18N::translate('%% of ancestors in the base');
            ?>
</div>
					<div class="value"><?php 
            echo I18N::percentage($general_stats['sosa_rate'], 1);
            ?>
</div>
				</div>
				<div class="maj-row">
					<div class="label"><?php 
            echo I18N::translate('Pedigree collapse');
            ?>
</div>
					<div class="value"><?php 
            echo I18N::percentage($general_stats['pedi_collapse'], 2);
            ?>
</div>
				</div>
				<div class="maj-row">
					<div class="label"><?php 
            echo I18N::translate('Mean generation time');
            ?>
</div>
					<div class="value"><?php 
            echo I18N::plural('%s year', '%s years', $general_stats['mean_gen_time'], I18N::number($general_stats['mean_gen_time'], 1));
            ?>
</div>
				</div>
			</div>
			
			<h3><?php 
            echo I18N::translate('Statistics by generations');
            ?>
</h3>
			<table class="maj-table">
				<thead>
					<tr class="maj-row">
						<th class="label" colspan="2" >&nbsp;</th>
						<th class="label help_tooltip" title="<?php 
            echo I18N::translate('Theoretical number of ancestors in generation G.');
            ?>
">
//.........这里部分代码省略.........
开发者ID:jon48,项目名称:webtrees-lib,代码行数:101,代码来源:SosaStatsView.php

示例15: pedigreeMap


//.........这里部分代码省略.........
        for ($p = 3; $p <= $MAX_PEDIGREE_GENERATIONS; $p++) {
            echo '<option value="', $p, '" ';
            if ($p == $generations) {
                echo 'selected';
            }
            echo '>', $p, '</option>';
        }
        ?>
						</select>
					</td>
				</tr>
			</table>
		</form>
		<!-- end of form -->

		<!-- count records by type -->
		<?php 
        $curgen = 1;
        $priv = 0;
        $count = 0;
        $miscount = 0;
        $missing = array();
        $latlongval = array();
        $lat = array();
        $lon = array();
        for ($i = 0; $i < $this->treesize; $i++) {
            // -- check to see if we have moved to the next generation
            if ($i + 1 >= pow(2, $curgen)) {
                $curgen++;
            }
            $person = $this->ancestors[$i];
            if (!empty($person)) {
                $name = $person->getFullName();
                if ($name == I18N::translate('Private')) {
                    $priv++;
                }
                $place = $person->getBirthPlace();
                if (empty($place)) {
                    $latlongval[$i] = null;
                } else {
                    $latlongval[$i] = $this->getLatitudeAndLongitudeFromPlaceLocation($person->getBirthPlace());
                }
                if ($latlongval[$i]) {
                    $lat[$i] = strtr($latlongval[$i]->pl_lati, array('N' => '', 'S' => '-', ',' => '.'));
                    $lon[$i] = strtr($latlongval[$i]->pl_long, array('N' => '', 'S' => '-', ',' => '.'));
                    if ($lat[$i] && $lon[$i]) {
                        $count++;
                    } else {
                        // The place is in the table but has empty values
                        if ($name) {
                            $missing[] = '<a href="' . $person->getHtmlUrl() . '">' . $name . '</a>';
                            $miscount++;
                        }
                    }
                } else {
                    // There was no place, or not listed in the map table
                    if ($name) {
                        $missing[] = '<a href="' . $person->getHtmlUrl() . '">' . $name . '</a>';
                        $miscount++;
                    }
                }
            }
        }
        //<!-- end of count records by type -->
        //<!-- start of map display -->
        echo '<div class="gm-pedigree-map">';
        echo '<div class="gm-wrapper">';
        echo '<div class="gm-map"><i class="icon-loading-large"></i></div>';
        echo '<div class="gm-ancestors"></div>';
        echo '</div>';
        if (Auth::isAdmin()) {
            echo '<div class="gm-options noprint">';
            echo '<a href="module.php?mod=' . $this->getName() . '&amp;mod_action=admin_config">' . I18N::translate('Google Maps™ preferences') . '</a>';
            echo ' | <a href="module.php?mod=' . $this->getName() . '&amp;mod_action=admin_places">' . I18N::translate('Geographic data') . '</a>';
            echo ' | <a href="module.php?mod=' . $this->getName() . '&amp;mod_action=admin_placecheck">' . I18N::translate('Place check') . '</a>';
            echo '</div>';
        }
        // display info under map
        echo '<hr>';
        // print summary statistics
        if (isset($curgen)) {
            $total = pow(2, $curgen) - 1;
            echo '<div>';
            echo I18N::plural('%1$s individual displayed, out of the normal total of %2$s, from %3$s generations.', '%1$s individuals displayed, out of the normal total of %2$s, from %3$s generations.', $count, I18N::number($count), I18N::number($total), I18N::number($curgen));
            echo '</div>';
            if ($priv) {
                echo '<div>' . I18N::plural('%s individual is private.', '%s individuals are private.', $priv, $priv), '</div>';
            }
            if ($count + $priv != $total) {
                if ($miscount == 0) {
                    echo '<div>' . I18N::translate('No ancestors in the database.'), '</div>';
                } else {
                    echo '<div>' . I18N::plural('%1$s individual is missing birthplace map coordinates: %2$s.', '%1$s individuals are missing birthplace map coordinates: %2$s.', $miscount, I18N::number($miscount), implode(I18N::$list_separator, $missing)), '</div>';
                }
            }
        }
        echo '</div>';
        echo '</div>';
        echo '<script src="', $this->googleMapsScript(), '"></script>';
    }
开发者ID:tronsmit,项目名称:webtrees,代码行数:101,代码来源:GoogleMapsModule.php


注:本文中的Fisharebest\Webtrees\I18N::plural方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。