本文整理汇总了PHP中ChangeBasename函数的典型用法代码示例。如果您正苦于以下问题:PHP ChangeBasename函数的具体用法?PHP ChangeBasename怎么用?PHP ChangeBasename使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ChangeBasename函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: WriteDiscussion
function WriteDiscussion($Discussion, &$Sender, &$Session, $Alt)
{
$CssClass = 'Item';
$CssClass .= $Discussion->Bookmarked == '1' ? ' Bookmarked' : '';
$CssClass .= $Alt . ' ';
$CssClass .= $Discussion->Announce == '1' ? ' Announcement' : '';
$CssClass .= $Discussion->Closed == '1' ? ' Closed' : '';
$CssClass .= $Discussion->InsertUserID == $Session->UserID ? ' Mine' : '';
$CssClass .= $Discussion->CountUnreadComments > 0 && $Session->IsValid() ? ' New' : '';
$Sender->EventArguments['Discussion'] =& $Discussion;
$Sender->FireEvent('BeforeDiscussionName');
$DiscussionName = Gdn_Format::Text($Discussion->Name);
if ($DiscussionName == '') {
$DiscussionName = T('Blank Discussion Topic');
}
static $FirstDiscussion = TRUE;
if (!$FirstDiscussion) {
$Sender->FireEvent('BetweenDiscussion');
} else {
$FirstDiscussion = FALSE;
}
?>
<li class="<?php
echo $CssClass;
?>
">
<?php
if ($Discussion->FirstPhoto != '') {
if (strtolower(substr($Discussion->FirstPhoto, 0, 7)) == 'http://' || strtolower(substr($Discussion->FirstPhoto, 0, 8)) == 'https://') {
$PhotoUrl = $Discussion->FirstPhoto;
} else {
$PhotoUrl = 'uploads/' . ChangeBasename($Discussion->FirstPhoto, 'n%s');
}
echo Img($PhotoUrl, array('alt' => $Discussion->FirstName));
}
?>
<div class="ItemContent Discussion">
<?php
echo Anchor($DiscussionName, '/discussion/' . $Discussion->DiscussionID . '/' . Gdn_Format::Url($Discussion->Name) . ($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') ? '/#Item_' . $Discussion->CountCommentWatch : ''), 'Title');
?>
<?php
$Sender->FireEvent('AfterDiscussionTitle');
?>
<div class="Meta">
<span class="Author"><?php
echo $Discussion->FirstName;
?>
</span>
<?php
echo '<span class="Counts' . ($Discussion->CountUnreadComments > 0 ? ' NewCounts' : '') . '">' . ($Discussion->CountUnreadComments > 0 ? $Discussion->CountUnreadComments . '/' : '') . $Discussion->CountComments . '</span>';
if ($Discussion->LastCommentID != '') {
echo '<span class="LastCommentBy">' . sprintf(T('Latest %1$s'), $Discussion->LastName) . '</span> ';
}
echo '<span class="LastCommentDate">' . Gdn_Format::Date($Discussion->FirstDate) . '</span> ';
?>
</div>
</div>
</li>
<?php
}
示例2: Img
<?php
if (!defined('APPLICATION')) {
exit;
}
// If the photo contains an http://, it is just an icon, don't show it here.
if ($this->User->Photo != '' && strtolower(substr($this->User->Photo, 0, 7)) != 'http://') {
?>
<div class="Photo">
<?php
echo Img('uploads/' . ChangeBasename($this->User->Photo, 'p%s'));
?>
</div>
<?php
}
示例3: init
/**
*
*
* @param $Path
* @param $Controller
*/
public function init($Path, $Controller)
{
$Smarty = $this->smarty();
// Get a friendly name for the controller.
$ControllerName = get_class($Controller);
if (StringEndsWith($ControllerName, 'Controller', true)) {
$ControllerName = substr($ControllerName, 0, -10);
}
// Get an ID for the body.
$BodyIdentifier = strtolower($Controller->ApplicationFolder . '_' . $ControllerName . '_' . Gdn_Format::alphaNumeric(strtolower($Controller->RequestMethod)));
$Smarty->assign('BodyID', $BodyIdentifier);
//$Smarty->assign('Config', Gdn::Config());
// Assign some information about the user.
$Session = Gdn::session();
if ($Session->isValid()) {
$User = array('Name' => $Session->User->Name, 'Photo' => '', 'CountNotifications' => (int) val('CountNotifications', $Session->User, 0), 'CountUnreadConversations' => (int) val('CountUnreadConversations', $Session->User, 0), 'SignedIn' => true);
$Photo = $Session->User->Photo;
if ($Photo) {
if (!IsUrl($Photo)) {
$Photo = Gdn_Upload::Url(ChangeBasename($Photo, 'n%s'));
}
} else {
if (function_exists('UserPhotoDefaultUrl')) {
$Photo = UserPhotoDefaultUrl($Session->User, 'ProfilePhoto');
} elseif ($ConfigPhoto = C('Garden.DefaultAvatar')) {
$Photo = Gdn_Upload::url($ConfigPhoto);
} else {
$Photo = Asset('/applications/dashboard/design/images/defaulticon.png', true);
}
}
$User['Photo'] = $Photo;
} else {
$User = false;
/*array(
'Name' => '',
'CountNotifications' => 0,
'SignedIn' => FALSE);*/
}
$Smarty->assign('User', $User);
// Make sure that any datasets use arrays instead of objects.
foreach ($Controller->Data as $Key => $Value) {
if ($Value instanceof Gdn_DataSet) {
$Controller->Data[$Key] = $Value->resultArray();
} elseif ($Value instanceof stdClass) {
$Controller->Data[$Key] = (array) $Value;
}
}
$BodyClass = val('CssClass', $Controller->Data, '', true);
$Sections = Gdn_Theme::section(null, 'get');
if (is_array($Sections)) {
foreach ($Sections as $Section) {
$BodyClass .= ' Section-' . $Section;
}
}
$Controller->Data['BodyClass'] = $BodyClass;
// Set the current locale for themes to take advantage of.
$Locale = Gdn::locale()->Locale;
$CurrentLocale = array('Key' => $Locale, 'Lang' => str_replace('_', '-', $Locale));
if (class_exists('Locale')) {
$CurrentLocale['Language'] = Locale::getPrimaryLanguage($Locale);
$CurrentLocale['Region'] = Locale::getRegion($Locale);
$CurrentLocale['DisplayName'] = Locale::getDisplayName($Locale, $Locale);
$CurrentLocale['DisplayLanguage'] = Locale::getDisplayLanguage($Locale, $Locale);
$CurrentLocale['DisplayRegion'] = Locale::getDisplayRegion($Locale, $Locale);
}
$Smarty->assign('CurrentLocale', $CurrentLocale);
$Smarty->assign('Assets', (array) $Controller->Assets);
$Smarty->assign('Path', Gdn::request()->path());
// Assign the controller data last so the controllers override any default data.
$Smarty->assign($Controller->Data);
$Smarty->Controller = $Controller;
// for smarty plugins
$Smarty->security = true;
$Smarty->security_settings['IF_FUNCS'] = array_merge($Smarty->security_settings['IF_FUNCS'], array('Category', 'CheckPermission', 'InSection', 'InCategory', 'MultiCheckPermission', 'GetValue', 'SetValue', 'Url'));
$Smarty->security_settings['MODIFIER_FUNCS'] = array_merge($Smarty->security_settings['MODIFIER_FUNCS'], array('sprintf'));
$Smarty->secure_dir = array($Path);
}
示例4: Save
/**
* Generic save procedure.
*/
public function Save($FormPostValues, $Settings = FALSE)
{
// See if the user's related roles should be saved or not.
$SaveRoles = ArrayValue('SaveRoles', $Settings);
// Define the primary key in this model's table.
$this->DefineSchema();
// Add & apply any extra validation rules:
if (array_key_exists('Email', $FormPostValues)) {
$this->Validation->ApplyRule('Email', 'Email');
}
// Custom Rule: This will make sure that at least one role was selected if saving roles for this user.
if ($SaveRoles) {
$this->Validation->AddRule('OneOrMoreArrayItemRequired', 'function:ValidateOneOrMoreArrayItemRequired');
// $this->Validation->AddValidationField('RoleID', $FormPostValues);
$this->Validation->ApplyRule('RoleID', 'OneOrMoreArrayItemRequired');
}
// Make sure that the checkbox val for email is saved as the appropriate enum
if (array_key_exists('ShowEmail', $FormPostValues)) {
$FormPostValues['ShowEmail'] = ForceBool($FormPostValues['ShowEmail'], '0', '1', '0');
}
// Validate the form posted values
$UserID = ArrayValue('UserID', $FormPostValues);
$Insert = $UserID > 0 ? FALSE : TRUE;
if ($Insert) {
$this->AddInsertFields($FormPostValues);
} else {
$this->AddUpdateFields($FormPostValues);
}
$this->EventArguments['FormPostValues'] = $FormPostValues;
$this->FireEvent('BeforeSaveValidation');
$RecordRoleChange = TRUE;
if ($this->Validate($FormPostValues, $Insert) === TRUE) {
$Fields = $this->Validation->ValidationFields();
// All fields on the form that need to be validated (including non-schema field rules defined above)
$RoleIDs = ArrayValue('RoleID', $Fields, 0);
$Username = ArrayValue('Name', $Fields);
$Email = ArrayValue('Email', $Fields);
$Fields = $this->Validation->SchemaValidationFields();
// Only fields that are present in the schema
// Remove the primary key from the fields collection before saving
$Fields = RemoveKeyFromArray($Fields, $this->PrimaryKey);
// Make sure to encrypt the password for saving...
if (array_key_exists('Password', $Fields)) {
$PasswordHash = new Gdn_PasswordHash();
$Fields['Password'] = $PasswordHash->HashPassword($Fields['Password']);
}
$this->EventArguments['Fields'] = $Fields;
$this->FireEvent('BeforeSave');
// Check the validation results again in case something was added during the BeforeSave event.
if (count($this->Validation->Results()) == 0) {
// If the primary key exists in the validated fields and it is a
// numeric value greater than zero, update the related database row.
if ($UserID > 0) {
// If they are changing the username & email, make sure they aren't
// already being used (by someone other than this user)
if (ArrayValue('Name', $Fields, '') != '' || ArrayValue('Email', $Fields, '') != '') {
if (!$this->ValidateUniqueFields($Username, $Email, $UserID)) {
return FALSE;
}
}
$this->SQL->Put($this->Name, $Fields, array($this->PrimaryKey => $UserID));
// Record activity if the person changed his/her photo
$Photo = ArrayValue('Photo', $FormPostValues);
if ($Photo !== FALSE) {
AddActivity($UserID, 'PictureChange', '<img src="' . Asset('uploads/' . ChangeBasename($Photo, 't%s')) . '" alt="' . T('Thumbnail') . '" />');
}
} else {
$RecordRoleChange = FALSE;
if (!$this->ValidateUniqueFields($Username, $Email)) {
return FALSE;
}
// Define the other required fields:
$Fields['Email'] = $Email;
// And insert the new user
$UserID = $this->_Insert($Fields);
// Make sure that the user is assigned to one or more roles:
$SaveRoles = TRUE;
// Report that the user was created
$Session = Gdn::Session();
AddActivity($UserID, 'JoinCreated', T('Welcome Aboard!'), $Session->UserID > 0 ? $Session->UserID : '');
}
// Now update the role settings if necessary
if ($SaveRoles) {
// If no RoleIDs were provided, use the system defaults
if (!is_array($RoleIDs)) {
$RoleIDs = Gdn::Config('Garden.Registration.DefaultRoles');
}
$this->SaveRoles($UserID, $RoleIDs, $RecordRoleChange);
}
$this->EventArguments['UserID'] = $UserID;
$this->FireEvent('AfterSave');
} else {
$UserID = FALSE;
}
} else {
$UserID = FALSE;
}
//.........这里部分代码省略.........
示例5: T
?>
</td>
<td><?php
echo T('Thumbnail');
?>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<?php
echo Img(Gdn_Upload::Url(ChangeBasename($this->User->Photo, 'p%s')), array('id' => 'cropbox'));
?>
</td>
<td>
<div style="<?php
echo 'width:' . $this->ThumbSize . 'px;height:' . $this->ThumbSize . 'px;';
?>
overflow:hidden;">
<?php
echo Img(Gdn_Upload::Url(ChangeBasename($this->User->Photo, 'p%s')), array('id' => 'preview'));
?>
</div>
</td>
</tr>
</tbody>
</table>
<?php
echo $this->Form->Close('Save', '', array('class' => 'Button Primary'));
示例6: UserPhoto
function UserPhoto($User, $Options = array()) {
$User = (object)$User;
if (is_string($Options))
$Options = array('LinkClass' => $Options);
$LinkClass = GetValue('LinkClass', $Options, 'ProfileLink');
$ImgClass = GetValue('ImageClass', $Options, 'ProfilePhotoBig');
$LinkClass = $LinkClass == '' ? '' : ' class="'.$LinkClass.'"';
if ($User->Photo) {
if (!preg_match('`^https?://`i', $User->Photo)) {
$PhotoUrl = Gdn_Upload::Url(ChangeBasename($User->Photo, 'n%s'));
} else {
$PhotoUrl = $User->Photo;
}
return '<a title="'.htmlspecialchars($User->Name).'" href="'.Url('/profile/'.$User->UserID.'/'.rawurlencode($User->Name)).'"'.$LinkClass.'>'
.Img($PhotoUrl, array('alt' => htmlspecialchars($User->Name), 'class' => $ImgClass))
.'</a>';
} else {
return '';
}
}
示例7: Comment
//.........这里部分代码省略.........
$this->SetJson('DraftID', $DraftID);
if ($Preview) {
// If this was a preview click, create a comment shell with the values for this comment
$this->Comment = new stdClass();
$this->Comment->InsertUserID = $Session->User->UserID;
$this->Comment->InsertName = $Session->User->Name;
$this->Comment->InsertPhoto = $Session->User->Photo;
$this->Comment->DateInserted = Gdn_Format::Date();
$this->Comment->Body = ArrayValue('Body', $FormValues, '');
$this->View = 'preview';
} elseif (!$Draft) {
// If the comment was not a draft
// If Editing a comment
if ($Editing) {
// Just reload the comment in question
$this->Offset = 1;
$Comments = $this->CommentModel->GetIDData($CommentID, array('Slave' => FALSE));
$this->SetData('Comments', $Comments);
$this->SetData('Discussion', $Discussion);
// Load the discussion
$this->ControllerName = 'discussion';
$this->View = 'comments';
// Also define the discussion url in case this request came from the post screen and needs to be redirected to the discussion
$this->SetJson('DiscussionUrl', DiscussionUrl($this->Discussion) . '#Comment_' . $CommentID);
} else {
// If the comment model isn't sorted by DateInserted or CommentID then we can't do any fancy loading of comments.
$OrderBy = GetValueR('0.0', $this->CommentModel->OrderBy());
// $Redirect = !in_array($OrderBy, array('c.DateInserted', 'c.CommentID'));
// $DisplayNewCommentOnly = $this->Form->GetFormValue('DisplayNewCommentOnly');
// if (!$Redirect) {
// // Otherwise load all new comments that the user hasn't seen yet
// $LastCommentID = $this->Form->GetFormValue('LastCommentID');
// if (!is_numeric($LastCommentID))
// $LastCommentID = $CommentID - 1; // Failsafe back to this new comment if the lastcommentid was not defined properly
//
// // Don't reload the first comment if this new comment is the first one.
// $this->Offset = $LastCommentID == 0 ? 1 : $this->CommentModel->GetOffset($LastCommentID);
// // Do not load more than a single page of data...
// $Limit = C('Vanilla.Comments.PerPage', 30);
//
// // Redirect if the new new comment isn't on the same page.
// $Redirect |= !$DisplayNewCommentOnly && PageNumber($this->Offset, $Limit) != PageNumber($Discussion->CountComments - 1, $Limit);
// }
// if ($Redirect) {
// // The user posted a comment on a page other than the last one, so just redirect to the last page.
// $this->RedirectUrl = Gdn::Request()->Url("discussion/comment/$CommentID/#Comment_$CommentID", TRUE);
// } else {
// // Make sure to load all new comments since the page was last loaded by this user
// if ($DisplayNewCommentOnly)
$this->Offset = $this->CommentModel->GetOffset($CommentID);
$Comments = $this->CommentModel->GetIDData($CommentID, array('Slave' => FALSE));
$this->SetData('Comments', $Comments);
$this->SetData('NewComments', TRUE);
$this->ClassName = 'DiscussionController';
$this->ControllerName = 'discussion';
$this->View = 'comments';
// }
// Make sure to set the user's discussion watch records
$CountComments = $this->CommentModel->GetCount($DiscussionID);
$Limit = is_object($this->Data('Comments')) ? $this->Data('Comments')->NumRows() : $Discussion->CountComments;
$Offset = $CountComments - $Limit;
$this->CommentModel->SetWatch($this->Discussion, $Limit, $Offset, $CountComments);
}
} else {
// If this was a draft save, notify the user about the save
$this->InformMessage(sprintf(T('Draft saved at %s'), Gdn_Format::Date()));
}
// And update the draft count
$UserModel = Gdn::UserModel();
$CountDrafts = $UserModel->GetAttribute($Session->UserID, 'CountDrafts', 0);
$this->SetJson('MyDrafts', T('My Drafts'));
$this->SetJson('CountDrafts', $CountDrafts);
}
}
}
// Include data for FireEvent
if (property_exists($this, 'Discussion')) {
$this->EventArguments['Discussion'] = $this->Discussion;
}
if (property_exists($this, 'Comment')) {
$this->EventArguments['Comment'] = $this->Comment;
}
$this->FireEvent('BeforeCommentRender');
if ($this->DeliveryType() == DELIVERY_TYPE_DATA) {
$Comment = $this->Data('Comments')->FirstRow(DATASET_TYPE_ARRAY);
if ($Comment) {
$Photo = $Comment['InsertPhoto'];
if (strpos($Photo, '//') === FALSE) {
$Photo = Gdn_Upload::Url(ChangeBasename($Photo, 'n%s'));
}
$Comment['InsertPhoto'] = $Photo;
}
$this->Data = array('Comment' => $Comment);
$this->RenderData($this->Data);
} else {
require_once $this->FetchViewLocation('helper_functions', 'Discussion');
// Render default view.
$this->Render();
}
}
示例8: Thumbnail
public function Thumbnail()
{
$this->Permission('Garden.SignIn.Allow');
$this->AddJsFile('jquery.jcrop.pack.js');
$this->AddJsFile('profile.js');
$Session = Gdn::Session();
if (!$Session->IsValid()) {
$this->Form->AddError('You must be authenticated in order to use this form.');
}
$this->GetUserInfo();
$this->Form->SetModel($this->UserModel);
$this->Form->AddHidden('UserID', $this->User->UserID);
if ($this->User->Photo == '') {
$this->Form->AddError('You must first upload a picture before you can create a thumbnail.');
}
// Define the thumbnail size
$this->ThumbSize = Gdn::Config('Garden.Thumbnail.Size', 32);
// Define the source (profile sized) picture & dimensions.
if (preg_match('`https?://`i', $this->User->Photo)) {
$this->Form->AddError('You cannont edit the thumbnail of an externally linked profile picture.');
$this->SourceSize = 0;
} else {
$Source = PATH_ROOT . '/uploads/' . ChangeBasename($this->User->Photo, 'p%s');
$this->SourceSize = getimagesize($Source);
}
// Add some more hidden form fields for jcrop
$this->Form->AddHidden('x', '0');
$this->Form->AddHidden('y', '0');
$this->Form->AddHidden('w', $this->ThumbSize);
$this->Form->AddHidden('h', $this->ThumbSize);
$this->Form->AddHidden('HeightSource', $this->SourceSize[1]);
$this->Form->AddHidden('WidthSource', $this->SourceSize[0]);
$this->Form->AddHidden('ThumbSize', $this->ThumbSize);
if ($this->Form->AuthenticatedPostBack() === TRUE) {
try {
// Get the dimensions from the form
// Get the source image
$SourceImage = imagecreatefromjpeg($Source);
// Create the new target image
$TargetImage = imagecreatetruecolor($this->ThumbSize, $this->ThumbSize);
// Fill the target thumbnail
imagecopyresampled($TargetImage, $SourceImage, 0, 0, $this->Form->GetValue('x'), $this->Form->GetValue('y'), $this->ThumbSize, $this->ThumbSize, $this->Form->GetValue('w'), $this->Form->GetValue('h'));
// Save the target thumbnail
imagejpeg($TargetImage, PATH_ROOT . '/uploads/' . ChangeBasename($this->User->Photo, 'n%s'));
} catch (Exception $ex) {
$this->Form->AddError($ex->getMessage());
}
// If there were no problems, redirect back to the user account
if ($this->Form->ErrorCount() == 0) {
Redirect('dashboard/profile/' . Gdn_Format::Url($this->User->Name));
}
}
$this->Render();
}
示例9: Link
public static function Link($Path, $Text = FALSE, $Format = '<a href="%url" class="%class">%text</a>', $Options = array()) {
$Session = Gdn::Session();
$Class = GetValue('class', $Options, '');
$WithDomain = GetValue('WithDomain', $Options);
$Target = GetValue('Target', $Options, '');
switch ($Path) {
case 'activity':
TouchValue('Permissions', $Options, 'Garden.Activity.View');
break;
case 'dashboard':
$Path = 'dashboard/settings';
TouchValue('Permissions', $Options, 'Garden.Settings.Manage');
if (!$Text)
$Text = T('Dashboard');
break;
case 'inbox':
$Path = 'messages/inbox';
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text)
$Text = T('Inbox');
if ($Session->IsValid() && $Session->User->CountUnreadConversations) {
$Class = trim($Class.' HasCount');
$Text .= ' <span class="Alert">'.$Session->User->CountUnreadConversations.'</span>';
}
break;
case 'profile':
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text && $Session->IsValid())
$Text = $Session->User->Name;
if ($Session->IsValid() && $Session->User->CountNotifications) {
$Class = trim($Class.' HasCount');
$Text .= ' <span class="Alert">'.$Session->User->CountNotifications.'</span>';
}
break;
case 'user':
$Path = 'profile';
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text && $Session->IsValid())
$Text = $Session->User->Name;
break;
case 'photo':
$Path = 'profile';
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text && $Session->IsValid()) {
$IsFullPath = strtolower(substr($Session->User->Photo, 0, 7)) == 'http://' || strtolower(substr($Session->User->Photo, 0, 8)) == 'https://';
$PhotoUrl = ($IsFullPath) ? $Session->User->Photo : Gdn_Upload::Url(ChangeBasename($Session->User->Photo, 'n%s'));
$Text = Img($PhotoUrl, array('alt' => htmlspecialchars($Session->User->Name)));
}
break;
case 'drafts':
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text)
$Text = T('My Drafts');
if ($Session->IsValid() && $Session->User->CountDrafts) {
$Class = trim($Class.' HasCount');
$Text .= ' <span class="Alert">'.$Session->User->CountDrafts.'</span>';
}
break;
case 'discussions/bookmarked':
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text)
$Text = T('My Bookmarks');
if ($Session->IsValid() && $Session->User->CountBookmarks) {
$Class = trim($Class.' HasCount');
$Text .= ' <span class="Count">'.$Session->User->CountBookmarks.'</span>';
}
break;
case 'discussions/mine':
TouchValue('Permissions', $Options, 'Garden.SignIn.Allow');
if (!$Text)
$Text = T('My Discussions');
if ($Session->IsValid() && $Session->User->CountDiscussions) {
$Class = trim($Class.' HasCount');
$Text .= ' <span class="Count">'.$Session->User->CountDiscussions.'</span>';
}
break;
case 'signin':
case 'signinout':
// The destination is the signin/signout toggle link.
if ($Session->IsValid()) {
if(!$Text)
$Text = T('Sign Out');
$Path = SignOutUrl($Target);
$Class = ConcatSep(' ', $Class, 'SignOut');
} else {
if(!$Text)
$Text = T('Sign In');
$Attribs = array();
$Path = SignInUrl($Target);
if (SignInPopup() && strpos(Gdn::Request()->Url(), 'entry') === FALSE)
$Class = ConcatSep(' ', $Class, 'SignInPopup');
}
break;
}
if (GetValue('Permissions', $Options) && !$Session->CheckPermission($Options['Permissions']))
//.........这里部分代码省略.........
示例10: SetCalculatedFields
public function SetCalculatedFields(&$User) {
if ($v = GetValue('Attributes', $User))
SetValue('Attributes', $User, @unserialize($v));
if ($v = GetValue('Permissions', $User))
SetValue('Permissions', $User, @unserialize($v));
if ($v = GetValue('Preferences', $User))
SetValue('Preferences', $User, @unserialize($v));
if ($v = GetValue('Photo', $User)) {
if (!preg_match('`^https?://`i', $v)) {
$PhotoUrl = Gdn_Upload::Url(ChangeBasename($v, 'n%s'));
} else {
$PhotoUrl = $v;
}
SetValue('PhotoUrl', $User, $PhotoUrl);
}
}
示例11: T
echo T('Original');
?>
</th>
<td><?php
echo T('Thumbnail');
?>
</td>
</tr>
</thead>
<tbody>
<tr>
<th>
<?php
echo Img('uploads/' . ChangeBasename($this->User->Photo, 'p%s'), array('id' => 'cropbox'));
?>
</th>
<td>
<div style="<?php
echo 'width:' . $this->ThumbSize . 'px;height:' . $this->ThumbSize . 'px;';
?>
overflow:hidden;">
<?php
echo Img('uploads/' . ChangeBasename($this->User->Photo, 'p%s'), array('id' => 'preview'));
?>
</div>
</td>
</tr>
</tbody>
</table>
<?php
echo $this->Form->Close('Save');
示例12: if
<?php if (!defined('APPLICATION')) exit();
if ($this->User->Photo != '') {
?>
<div class="Photo">
<?php
if (strpos($this->User->Photo, 'http') === 0)
echo Img($this->User->Photo);
else
echo Img(Gdn_Upload::Url(ChangeBasename($this->User->Photo, 'p%s')));
?>
</div>
<?php
}
示例13: Base_BeforeAddCss_Handler
public function Base_BeforeAddCss_Handler($Sender)
{
$WebRoot = Gdn::Request()->WebRoot();
// Find all css file paths
$CssToCache = array();
foreach ($Sender->CssFiles() as $CssInfo) {
$CssFile = $CssInfo['FileName'];
if (strpos($CssFile, '/') !== FALSE) {
// A direct path to the file was given.
$CssPaths = array(CombinePaths(array(PATH_ROOT, str_replace('/', DS, $CssFile))));
} else {
$CssGlob = preg_replace('/(.*)(\\.css)/', '\\1*\\2', $CssFile);
$AppFolder = $CssInfo['AppFolder'];
if ($AppFolder == '') {
$AppFolder = $Sender->ApplicationFolder;
}
// CSS comes from one of four places:
$CssPaths = array();
if ($Sender->Theme) {
// 1. Application-specific css. eg. root/themes/theme_name/app_name/design/
// $CssPaths[] = PATH_THEMES . DS . $Sender->Theme . DS . $AppFolder . DS . 'design' . DS . $CssGlob;
// 2. Theme-wide theme view. eg. root/themes/theme_name/design/
// a) Check to see if a customized version of the css is there.
if ($Sender->ThemeOptions) {
$Filenames = GetValueR('Styles.Value', $Sender->ThemeOptions);
if (is_string($Filenames) && $Filenames != '%s') {
$CssPaths[] = PATH_THEMES . DS . $Sender->Theme . DS . 'design' . DS . ChangeBasename($CssFile, $Filenames);
}
}
// b) Use the default filename.
$CssPaths[] = PATH_THEMES . DS . $Sender->Theme . DS . 'design' . DS . $CssFile;
}
// 3. Application default. eg. root/applications/app_name/design/
$CssPaths[] = PATH_APPLICATIONS . DS . $AppFolder . DS . 'design' . DS . $CssFile;
// 4. Garden default. eg. root/applications/dashboard/design/
$CssPaths[] = PATH_APPLICATIONS . DS . 'dashboard' . DS . 'design' . DS . $CssFile;
}
// Find the first file that matches the path.
$CssPath = FALSE;
foreach ($CssPaths as $Glob) {
$Paths = SafeGlob($Glob);
if (is_array($Paths) && count($Paths) > 0) {
$CssPath = $Paths[0];
break;
}
}
if ($CssPath !== FALSE) {
$CssPath = substr($CssPath, strlen(PATH_ROOT) + 1);
$CssPath = str_replace(DS, '/', $CssPath);
$CssToCache[] = $CssPath;
}
}
$CssToCache = array_unique($CssToCache);
// And now search for/add all JS files
$JsToCache = array();
// Add the global js files
$GlobalJS = array('jquery.js', 'jquery.livequery.js', 'jquery.form.js', 'jquery.popup.js', 'jquery.gardenhandleajaxform.js', 'global.js');
foreach ($Sender->JsFiles() as $JsInfo) {
$JsFile = $JsInfo['FileName'];
// Ignore the JsFile if it is in the globaljs minify group (defined in plugins/Minifiy/min/groupsConfig.php).
if (!in_array($JsFile, $GlobalJS)) {
if (strpos($JsFile, '/') !== FALSE) {
// A direct path to the file was given.
$JsPaths = array(CombinePaths(array(PATH_ROOT, str_replace('/', DS, $JsFile)), DS));
} else {
$AppFolder = $JsInfo['AppFolder'];
if ($AppFolder == '') {
$AppFolder = $Sender->ApplicationFolder;
}
// JS can come from a theme, an any of the application folder, or it can come from the global js folder:
$JsPaths = array();
if ($Sender->Theme) {
// 1. Application-specific js. eg. root/themes/theme_name/app_name/design/
$JsPaths[] = PATH_THEMES . DS . $Sender->Theme . DS . $AppFolder . DS . 'js' . DS . $JsFile;
// 2. Garden-wide theme view. eg. root/themes/theme_name/design/
$JsPaths[] = PATH_THEMES . DS . $Sender->Theme . DS . 'js' . DS . $JsFile;
}
// 3. This application folder
$JsPaths[] = PATH_APPLICATIONS . DS . $AppFolder . DS . 'js' . DS . $JsFile;
// 4. Global JS folder. eg. root/js/
$JsPaths[] = PATH_ROOT . DS . 'js' . DS . $JsFile;
// 5. Global JS library folder. eg. root/js/library/
$JsPaths[] = PATH_ROOT . DS . 'js' . DS . 'library' . DS . $JsFile;
}
// Find the first file that matches the path.
$JsPath = FALSE;
foreach ($JsPaths as $Glob) {
$Paths = SafeGlob($Glob);
if (is_array($Paths) && count($Paths) > 0) {
$JsPath = $Paths[0];
break;
}
}
if ($JsPath !== FALSE) {
$JsPath = str_replace(array(PATH_ROOT, DS), array('', '/'), $JsPath);
$JsPath = substr($JsPath, 0, 1) == '/' ? substr($JsPath, 1) : $JsPath;
$JsToCache[] = $JsPath;
}
}
}
//.........这里部分代码省略.........
示例14: C
$BannedPhoto = C('Garden.BannedPhoto', 'http://cdn.vanillaforums.com/images/banned_large.png');
if ($BannedPhoto) {
$Photo = Gdn_Upload::Url($BannedPhoto);
}
}
if ($Photo) {
?>
<div class="Photo PhotoWrap PhotoWrapLarge <?php
echo GetValue('_CssClass', $User);
?>
">
<?php
if (StringBeginsWith($Photo, 'http')) {
$Img = Img($Photo, array('class' => 'ProfilePhotoLarge'));
} else {
$Img = Img(Gdn_Upload::Url(ChangeBasename($Photo, 'p%s')), array('class' => 'ProfilePhotoLarge'));
}
if (!$User->Banned && (Gdn::Session()->UserID == $User->UserID || Gdn::Session()->CheckPermission('Garden.Users.Edit'))) {
echo Anchor(Wrap(T('Change Picture')), '/profile/picture?userid=' . $User->UserID, 'ChangePicture');
}
echo $Img;
?>
</div>
<?php
} else {
if ($User->UserID == Gdn::Session()->UserID || Gdn::Session()->CheckPermission('Garden.Users.Edit')) {
?>
<div class="Photo"><?php
echo Anchor(T('Add a Profile Picture'), '/profile/picture?userid=' . $User->UserID, 'AddPicture BigButton');
?>
</div>
示例15: array
$Col = 0;
$Classes = array('FirstCol', 'MiddleCol', 'LastCol');
foreach ($this->data('ThemeInfo.Options.Styles') as $Key => $Options) {
$Basename = val('Basename', $Options, '%s');
if ($Col == 0) {
echo '<tr>';
}
$Active = '';
if ($this->data('ThemeOptions.Styles.Key') == $Key || !$this->data('ThemeOptions.Styles.Key') && $Basename == '%s') {
$Active = ' Active';
}
$KeyID = str_replace(' ', '_', $Key);
echo "<td id=\"{$KeyID}_td\" class=\"{$Classes[$Col]}{$Active}\">";
echo '<h4>', t($Key), '</h4>';
// Look for a screenshot for for the style.
$Screenshot = SafeGlob(PATH_THEMES . DS . $this->data('ThemeFolder') . DS . 'design' . DS . ChangeBasename('screenshot.*', $Basename), array('gif', 'jpg', 'png'));
if (is_array($Screenshot) && count($Screenshot) > 0) {
$Screenshot = basename($Screenshot[0]);
echo img('/themes/' . $this->data('ThemeFolder') . '/design/' . $Screenshot, array('alt' => t($Key), 'width' => '160'));
}
$Disabled = $Active ? ' Disabled' : '';
echo '<div class="Buttons">', anchor(t('Select'), '?style=' . urlencode($Key), 'SmallButton SelectThemeStyle' . $Disabled, array('Key' => $Key)), '</div>';
if (isset($Options['Description'])) {
echo '<div class="Info2">', $Options['Description'], '</div>';
}
echo '</td>';
$Col = ($Col + 1) % 3;
if ($Col == 0) {
echo '</tr>';
}
}