コード例 #1
0
ファイル: SpecialView.php プロジェクト: nbdd0121/MW-Avatar
 public function execute($par)
 {
     // Shortcut by using $par
     if ($par) {
         $this->getOutput()->redirect($this->getTitle()->getLinkURL(array('user' => $par)));
         return;
     }
     $this->setHeaders();
     $this->outputHeader();
     // Parse options
     $opt = new \FormOptions();
     $opt->add('user', '');
     $opt->add('delete', '');
     $opt->add('reason', '');
     $opt->fetchValuesFromRequest($this->getRequest());
     // Parse user
     $user = $opt->getValue('user');
     $userObj = \User::newFromName($user);
     $userExists = $userObj && $userObj->getId() !== 0;
     // If current task is delete and user is not allowed
     $canDoAdmin = $this->getUser()->isAllowed('avataradmin');
     if ($opt->getValue('delete')) {
         if (!$canDoAdmin) {
             throw new \PermissionsError('avataradmin');
         }
         // Delete avatar if the user exists
         if ($userExists) {
             if (Avatars::deleteAvatar($userObj)) {
                 global $wgAvatarLogInRC;
                 $logEntry = new \ManualLogEntry('avatar', 'delete');
                 $logEntry->setPerformer($this->getUser());
                 $logEntry->setTarget($userObj->getUserPage());
                 $logEntry->setComment($opt->getValue('reason'));
                 $logId = $logEntry->insert();
                 $logEntry->publish($logId, $wgAvatarLogInRC ? 'rcandudp' : 'udp');
             }
         }
     }
     $this->getOutput()->addModules(array('mediawiki.userSuggest'));
     $this->showForm($user);
     if ($userExists) {
         $haveAvatar = Avatars::hasAvatar($userObj);
         if ($haveAvatar) {
             $html = \Xml::tags('img', array('src' => Avatars::getLinkFor($user, 'original') . '&nocache&ver=' . dechex(time()), 'height' => 400), '');
             $html = \Xml::tags('p', array(), $html);
             $this->getOutput()->addHTML($html);
             // Add a delete button
             if ($canDoAdmin) {
                 $this->showDeleteForm($user);
             }
         } else {
             $this->getOutput()->addWikiMsg('viewavatar-noavatar');
         }
     } else {
         if ($user) {
             $this->getOutput()->addWikiMsg('viewavatar-nouser');
         }
     }
 }
コード例 #2
0
 public function loadModel($id)
 {
     //$model=Avatars::model()->findByPk($id);
     $model = Avatars::model()->find('usersid=:usersid', array(':usersid' => Yii::app()->user->id));
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
コード例 #3
0
ファイル: SpecialUpload.php プロジェクト: nbdd0121/MW-Avatar
 private function processUpload()
 {
     $request = $this->getRequest();
     $dataurl = $request->getVal('avatar');
     if (!$dataurl || parse_url($dataurl, PHP_URL_SCHEME) !== 'data') {
         $this->displayMessage($this->msg('avatar-notuploaded'));
         return false;
     }
     $img = Thumbnail::open($dataurl);
     global $wgMaxAvatarResolution;
     switch ($img->type) {
         case IMAGETYPE_GIF:
         case IMAGETYPE_PNG:
         case IMAGETYPE_JPEG:
             break;
         default:
             $this->displayMessage($this->msg('avatar-invalid'));
             return false;
     }
     // Must be square
     if ($img->width !== $img->height) {
         $this->displayMessage($this->msg('avatar-notsquare'));
         return false;
     }
     // Check if image is too small
     if ($img->width < 32 || $img->height < 32) {
         $this->displayMessage($this->msg('avatar-toosmall'));
         return false;
     }
     // Check if image is too big
     if ($img->width > $wgMaxAvatarResolution || $img->height > $wgMaxAvatarResolution) {
         $this->displayMessage($this->msg('avatar-toolarge'));
         return false;
     }
     $user = $this->getUser();
     Avatars::deleteAvatar($user);
     // Avatar directories
     global $wgAvatarUploadDirectory;
     $uploadDir = $wgAvatarUploadDirectory . '/' . $this->getUser()->getId() . '/';
     @mkdir($uploadDir, 0777, true);
     // We do this to convert format to png
     $img->createThumbnail($wgMaxAvatarResolution, $uploadDir . 'original.png');
     // We only create thumbnail with default resolution here. Others are generated on demand
     global $wgDefaultAvatarRes;
     $img->createThumbnail($wgDefaultAvatarRes, $uploadDir . $wgDefaultAvatarRes . '.png');
     $img->cleanup();
     $this->displayMessage($this->msg('avatar-saved'));
     global $wgAvatarLogInRC;
     $logEntry = new \ManualLogEntry('avatar', 'upload');
     $logEntry->setPerformer($this->getUser());
     $logEntry->setTarget($this->getUser()->getUserPage());
     $logId = $logEntry->insert();
     $logEntry->publish($logId, $wgAvatarLogInRC ? 'rcandudp' : 'udp');
     return true;
 }
コード例 #4
0
 public function execute($par)
 {
     global $wgDefaultAvatar, $wgDefaultAvatarRes;
     $path = $wgDefaultAvatar;
     if ($par) {
         // Parse parts
         $parts = explode('/', $par, 2);
         $username = $parts[0];
         $res = count($parts) === 2 ? Avatars::normalizeResolution($parts[1]) : $wgDefaultAvatarRes;
         $user = \User::newFromName($username);
         $path = Avatars::getAvatar($user, $res);
     }
     $this->getOutput()->disable();
     $response = $this->getRequest()->response();
     // We use send custom header, in order to control cache
     $response->statusHeader('302');
     $response->header('Content-Type: text/html; charset=utf-8');
     $response->header('Cache-Control: public, max-age=86400');
     // $response->header('Cache-Control: no-cache');
     $response->header('Location: ' . $path);
 }
コード例 #5
0
ファイル: avatar_user.php プロジェクト: ming-hai/XoopsCore
 public function __construct(AvatarsAvatar $obj)
 {
     $xoops = Xoops::getInstance();
     $helper = Avatars::getInstance();
     // Get avatar handler
     $avatar_handler = $helper->getHandlerAvatar();
     $action = $_SERVER['REQUEST_URI'];
     parent::__construct(AvatarsLocale::USERFORM, 'avatar_user_form', $action, "post", true);
     $this->setExtra('enctype="multipart/form-data"');
     // select and uploads
     $avatar_select = new Xoops\Form\Select('', 'user_avatar', $xoops->user->getVar('user_avatar'));
     $avatar_list = $avatar_handler->getListByType('S', true);
     $avatar_selected = $xoops->user->getVar("user_avatar", "E");
     $avatar_selected = in_array($avatar_selected, array_keys($avatar_list)) ? $avatar_selected : "blank.gif";
     $avatar_select->addOptionArray($avatar_list);
     $xoops_url = \XoopsBaseConfig::get('url');
     $xoops_upload_url = \XoopsBaseConfig::get('uploads-url');
     $avatar_select->setExtra("onchange='showImgSelected(\"avatar\", \"user_avatar\", \"uploads\", \"\", \"" . $xoops_url . "\")'");
     $avatar_tray = new Xoops\Form\ElementTray(XoopsLocale::FILE, '&nbsp;');
     $avatar_tray->addElement($avatar_select);
     $avatar_tray->addElement(new Xoops\Form\Label('', "<a href=\"javascript:openWithSelfMain('" . $xoops_url . "/modules/avatars/popup.php','avatars',600,400);\">" . XoopsLocale::LIST_ . "</a><br />"));
     $avatar_tray->addElement(new Xoops\Form\Label('', "<br /><img src='" . $xoops_upload_url . "/" . $avatar_selected . "' name='avatar' id='avatar' alt='' />"));
     if ($helper->getConfig('avatars_allowupload') == 1 && $xoops->user->getVar('posts') >= $helper->getConfig('avatars_postsrequired')) {
         $fileseltray_img = new Xoops\Form\ElementTray('<br />', '<br /><br />');
         $fileseltray_img->addElement(new Xoops\Form\File(XoopsLocale::A_UPLOAD, 'user_avatar'), false);
         $avatar_tray->addElement($fileseltray_img);
     }
     $this->addElement($avatar_tray);
     // Hidden
     $this->addElement(new Xoops\Form\Hidden('avatar_type', 'c'));
     $this->addElement(new Xoops\Form\Hidden('uid', $xoops->user->getVar('uid')));
     $this->addElement(new Xoops\Form\Hidden('op', 'save'));
     $this->addElement(new Xoops\Form\Hidden('avatar_id', $obj->getVar('avatar_id', 'e')));
     // Button
     $this->addElement(new Xoops\Form\Button('', 'submit', XoopsLocale::A_SUBMIT, 'submit'));
 }
コード例 #6
0
ファイル: avatar_custom.php プロジェクト: ming-hai/XoopsCore
*/
use Xoops\Core\Request;
/**
 * avatars module
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         avatar
 * @since           2.6.0
 * @author          Mage Grégory (AKA Mage)
 * @version         $Id$
 */
include __DIR__ . '/header.php';
// Get main instance
$xoops = Xoops::getInstance();
$helper = Avatars::getInstance();
$xoops_upload_path = \XoopsBaseConfig::get('uploads-path');
$xoops_upload_url = \XoopsBaseConfig::get('uploads-url');
// Get avatar handler
$avatar_Handler = $helper->getHandlerAvatar();
// Parameters
$nb_avatars = $helper->getConfig('avatars_pager');
$mimetypes = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png');
$upload_size = $helper->getConfig('avatars_imagefilesize');
$width = $helper->getConfig('avatars_imagewidth');
$height = $helper->getConfig('avatars_imageheight');
// Get Action type
$op = Request::getCmd('op', 'list');
// Call Header
$xoops->header('admin:avatars/avatars_admin_custom.tpl');
$admin_page = new \Xoops\Module\Admin();
コード例 #7
0
ファイル: Users.php プロジェクト: holyshved/guestbook
 protected function afterSave()
 {
     parent::afterSave();
     if ($this->isNewRecord) {
         $avatars = new Avatars();
         $avatars->usersid = $this->id;
         $avatars->image = 'noimage.png';
         $avatars->save();
     }
     return parent::afterSave();
 }
コード例 #8
0
ファイル: create.php プロジェクト: holyshved/guestbook
<?php

/* @var $this AvatarsController */
/* @var $model Avatars */
$this->breadcrumbs = array('Avatars' => array('index'), 'Create');
$this->menu = array(array('label' => 'List Avatars', 'url' => array('index')), array('label' => 'Manage Avatars', 'url' => array('admin')));
?>

<h1>Create Avatars</h1>

<?php 
$this->renderPartial('_form', array('model' => $model = Avatars::model()->find('usersid=:usersid', array(':usersid' => Yii::app()->user->id))));
コード例 #9
0
ファイル: Hooks.php プロジェクト: zoglun/MW-Avatar
 public static function onGetPreferences(\User $user, &$preferences)
 {
     $link = \Linker::link(\SpecialPage::getTitleFor("UploadAvatar"), wfMsg('uploadavatar'));
     $preferences['editavatar'] = array('type' => 'info', 'raw' => true, 'label-message' => 'prefs-editavatar', 'default' => '<img src="' . Avatars::getLinkFor($user->getName()) . '" width="32"></img> ' . $link, 'section' => 'personal/info');
     return true;
 }
コード例 #10
0
ファイル: popup.php プロジェクト: redmexico/XoopsCore
<?php

/*
 You may not change or alter any portion of this comment or credits
 of supporting developers from this source code or any supporting source code
 which is considered copyrighted (c) material of the original comment or credit authors.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
/**
 * avatars extension
 *
 * @copyright       XOOPS Project (http://xoops.org)
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
 * @package         avatar
 * @since           2.6.0
 * @author          Mage Grégory (AKA Mage)
 * @version         $Id$
 */
include dirname(dirname(__DIR__)) . '/mainfile.php';
$xoops = Xoops::getInstance();
$xoops->disableErrorReporting();
$xoops->simpleHeader(false);
$criteria = new Criteria('avatar_type', 'S');
$tpl = new XoopsTpl();
$tpl->assign('avatars', Avatars::getInstance()->getHandlerAvatar()->getObjects($criteria, false, false));
$tpl->assign('closebutton', 1);
$tpl->display('module:avatars/avatars_popup.tpl');
$xoops->simpleFooter();