本文整理汇总了PHP中Horde_Themes类的典型用法代码示例。如果您正苦于以下问题:PHP Horde_Themes类的具体用法?PHP Horde_Themes怎么用?PHP Horde_Themes使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Horde_Themes类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _content
/**
*/
protected function _content()
{
global $registry, $prefs;
if (!empty($this->_params['show_notepad'])) {
$shares = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Share')->create();
}
$html = '';
$memos = Mnemo::listMemos($prefs->getValue('sortby'), $prefs->getValue('sortdir'));
foreach ($memos as $id => $memo) {
$html .= '<tr>';
if (!empty($this->_params['show_actions'])) {
$editImg = Horde_Themes::img('edit.png');
$editurl = Horde::url('memo.php')->add(array('memo' => $memo['memo_id'], 'memolist' => $memo['memolist_id']));
$html .= '<td width="1%">' . Horde::link(htmlspecialchars(Horde::url($editurl, true)->add('actionID', 'modify_memo')), _("Edit Note")) . Horde::img($editImg, _("Edit Note")) . '</a></td>';
}
if (!empty($this->_params['show_notepad'])) {
$html .= '<td>' . htmlspecialchars(Mnemo::getLabel($shares->getShare($memo['memolist_id']))) . '</td>';
}
$viewurl = Horde::url('view.php')->add(array('memo' => $memo['memo_id'], 'memolist' => $memo['memolist_id']));
$html .= '<td>' . Horde::linkTooltip(htmlspecialchars(Horde::url($viewurl, true)), '', '', '', '', $memo['body'] != $memo['desc'] ? Mnemo::getNotePreview($memo) : '') . (strlen($memo['desc']) ? htmlspecialchars($memo['desc']) : '<em>' . _("Empty Note") . '</em>') . '</a> <ul class="horde-tags">';
foreach ($memo['tags'] as $tag) {
$html .= '<li>' . htmlspecialchars($tag) . '</li>';
}
$html .= '</ul></td></tr>';
}
if (!$memos) {
return '<p><em>' . _("No notes to display") . '</em></p>';
}
return '<table cellspacing="0" width="100%" class="linedRow">' . $html . '</table>';
}
示例2: _addBaseVars
/**
* Add base javascript variables to the page.
*/
protected function _addBaseVars()
{
global $conf, $injector, $prefs, $registry;
$auth_name = $registry->getAuth();
$has_tasks = Kronolith::hasApiPermission('tasks');
$identity = $injector->getInstance('Horde_Core_Factory_Identity')->create();
$app_urls = $js_vars = array();
if (isset($conf['menu']['apps']) && is_array($conf['menu']['apps'])) {
foreach ($conf['menu']['apps'] as $app) {
$app_urls[$app] = strval(Horde::url($registry->getInitialPage($app), true));
}
}
/* Variables used in core javascript files. */
$js_vars['conf'] = array_filter(array('URI_CALENDAR_EXPORT' => str_replace(array('%23', '%2523', '%7B', '%257B', '%7D', '%257D'), array('#', '#', '{', '{', '}', '}'), strval($registry->downloadUrl('#{calendar}.ics', array('actionID' => 'export', 'all_events' => 1, 'exportID' => Horde_Data::EXPORT_ICALENDAR, 'exportCal' => 'internal_#{calendar}'))->setRaw(true))), 'URI_RESOURCE_EXPORT' => str_replace(array('%23', '%2523', '%7B', '%257B', '%7D', '%257D'), array('#', '#', '{', '{', '}', '}'), strval($registry->downloadUrl('#{calendar}.ics', array('actionID' => 'export', 'all_events' => 1, 'exportID' => Horde_Data::EXPORT_ICALENDAR, 'exportCal' => 'resource_#{calendar}'))->setRaw(true))), 'URI_EVENT_EXPORT' => str_replace(array('%23', '%7B', '%7D'), array('#', '{', '}'), Horde::url('event.php', true)->add(array('view' => 'ExportEvent', 'eventID' => '#{id}', 'calendar' => '#{calendar}', 'type' => '#{type}'))), 'images' => array('alarm' => strval(Horde_Themes::img('alarm-fff.png')), 'attendees' => strval(Horde_Themes::img('attendees-fff.png')), 'exception' => strval(Horde_Themes::img('exception-fff.png')), 'new_event' => strval(Horde_Themes::img('new.png')), 'new_task' => strval(Horde_Themes::img('new_task.png')), 'recur' => strval(Horde_Themes::img('recur-fff.png'))), 'new_event' => $injector->getInstance('Kronolith_View_Sidebar')->newLink . $injector->getInstance('Kronolith_View_Sidebar')->newText . '</a>', 'new_task' => $injector->getInstance('Kronolith_View_SidebarTasks')->newLink . $injector->getInstance('Kronolith_View_SidebarTasks')->newText . '</a>', 'user' => $registry->convertUsername($auth_name, false), 'name' => $identity->getName(), 'email' => strval($identity->getDefaultFromAddress()), 'prefs_url' => strval($registry->getServiceLink('prefs', 'kronolith')->setRaw(true)), 'app_urls' => $app_urls, 'name' => $registry->get('name'), 'has_tasks' => intval($has_tasks), 'has_resources' => intval(!empty($conf['resource']['driver'])), 'login_view' => $prefs->getValue('defaultview') == 'workweek' ? 'week' : $prefs->getValue('defaultview'), 'default_calendar' => 'internal|' . Kronolith::getDefaultCalendar(Horde_Perms::EDIT), 'max_events' => intval($prefs->getValue('max_events')), 'date_format' => Horde_Core_Script_Package_Datejs::translateFormat(Horde_Nls::getLangInfo(D_FMT)), 'time_format' => $prefs->getValue('twentyFour') ? 'HH:mm' : 'hh:mm tt', 'import_file' => Horde_Data::IMPORT_FILE, 'import_url' => Horde_Data::IMPORT_URL, 'show_time' => Kronolith::viewShowTime(), 'default_alarm' => intval($prefs->getValue('default_alarm')), 'status' => array('cancelled' => Kronolith::STATUS_CANCELLED, 'confirmed' => Kronolith::STATUS_CONFIRMED, 'free' => Kronolith::STATUS_FREE, 'tentative' => Kronolith::STATUS_TENTATIVE), 'recur' => array(Horde_Date_Recurrence::RECUR_NONE => 'None', Horde_Date_Recurrence::RECUR_DAILY => 'Daily', Horde_Date_Recurrence::RECUR_WEEKLY => 'Weekly', Horde_Date_Recurrence::RECUR_MONTHLY_DATE => 'Monthly', Horde_Date_Recurrence::RECUR_MONTHLY_WEEKDAY => 'Monthly', Horde_Date_Recurrence::RECUR_YEARLY_DATE => 'Yearly', Horde_Date_Recurrence::RECUR_YEARLY_DAY => 'Yearly', Horde_Date_Recurrence::RECUR_YEARLY_WEEKDAY => 'Yearly'), 'perms' => array('all' => Horde_Perms::ALL, 'show' => Horde_Perms::SHOW, 'read' => Horde_Perms::READ, 'edit' => Horde_Perms::EDIT, 'delete' => Horde_Perms::DELETE, 'delegate' => Kronolith::PERMS_DELEGATE), 'tasks' => $has_tasks ? $registry->tasks->ajaxDefaults() : null));
/* Make sure this value is not optimized out by array_filter(). */
$js_vars['conf']['week_start'] = intval($prefs->getValue('week_start_monday'));
/* Gettext strings. */
$js_vars['text'] = array('alarm' => _("Alarm:"), 'alerts' => _("Notifications"), 'allday' => _("All day"), 'delete_calendar' => _("Are you sure you want to delete this calendar and all the events in it?"), 'delete_tasklist' => _("Are you sure you want to delete this task list and all the tasks in it?"), 'external_category' => _("Other events"), 'fix_form_values' => _("Please enter correct values in the form first."), 'geocode_error' => _("Unable to locate requested address"), 'hidelog' => _("Hide Notifications"), 'import_warning' => _("Importing calendar data. This may take a while..."), 'more' => _("more..."), 'no_assignee' => _("None"), 'no_calendar_title' => _("The calendar title must not be empty."), 'no_parent' => _("No parent task"), 'no_tasklist_title' => _("The task list title must not be empty."), 'no_url' => _("You must specify a URL."), 'prefs' => _("Preferences"), 'searching' => sprintf(_("Events matching \"%s\""), '#{term}'), 'shared' => _("Shared"), 'tasks' => _("Tasks"), 'unknown_resource' => _("Unknown resource."), 'wrong_auth' => _("The authentication information you specified wasn't accepted."), 'wrong_date_format' => sprintf(_("You used an unknown date format \"%s\". Please try something like \"%s\"."), '#{wrong}', '#{right}'), 'wrong_time_format' => sprintf(_("You used an unknown time format \"%s\". Please try something like \"%s\"."), '#{wrong}', '#{right}'));
for ($i = 1; $i <= 12; ++$i) {
$js_vars['text']['month'][$i - 1] = Horde_Nls::getLangInfo(constant('MON_' . $i));
}
for ($i = 1; $i <= 7; ++$i) {
$js_vars['text']['weekday'][$i] = Horde_Nls::getLangInfo(constant('DAY_' . $i));
}
foreach (array_diff(array_keys($js_vars['conf']['recur']), array(Horde_Date_Recurrence::RECUR_NONE)) as $recurType) {
$js_vars['text']['recur'][$recurType] = Kronolith::recurToString($recurType);
}
$js_vars['text']['recur']['exception'] = _("Exception");
// Maps
$js_vars['conf']['maps'] = $conf['maps'];
return $js_vars;
}
示例3: browse
/**
* Browse through Whups' object tree.
*
* @param string $path The level of the tree to browse.
*
* @return array The contents of $path
*/
public function browse($path = '')
{
global $whups_driver, $registry;
if (substr($path, 0, 5) == 'whups') {
$path = substr($path, 5);
}
$path = trim($path, '/');
if (empty($path)) {
$results = array('whups/queue' => array('name' => _("Queues"), 'icon' => Horde_Themes::img('whups.png'), 'browseable' => count(Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::READ))));
} else {
$path = explode('/', $path);
$results = array();
switch ($path[0]) {
case 'queue':
$queues = Whups::permissionsFilter($whups_driver->getQueues(), 'queue', Horde_Perms::SHOW);
if (count($path) == 1) {
foreach ($queues as $queue => $name) {
$results['whups/queue/' . $queue] = array('name' => sprintf(_("Tickets from %s"), $name), 'browseable' => true);
}
} else {
if (!Whups::hasPermission($queues[$path[1]], 'queue', Horde_Perms::READ)) {
throw new Horde_Exception_PermissionDenied();
}
$tickets = $whups_driver->getTicketsByProperties(array('queue' => $path[1]));
foreach ($tickets as $ticket) {
$results['whups/queue/' . $path[1] . '/' . $ticket['id']] = array('name' => $ticket['summary'], 'browseable' => false);
}
}
break;
}
}
return $results;
}
示例4: tag
/**
* Constructs a correctly-pathed tag to an image.
*
* @param mixed $src The image file (either a string or a
* Horde_Themes_Image object).
* @param array $opts Additional options:
* - alt: (string) Text describing the image.
* - attr: (mixed) Any additional attributes for the image tag. Can be a
* pre-built string or an array of key/value pairs that will be
* assembled and html-encoded.
* - fullsrc: (boolean) TODO
* - imgopts: (array) TODO
*
* @return string The full image tag.
*/
public static function tag($src, array $opts = array())
{
global $browser, $conf;
$opts = array_merge(array('alt' => '', 'attr' => array(), 'fullsrc' => false, 'imgopts' => array()), $opts);
/* If browser does not support images, simply return the ALT text. */
if (!$browser->hasFeature('images')) {
return htmlspecialchars($opts['alt']);
}
$xml = new SimpleXMLElement('<root><img ' . (is_array($opts['attr']) ? '' : $opts['attr']) . '/></root>');
$img = $xml->img;
if (is_array($opts['attr'])) {
foreach ($opts['attr'] as $key => $val) {
$img->addAttribute($key, $val);
}
}
if (strlen($opts['alt'])) {
$img->addAttribute('alt', $opts['alt']);
}
/* If no directory has been specified, get it from the registry. */
if (!$src instanceof Horde_Themes_Image && substr($src, 0, 1) != '/') {
$src = Horde_Themes::img($src, $opts['imgopts']);
}
if (empty($conf['nobase64_img'])) {
$src = self::base64ImgData($src);
}
if ($opts['fullsrc'] && substr($src, 0, 10) != 'data:image') {
$src = Horde::url($src, true, array('append_session' => -1));
}
$img->addAttribute('src', $src);
return $img->asXML();
}
示例5: __construct
/**
*/
public function __construct(array $params = array())
{
global $page_output;
parent::__construct(array_merge(array('boxClass' => 'hordeACBox impACBox', 'boxClassFocus' => 'impACBoxFocus', 'deleteIcon' => strval(Horde_Themes::img('delete-small.png')), 'displayFilter' => 'new Function("t", "return t.sub(/<[^>]*>$/, \\"\\").strip().escapeHTML()")', 'growingInputClass' => 'hordeACTrigger impACTrigger', 'listClass' => 'hordeACList impACList', 'processValueCallback' => 'ImpComposeBase.autocompleteValue.bind(ImpComposeBase)', 'removeClass' => 'hordeACItemRemove impACItemRemove', 'triggerContainer' => strval(new Horde_Support_Randomid())), $params));
$this->_raw = array_merge($this->_raw, array('displayFilter', 'filterCallback', 'onAdd', 'onRemove', 'processValueCallback'));
$page_output->addScriptFile('compose-base.js');
$page_output->addScriptFile('prettyautocomplete.js');
}
示例6: getTile
/**
* Outputs the html for a DateGallery tile.
*
* @param Ansel_Gallery_Decorator_Date $dgallery The Ansel_Gallery_Date we are
* displaying.
* @param Ansel_Style $style A style object.
* @param boolean $mini Force the use of a mini thumbail?
* @param array $params An array containing additional parameters.
* Currently, gallery_view_url and image_view_url
* are used to override the respective urls.
* %g and %i are replaced with image id and
* gallery id, respectively.
*
* @return string The HTML for the tile.
*/
public function getTile(Ansel_Gallery_Decorator_Date $dgallery, Ansel_Style $style = null, $mini = false, array $params = array())
{
$view = $GLOBALS['injector']->createInstance('Horde_View');
$view->addTemplatePath(ANSEL_TEMPLATES . '/tile');
// User's preferred date format
$date_format = $GLOBALS['prefs']->getValue('date_format');
$date_array = $dgallery->getDate();
if (empty($date_array['month'])) {
$date_array['month'] = 1;
}
if (empty($date_array['day'])) {
$date_array['day'] = 1;
}
$full_date = new Horde_Date($date_array);
// Need the unaltered date part array
$date_array = $dgallery->getDate();
// Figure out the needed link for the next drill down level. We *must*
// have at least a year since we are in a date tile.
if (empty($date_array['month'])) {
// unit == year
$view->caption = $full_date->strftime('%Y');
$next_date = array('year' => (int) $view->caption);
} elseif (empty($date_array['day'])) {
// unit == month
$view->caption = $full_date->strftime('%B %Y');
$next_date = array('year' => date('Y', $full_date->timestamp()), 'month' => date('n', $full_date->timestamp()));
} else {
// unit == day
$view->caption = $full_date->strftime($date_format);
$next_date = array('year' => date('Y', $full_date->timestamp()), 'month' => date('n', $full_date->timestamp()), 'day' => date('j', $full_date->timestamp()));
}
// Check permissions on the gallery and get appropriate tile image
if ($dgallery->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::READ)) {
if (is_null($style)) {
$style = $dgallery->getStyle();
}
$thumbstyle = $mini ? 'mini' : 'thumb';
$view->gallery_image = Ansel::getImageUrl($dgallery->getKeyImage(), $thumbstyle, true, $style);
} else {
$view->gallery_image = Horde_Themes::img('thumb-error.png');
}
/* Check for being called via the api and generate correct view links */
if (!isset($params['gallery_view_url'])) {
if (empty($params['style'])) {
$gstyle = $dgallery->getStyle();
} else {
$gstyle = $params['style'];
}
$params = array('gallery' => $dgallery->id, 'view' => 'Gallery', 'slug' => $dgallery->get('slug'));
$view->view_link = Ansel::getUrlFor('view', array_merge($params, $next_date));
} else {
$view->view_link = new Horde_Url(str_replace(array('%g', '%s'), array($dgallery->id, $dgallery->get('slug')), urldecode($params['gallery_view_url'])));
$view->view_link->add($next_date);
}
$view->gallery_count = $dgallery->countImages(true);
return $view->render('dategallery');
}
示例7: getFlagImageObByHost
/**
* Generate flag image object.
*
* @since 2.10.0
*
* @param string $host The hostname.
*
* @return array False if not found, or an array with these keys:
* <pre>
* - name: (string) Country name.
* - ob: (Horde_Themes_Image) Image object.
* </pre>
*/
public static function getFlagImageObByHost($host)
{
global $conf;
$data = Horde_Nls::getCountryByHost($host, empty($conf['geoip']['datafile']) ? null : $conf['geoip']['datafile']);
if ($data === false) {
return false;
}
return array('name' => $data['name'], 'ob' => Horde_Themes::img('flags/' . $data['code'] . '.png'));
}
示例8: renderTree
/**
* Return a Horde_Tree representation of the permissions tree.
*
* @return string The html showing the permissions as a Horde_Tree.
* @throws Horde_Perms_Exception
*/
public function renderTree($current = Horde_Perms::ROOT)
{
/* Get the perms tree. */
$nodes = $this->_perms->getTree();
$perms_node = array('icon' => Horde_Themes::img('perms.png'));
$add = Horde::url('admin/perms/addchild.php');
$add_img = Horde_Themes_Image::tag('plus.png', array('alt' => Horde_Core_Translation::t("Add Permission")));
$edit = Horde::url('admin/perms/edit.php');
$delete = Horde::url('admin/perms/delete.php');
$edit_img = Horde_Themes_Image::tag('edit.png', array('alt' => Horde_Core_Translation::t("Edit Permission")));
$delete_img = Horde_Themes_Image::tag('delete.png', array('alt' => Horde_Core_Translation::t("Delete Permission")));
$blank_img = Horde_Themes_Image::tag('blank.gif', array('attr' => array('width' => 16, 'height' => 16)));
/* Set up the tree. */
$tree = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Tree')->create('perms_ui', 'Javascript', array('alternate' => true, 'hideHeaders' => true));
$tree->setHeader(array(array('class' => 'horde-tree-spacer')));
foreach ($nodes as $perm_id => $node) {
$node_class = $current == $perm_id ? array('class' => 'selected') : array();
if ($perm_id == Horde_Perms::ROOT) {
$add_link = $add->add('perm_id', $perm_id)->link(array('class' => 'permsAdd', 'title' => Horde_Core_Translation::t("Add New Permission"))) . $add_img . '</a>';
$base_node_params = array('icon' => Horde_Themes::img('administration.png'));
$tree->addNode(array('id' => $perm_id, 'label' => Horde_Core_Translation::t("All Permissions"), 'expanded' => true, 'params' => $base_node_params + $node_class, 'right' => array($add_link)));
} else {
$parent_id = $this->_perms->getParent($node);
$perms_extra = array();
$parents = explode(':', $node);
if (!in_array($parents[0], $GLOBALS['registry']->listApps(array('notoolbar', 'active', 'hidden')))) {
// This backend has permissions for an application that is
// not installed. Perhaps the application has been removed
// or the backend is shared with other Horde installations.
// Skip this app and do not include it in the tree.
continue;
}
try {
$app_perms = $this->_corePerms->getApplicationPermissions($parents[0]);
} catch (Horde_Perms_Exception $e) {
$GLOBALS['notification']->push($e);
continue;
}
if (isset($app_perms['tree']) && is_array(Horde_Array::getElement($app_perms['tree'], $parents))) {
$add_link = $add->add('perm_id', $perm_id)->link(array('class' => 'permsAdd', 'title' => Horde_Core_Translation::t("Add Child Permission"))) . $add_img . '</a>';
$perms_extra[] = $add_link;
} else {
$perms_extra[] = $blank_img;
}
$edit_link = $edit->add('perm_id', $perm_id)->link(array('class' => 'permsEdit', 'title' => Horde_Core_Translation::t("Edit Permission"))) . $edit_img . '</a>';
$perms_extra[] = $edit_link;
$delete_link = $delete->add('perm_id', $perm_id)->link(array('class' => 'permsDelete', 'title' => Horde_Core_Translation::t("Delete Permission"))) . $delete_img . '</a>';
$perms_extra[] = $delete_link;
$name = $this->_corePerms->getTitle($node);
$expanded = isset($nodes[$current]) && strpos($nodes[$current], $node) === 0 && $nodes[$current] != $node;
$tree->addNode(array('id' => $perm_id, 'parent' => $parent_id, 'label' => $name, 'expanded' => $expanded, 'params' => $perms_node + $node_class, 'right' => $perms_extra));
}
}
$tree->sort('label');
return $tree->renderTree();
}
示例9: getFavicon
/**
* Returns an apropriate icon for the given bookmark.
*
* @param Trean_Bookmark $bookmark The bookmark object.
*
* @return Horde_Url The URL for the image.
*/
static function getFavicon($bookmark)
{
if ($bookmark->favicon_url) {
return Horde::url('favicon.php')->add('bookmark_id', $bookmark->id);
} else {
// Default to the protocol icon.
$protocol = substr($bookmark->url, 0, strpos($bookmark->url, '://'));
return Horde_Themes::img('protocol/' . (empty($protocol) ? 'http' : $protocol) . '.png');
}
}
示例10: getFlagImageObByHost
/**
* Generate flag image object.
*
* @since 2.10.0
*
* @param string $host The hostname.
*
* @return array False if not found, or an array with these keys:
* <pre>
* - name: (string) Country name.
* - ob: (Horde_Themes_Image) Image object.
* </pre>
*/
public static function getFlagImageObByHost($host)
{
global $conf, $injector;
if (!Horde_Nls::$dnsResolver) {
Horde_Nls::$dnsResolver = $injector->getInstance('Net_DNS2_Resolver');
}
$data = Horde_Nls::getCountryByHost($host, empty($conf['geoip']['datafile']) ? null : $conf['geoip']['datafile']);
if ($data === false) {
return false;
}
return array('name' => $data['name'], 'ob' => Horde_Themes::img('flags/' . $data['code'] . '.png'));
}
示例11: display
/**
*/
public function display(Horde_Core_Prefs_Ui $ui)
{
global $prefs;
$view = new Horde_View(array('templatePath' => IMP_TEMPLATES . '/prefs'));
$view->addHelper('FormTag');
$view->addHelper('Tag');
$view->addHelper('Text');
$newmail_audio = $view->newmail_audio = $prefs->getValue('newmail_audio');
$sounds = array();
foreach (Horde_Themes::soundList() as $key => $val) {
$sounds[] = array('c' => $newmail_audio == $key, 'l' => $key, 's' => $val->uri, 'v' => $key);
}
$view->sounds = $sounds;
return $view->render('newmailaudio');
}
示例12: _addBaseVars
/**
*/
protected function _addBaseVars()
{
global $prefs, $injector, $conf, $registry;
$app_urls = $js_vars = array();
if (isset($conf['menu']['apps']) && is_array($conf['menu']['apps'])) {
foreach ($conf['menu']['apps'] as $app) {
$app_urls[$app] = strval(Horde::url($registry->getInitialPage($app), true));
}
}
$identity = $injector->getInstance('Horde_Core_Factory_Identity')->create();
$format_date = str_replace(array('%x', '%X'), array(Horde_Nls::getLangInfo(D_FMT, Horde_Nls::getLangInfo(D_T_FMT))), $prefs->getValue('date_format_mini'));
/* Variables used in core javascript files. */
$js_vars['conf'] = array('URI_EXPORT' => (string) $registry->downloadUrl('time.csv', array('actionID' => 'export'))->setRaw(true), 'images' => array('timerlog' => (string) Horde_Themes::img('log.png'), 'timerplay' => (string) Horde_Themes::img('play.png'), 'timerpause' => (string) Horde_Themes::img('pause.png')), 'user' => $registry->convertUsername($registry->getAuth(), false), 'prefs_url' => strval($registry->getServiceLink('prefs', 'hermes')->setRaw(true)), 'app_urls' => $app_urls, 'name' => $identity->getName(), 'login_view' => 'time', 'date_format' => str_replace(array('%e', '%d', '%a', '%A', '%m', '%h', '%b', '%B', '%y', '%Y'), array('d', 'dd', 'ddd', 'dddd', 'MM', 'MMM', 'MMM', 'MMMM', 'yy', 'yyyy'), $format_date), 'client_name_field' => $conf['client']['field'], 'has_review_edit' => $injector->getInstance('Horde_Perms')->hasPermission('hermes:review', $GLOBALS['registry']->getAuth(), Horde_Perms::EDIT), 'has_review' => $registry->isAdmin(array('permission' => 'hermes:review')), 'has_timeadmin' => $registry->isAdmin(array('permission' => 'hermes:timeadmin')), 'has_deliverableadmin' => $registry->isAdmin(array('permission' => 'hermes:deliverables')));
/* Gettext strings used in core javascript files. */
$js_vars['text'] = array('noalerts' => _("No Notifications"), 'alerts' => sprintf(_("%s notifications"), '#{count}'), 'hidelog' => _("Hide Notifications"), 'more' => _("more..."), 'prefs' => _("Preferences"), 'fix_form_values' => _("Please enter correct values in the form first."), 'wrong_date_format' => sprintf(_("You used an unknown date format \"%s\". Please try something like \"%s\"."), '#{wrong}', '#{right}'), 'timeentry' => _("Time Entry"), 'edittime' => _("Editing Time Entry"), 'select_jobtype' => _("Select a Job Type"), 'missing_client' => _("You must select a client first."), 'billable' => _("Billable"), 'nonbillable' => _("Non billable"), 'hours' => _("Hours"), 'type' => _("Job Type"), 'budget' => _("Budget hours"));
return $js_vars;
}
示例13: _addBaseVars
/**
* Add all kinds of variables and captions dependent on prefs, locale, state...
* TODO: This could be stripped further and still serve demonstrational purposes
*/
protected function _addBaseVars()
{
global $prefs, $injector, $conf, $registry;
$app_urls = $js_vars = array();
if (isset($conf['menu']['apps']) && is_array($conf['menu']['apps'])) {
foreach ($conf['menu']['apps'] as $app) {
$app_urls[$app] = strval(Horde::url($registry->getInitialPage($app), true));
}
}
$identity = $injector->getInstance('Horde_Core_Factory_Identity')->create();
$format_date = str_replace(array('%x', '%X'), array(Horde_Nls::getLangInfo(D_FMT, Horde_Nls::getLangInfo(D_T_FMT))), $prefs->getValue('date_format_mini'));
/* Variables used in core javascript files. */
$js_vars['conf'] = array('images' => array('timerlog' => (string) Horde_Themes::img('log.png')), 'user' => $registry->convertUsername($registry->getAuth(), false), 'prefs_url' => strval($registry->getServiceLink('prefs', 'hermes')->setRaw(true)), 'app_urls' => $app_urls, 'name' => $identity->getName(), 'login_view' => 'example1', 'date_format' => str_replace(array('%e', '%d', '%a', '%A', '%m', '%h', '%b', '%B', '%y', '%Y'), array('d', 'dd', 'ddd', 'dddd', 'MM', 'MMM', 'MMM', 'MMMM', 'yy', 'yyyy'), $format_date));
/* Gettext strings used in core javascript files. */
$js_vars['text'] = array('noalerts' => _("No Notifications"), 'alerts' => sprintf(_("%s notifications"), '#{count}'), 'hidelog' => _("Hide Notifications"), 'more' => _("more..."), 'prefs' => _("Preferences"));
return $js_vars;
}
示例14: init
/**
* Initialize a HordeMap.
*
* @param array $params
*/
public static function init(array $params = array())
{
global $browser, $conf, $language, $page_output, $registry;
// Language specific file needed?
$language = str_replace('_', '-', $language);
if (!file_exists($registry->get('jsfs', 'horde') . '/map/lang/' . $language . '.js')) {
$language = 'en-US';
}
$params = array_merge(array('conf' => array('language' => $language, 'markerImage' => strval(Horde_Themes::img('map/marker.png')), 'markerBackground' => strval(Horde_Themes::img('map/marker-shadow.png')), 'useMarkerLayer' => true), 'driver' => 'Horde', 'geocoder' => $conf['maps']['geocoder'], 'jsuri' => $registry->get('jsuri', 'horde') . '/map/', 'providers' => $conf['maps']['providers'], 'ssl' => $browser->usingSSLConnection()), $params);
foreach ($params['providers'] as $layer) {
switch ($layer) {
case 'Google':
$params['conf']['apikeys']['google'] = $conf['api']['googlemaps'];
break;
case 'Yahoo':
$params['conf']['apikeys']['yahoo'] = $conf['api']['yahoomaps'];
break;
case 'Cloudmade':
$params['conf']['apikeys']['cloudmade'] = $conf['api']['cloudmade'];
break;
case 'Mytopo':
/* Mytopo requires a hash of the *client* IP address and the
* key. Note that this also causes Mytopo to break if the
* client's IP address presented as an internal address. */
$params['conf']['apikeys']['mytopo'] = array('id' => $conf['api']['mytopo_partnerID'], 'hash' => strtoupper(md5($conf['api']['mytopo'] . $browser->getIpAddress())));
break;
}
}
if (!empty($params['geocoder'])) {
switch ($params['geocoder']) {
case 'Google':
$params['conf']['apikeys']['google'] = $conf['api']['googlemaps'];
break;
case 'Yahoo':
$params['conf']['apikeys']['yahoo'] = $conf['api']['yahoomaps'];
break;
case 'Cloudmade':
$params['conf']['apikeys']['cloudmade'] = $conf['api']['cloudmade'];
break;
}
}
$page_output->addScriptFile('map/map.js', 'horde');
$page_output->addInlineScript(array('HordeMap.initialize(' . Horde_Serialize::serialize($params, HORDE_SERIALIZE::JSON) . ');'));
}
示例15: _render
/**
* Return the full rendered version of the Horde_Mime_Part object.
*
* URL parameters used by this function:
* - pdf_view_thumbnail: (boolean) Output the thumbnail info.
*
* @return array See parent::render().
*/
protected function _render()
{
/* Create the thumbnail and display. */
if (!$GLOBALS['injector']->getInstance('Horde_Variables')->pdf_view_thumbnail) {
return parent::_render();
}
$img = $this->_getHordeImageOb(true);
if ($img) {
$img->resize(150, 150, true);
$type = $img->getContentType();
$data = $img->raw(true);
}
if (!$img || !$data) {
$type = 'image/png';
$img_ob = Horde_Themes::img('mini-error.png', 'imp');
$data = file_get_contents($img_ob->fs);
}
return array($this->_mimepart->getMimeId() => array('data' => $data, 'type' => $type));
}