Пример #1
0
function mediashare_searchapi_search_check(&$args)
{
    $datarow =& $args['datarow'];
    list($albumId, $mediaId) = explode(':', $datarow['extra']);
    $datarow['url'] = pnModUrl('mediashare', 'user', 'main', array('aid' => $albumId, 'mid' => $mediaId));
    return true;
}
function smarty_function_mediashare_breadcrumb($params, &$smarty)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    if (!isset($params['albumId'])) {
        $smarty->trigger_error(__f('Missing [%1$s] in \'%2$s\'', array('albumId', 'mediashare_breadcrumb'), $dom));
        return false;
    }
    $mode = isset($params['mode']) ? $params['mode'] : 'view';
    $breadcrumb = pnModAPIFunc('mediashare', 'user', 'getAlbumBreadcrumb', array('albumId' => (int) $params['albumId']));
    if ($breadcrumb === false) {
        $smarty->trigger_error(LogUtil::getErrorMessagesText());
        return false;
    }
    $urlType = $mode == 'edit' ? 'edit' : 'user';
    $url = pnModUrl('mediashare', $urlType, 'view', array('aid' => 0));
    $result = "<div class=\"mediashare-breadcrumb\">";
    $first = true;
    foreach ($breadcrumb as $album) {
        $url = DataUtil::formatForDisplay(pnModUrl('mediashare', $urlType, 'view', array('aid' => $album['id'])));
        $result .= ($first ? '' : ' &raquo; ') . "<a href=\"{$url}\">" . htmlspecialchars($album['title']) . "</a>";
        $first = false;
    }
    $result .= "</div>";
    if (isset($params['assign'])) {
        $smarty->assign($params['assign'], $result);
    }
    return $result;
}
Пример #3
0
function mediashare_invitationapi_resendInvitation(&$args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $invitationId = $args['invitationId'];
    $invitation = pnModAPIFunc('mediashare', 'invitation', 'getById', array('id' => $invitationId));
    if ($invitation == null) {
        return false;
    }
    $emails = $args['emails'];
    // Split and trim e-mails
    $emails = str_replace("\n", ' ', $emails);
    $emails = str_replace("\r", ' ', $emails);
    $emails = str_replace(";", ' ', $emails);
    $emails = str_replace(",", ' ', $emails);
    $emailList = explode(' ', $emails);
    foreach ($emailList as $email) {
        $email = trim($email);
        if ($email != '') {
            $args['email'] = $email;
            $message = $args['text'];
            $message .= "\n\n";
            $invitationUrl = pnModUrl('mediashare', 'invitation', 'open', array('inv' => $invitation['key']), false, false, true);
            $message .= str_replace('%url%', $invitationUrl, __('<p>Just follow the link below (click on it or copy it to your webbrowser)</p> <p><a href="%url%">%url%</a></p>', $dom));
            $message = str_replace("\n", '<br/>', $message);
            $params = array('toaddress' => $email, 'fromname' => $args['sender'], 'fromaddress' => $args['senderemail'], 'subject' => $args['subject'], 'body' => $message, 'html' => true);
            if (!pnModAPIFunc('Mailer', 'user', 'sendmessage', $params)) {
                return LogUtil::registerError(__('Some error occured sending the invitation.', $dom));
            }
        }
    }
    return true;
}
Пример #4
0
function mediashare_external_pasteitem($args)
{
    // FIXME access check
    $albumId = mediashareGetIntUrl('aid', $args, 0);
    $mediaId = mediashareGetIntUrl('mid', $args, 0);
    $mode = FormUtil::getPassedValue('mode');
    if (isset($_POST['backButton'])) {
        return pnRedirect(pnModUrl('mediashare', 'external', 'finditem', array('aid' => $albumId, 'mid' => $mediaId, 'mode' => $mode)));
    }
    $mediaItem = pnModAPIFunc('mediashare', 'user', 'getMediaItem', array('mediaId' => $mediaId));
    /*
        if (!($handler = pnModAPIFunc('mediashare', 'mediahandler', 'loadHandler', array('handlerName' => $mediaItem['mediaHandler'])))) {
            return false;
        }
    */
    $render =& pnRender::getInstance('mediashare', false);
    mediashareExternalLoadTheme($render);
    $render->assign('albumId', $albumId);
    $render->assign('mediaId', $mediaId);
    $render->assign('mediaItem', $mediaItem);
    if ($mediaItem['mediaHandler'] != 'extapp') {
        $mediadir = pnModAPIFunc('mediashare', 'user', 'getRelativeMediadir');
        $render->assign('thumbnailUrl', $mediadir . $mediaItem['thumbnailRef']);
        $render->assign('previewUrl', $mediadir . $mediaItem['previewRef']);
        $render->assign('originalUrl', $mediadir . $mediaItem['originalRef']);
    } else {
        $render->assign('thumbnailUrl', "{$mediaItem['thumbnailRef']}");
        $render->assign('previewUrl', "{$mediaItem['previewRef']}");
        $render->assign('originalUrl', "{$mediaItem['originalRef']}");
    }
    $render->assign('mode', $mode);
    echo $render->fetch('mediashare_external_pasteitem.html');
    return true;
}
Пример #5
0
/**
 * View album in edit-mode
 */
function mediashare_edit_view($args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    if (!pnUserLoggedIn()) {
        return LogUtil::registerError(__('You must be logged in to use this feature', $dom));
    }
    $albumId = mediashareGetIntUrl('aid', $args, 1);
    // FIXME $page    = mediashareGetIntUrl('page', $args, 0);
    // Check access
    if (!mediashareAccessAlbum($albumId, mediashareAccessRequirementEditSomething, '')) {
        return LogUtil::registerPermissionError();
    }
    // Check multi-edit buttons
    $selectedMediaId = FormUtil::getPassedValue('mediaId');
    if ((isset($_POST['multiedit']) || isset($_POST['multidelete']) || isset($_POST['multimove'])) && count($selectedMediaId) > 0) {
        $mediaIdList = implode(',', $selectedMediaId);
        if (isset($_POST['multiedit'])) {
            $func = 'multieditmedia';
        } else {
            if (isset($_POST['multidelete'])) {
                $func = 'multideletemedia';
            } else {
                $func = 'multimovemedia';
            }
        }
        return pnRedirect(pnModUrl('mediashare', 'edit', $func, array('mid' => $mediaIdList, 'aid' => $albumId)));
    }
    // Fetch current album
    if (!($album = pnModAPIFunc('mediashare', 'user', 'getAlbum', array('albumId' => $albumId)))) {
        return false;
    }
    if ($album === true) {
        return LogUtil::registerError(__('Unknown album.', $dom));
    }
    // Fetch subalbums
    if (($subAlbums = pnModAPIFunc('mediashare', 'user', 'getSubAlbums', array('albumId' => $albumId, 'access' => mediashareAccessRequirementEditSomething))) === false) {
        return false;
    }
    // Fetch media items
    if (($items = pnModAPIFunc('mediashare', 'user', 'getMediaItems', array('albumId' => $albumId))) === false) {
        return false;
    }
    // Build the output
    $render =& pnRender::getInstance('mediashare', false);
    $render->assign('album', $album);
    $render->assign('subAlbums', $subAlbums);
    $render->assign('mediaItems', $items);
    $render->assign('thumbnailSize', pnModGetVar('mediashare', 'thumbnailSize'));
    if (!mediashareAddAccess($render, $album)) {
        return false;
    }
    return $render->fetch('mediashare_edit_view.html');
}
Пример #6
0
function smarty_function_mediashare_rss($params, $smarty)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    if (!isset($params['title'])) {
        $smarty->trigger_error(__f('Missing [%1$s] in \'%2$s\'', array('title', 'mediashare_rss'), $dom));
        return false;
    }
    if (!isset($params['urlParam']) && !isset($params['urlValue'])) {
        $smarty->trigger_error(__f('Missing [%1$s] in \'%2$s\'', array('urlParam & urlValue', 'mediashare_rss'), $dom));
        return false;
    }
    $url = DataUtil::formatForDisplay(pnModUrl('mediashare', 'user', 'xmllist', array($params['urlParam'] => $params['urlValue'], 'order' => 'created', 'orderdir' => 'desc')));
    $title = $params['title'];
    $link = "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"{$title}\" href=\"{$url}\"/>\n";
    PageUtil::addVar('rawtext', $link);
    $imageUrl = DataUtil::formatForDisplay('modules/mediashare/pnimages/rss.gif');
    if ($params['mode'] == 'text') {
        $html = "<span class=\"rss\">[<a href=\"{$url}\">RSS</a>]</span>";
    } else {
        $html = "<a href=\"{$url}\"><img src=\"{$imageUrl}\" alt=\"{$title}\" title=\"{$title}\" class=\"clickable\"/></a>";
    }
    return $html;
}
Пример #7
0
function mediashare_randomblock_display($blockinfo)
{
    // Security check
    if (!SecurityUtil::checkPermission('mediashare:randomblock:', "{$blockinfo['title']}::{$blockinfo['bid']}", ACCESS_READ)) {
        return;
    }
    $dom = ZLanguage::getModuleDomain('mediashare');
    // Get variables from content block
    $vars = pnBlockVarsFromContent($blockinfo['content']);
    $sessionVarName = 'mediashare_block_' . $blockinfo['bid'];
    $sessionVars = SessionUtil::getVar($sessionVarName);
    if ($sessionVars == '' || $sessionVars == null) {
        $sessionVars = array();
    }
    if (isset($sessionVars['oldContent']) && isset($sessionVars['lastUpdate'])) {
        $past = time() - $sessionVars['lastUpdate'];
        if ($past < $vars['cacheTime']) {
            // No need to refresh - move old content into real content
            $blockinfo['content'] = $sessionVars['oldContent'];
            return themesideblock($blockinfo);
        }
    }
    if ($vars['type'] == 'album') {
        $randomInfo = pnModAPIFunc('mediashare', 'user', 'getRandomMediaItem', array('albumId' => $vars['albumId'], 'mode' => 'album'));
    } else {
        if ($vars['type'] == 'latest') {
            $randomInfo = pnModAPIFunc('mediashare', 'user', 'getRandomMediaItem', array('latest' => true, 'mode' => 'latest'));
        } else {
            $randomInfo = pnModAPIFunc('mediashare', 'user', 'getRandomMediaItem');
        }
    }
    if ($randomInfo === false) {
        return false;
    }
    $mediaId = $randomInfo['mediaId'];
    $albumId = $randomInfo['albumId'];
    if (empty($mediaId)) {
        return;
    }
    // Get image info
    $mediaInfo = pnModAPIFunc('mediashare', 'user', 'getMediaItem', array('mediaId' => $mediaId));
    // Get album info
    $albumInfo = pnModAPIFunc('mediashare', 'user', 'getAlbum', array('albumId' => $albumId));
    $originalURL = pnModAPIFunc('mediashare', 'user', 'getMediaUrl', array('mediaItem' => $mediaInfo, 'src' => 'originalRef'));
    $previewURL = pnModAPIFunc('mediashare', 'user', 'getMediaUrl', array('mediaItem' => $mediaInfo, 'src' => 'previewRef'));
    $thumbnailURL = pnModAPIFunc('mediashare', 'user', 'getMediaUrl', array('mediaItem' => $mediaInfo, 'src' => 'thumbnailRef'));
    $albumURL = pnModUrl('mediashare', 'user', 'view', array('aid' => $albumId, 'mid' => $mediaId));
    // Create the final HTML by substituting various macros into the user specified HTML code
    $substitutes = array('originalURL' => $originalURL, 'previewURL' => $previewURL, 'thumbnailURL' => $thumbnailURL, 'albumURL' => $albumURL, 'title' => $mediaInfo['title'], 'owner' => __('Unknown', $dom), 'albumTitle' => $albumInfo['title']);
    $html = $vars['html'];
    foreach ($substitutes as $key => $value) {
        $pattern = '${' . $key . '}';
        $html = str_replace($pattern, $value, $html);
    }
    $blockinfo['content'] = $html;
    $sessionVars['oldContent'] = $html;
    $sessionVars['lastUpdate'] = time();
    SessionUtil::setVar($sessionVarName, $sessionVars);
    // ... and return encapsulated in a theme block
    return themesideblock($blockinfo);
}
Пример #8
0
function postcalendar_user_delete()
{
    if (!(bool) PC_ACCESS_ADD) {
        return _POSTCALENDAR_NOAUTH;
    }
    $output = new pnHTML();
    $output->SetInputMode(_PNH_VERBATIMINPUT);
    $uname = $_SESSION['authUser'];
    list($action, $pc_event_id) = pnVarCleanFromInput('action', 'pc_event_id');
    $event =& postcalendar_userapi_pcGetEventDetails($pc_event_id);
    if ($uname != $event['uname']) {
        if (!validateGroupStatus($uname, getUsername($event['uname']))) {
            return _PC_CAN_NOT_DELETE;
        }
    }
    //if($uname != $event['uname']) {
    //    return _PC_CAN_NOT_DELETE;
    //}
    unset($event);
    $output->FormStart(pnModUrl(__POSTCALENDAR__, 'user', 'deleteevents'));
    $output->FormHidden('pc_eid', $pc_event_id);
    $output->Text(_PC_DELETE_ARE_YOU_SURE . ' ');
    $output->FormSubmit(_PC_ADMIN_YES);
    $output->FormEnd();
    $output->Linebreak(2);
    $output->Text(pnModAPIFunc(__POSTCALENDAR__, 'user', 'eventDetail', array('eid' => $pc_event_id, 'cacheid' => '', 'print' => 0, 'Date' => '')));
    $output->Linebreak(2);
    return $output->GetOutput();
}
Пример #9
0
function postcalendar_admin_modifyconfig($msg = '', $showMenu = true)
{
    if (!PC_ACCESS_ADMIN) {
        return _POSTCALENDAR_NOAUTH;
    }
    $output = new pnHTML();
    $pcModInfo = pnModGetInfo(pnModGetIDFromName(__POSTCALENDAR__));
    $pcDir = pnVarPrepForOS($pcModInfo['directory']);
    $defaultsURL = pnModURL(__POSTCALENDAR__, 'admin', 'resetDefaults');
    $defaultsText = _EDIT_PC_CONFIG_DEFAULT;
    $jsColorPicker = <<<EOF
    <script LANGUAGE="Javascript" SRC="modules/{$pcDir}/pnincludes/AnchorPosition.js"></SCRIPT>
    <script LANGUAGE="Javascript" SRC="modules/{$pcDir}/pnincludes/PopupWindow.js"></SCRIPT>
    <script LANGUAGE="Javascript" SRC="modules/{$pcDir}/pnincludes/ColorPicker2.js"></SCRIPT>
    <script LANGUAGE="JavaScript">
    var cp = new ColorPicker('window');
    // Runs when a color is clicked
    function pickColor(color) {
\t    field.value = color;
\t}

    var field;
    function pick(anchorname) {
\t    field = document.forms.pcConfig.pcDayHighlightColor;
\t    cp.show(anchorname);
\t}
    </SCRIPT>
EOF;
    $output->SetInputMode(_PNH_VERBATIMINPUT);
    $header = <<<EOF
\t<html>
\t<head></head>
\t<body bgcolor=
EOF;
    $header .= '"' . $GLOBALS['style']['BGCOLOR2'] . '">';
    $output->Text($header);
    $output->Text($jsColorPicker);
    if ($showMenu) {
        $output->Text(postcalendar_adminmenu());
    }
    if (!empty($msg)) {
        $output->Text('<center><div style="padding:5px; border:1px solid green; background-color: lightgreen;">');
        $output->Text("<b>{$msg}</b>");
        $output->Text('</div></center><br />');
    }
    $formURL = pnModUrl(__POSTCALENDAR__, 'admin', 'updateconfig');
    /*$output->Text("<form action=\"$formURL\" method=\"post\" enctype=\"application/x-www-form-urlencoded\" name=\"pcConfig\" id=\"pcConfig\">");
        $output->Text('<table border="1" cellpadding="5" cellspacing="1">');
        $output->Text('<tr><td align="left">'._PC_ADMIN_GLOBAL_SETTINGS,'</td>');
    	$output->Text("<td nowrap><a href=\"$defaultsURL\">$defaultsText</a></td></tr>");
    
        $settings = array();
        $output->SetOutputMode(_PNH_RETURNOUTPUT);
        $i=0;
    
    	// global PostCalendar config options
        $settings[$i][] = $output->Text(_PC_NOTIFY_ADMIN);
        $settings[$i++][] = $output->FormCheckBox('pcNotifyAdmin', pnModGetVar(__POSTCALENDAR__,'pcNotifyAdmin'));
        $settings[$i][] = $output->Text(_PC_NOTIFY_EMAIL);
    	$settings[$i++][] = $output->FormText('pcNotifyEmail', pnModGetVar(__POSTCALENDAR__,'pcNotifyEmail'));
    
    	$settings[$i][] = $output->Text(_PC_ALLOW_DIRECT_SUBMIT);
        $settings[$i++][] = $output->FormCheckBox('pcAllowDirectSubmit', pnModGetVar(__POSTCALENDAR__,'pcAllowDirectSubmit'));
        $settings[$i][] = $output->Text(_PC_ALLOW_USER_CALENDAR);
        $settings[$i++][] = $output->FormCheckBox('pcAllowUserCalendar', pnModGetVar(__POSTCALENDAR__,'pcAllowUserCalendar'));
    	$settings[$i][] = $output->Text(_PC_ALLOW_SITEWIDE_SUBMIT);
        $settings[$i++][] = $output->FormCheckBox('pcAllowSiteWide', pnModGetVar(__POSTCALENDAR__,'pcAllowSiteWide'));
        $settings[$i][] = $output->Text(_PC_LIST_HOW_MANY);
        $settings[$i++][] = $output->FormText('pcListHowManyEvents', pnModGetVar(__POSTCALENDAR__,'pcListHowManyEvents'),5);
        $settings[$i][] = $output->Text(_PC_TIME24HOURS);
        $settings[$i++][] = $output->FormCheckBox('pcTime24Hours', pnModGetVar(__POSTCALENDAR__,'pcTime24Hours'));
    	$settings[$i][] = $output->Text(_PC_TIME_INCREMENT);
        $settings[$i++][] = $output->FormText('pcTimeIncrement', pnModGetVar(__POSTCALENDAR__,'pcTimeIncrement'),5);
        $settings[$i][] = $output->Text(_PC_EVENTS_IN_NEW_WINDOW);
        $settings[$i++][] = $output->FormCheckBox('pcEventsOpenInNewWindow', pnModGetVar(__POSTCALENDAR__,'pcEventsOpenInNewWindow'));
        $settings[$i][] = $output->Text(_PC_INTERNATIONAL_DATES);
        $settings[$i++][] = $output->FormCheckBox('pcUseInternationalDates', pnModGetVar(__POSTCALENDAR__,'pcUseInternationalDates'));
        $settings[$i][] = $output->Text(_PC_EVENT_DATE_FORMAT);
        $settings[$i++][] = $output->FormText('pcEventDateFormat', pnModGetVar(__POSTCALENDAR__,'pcEventDateFormat'));
        $settings[$i][] = $output->Text(_PC_DISPLAY_TOPICS);
        //$settings[$i++][] = $output->FormCheckBox('pcDisplayTopics', pnModGetVar(__POSTCALENDAR__,'pcDisplayTopics'));
        $settings[$i][] = $output->Text(_PC_FIRST_DAY_OF_WEEK);
            $options = array();
            $selected = pnModGetVar(__POSTCALENDAR__,'pcFirstDayOfWeek');
            $options[0]['id']       = '0';
            $options[0]['selected'] = ($selected == 0);
            $options[0]['name']     = _PC_SUNDAY;
            $options[1]['id']       = '1';
            $options[1]['selected'] = ($selected == 1);
            $options[1]['name']     = _PC_MONDAY;
            $options[2]['id']       = '6';
            $options[2]['selected'] = ($selected == 6);
            $options[2]['name']     = _PC_SATURDAY;
    	$settings[$i++][] = $output->FormSelectMultiple('pcFirstDayOfWeek', $options);
    	$settings[$i][] = $output->Text(_PC_DEFAULT_VIEW);
            $options = array();
            $selected = pnModGetVar(__POSTCALENDAR__,'pcDefaultView');
            $options[0]['id']       = 'day';
            $options[0]['selected'] = ($selected == 'day');
            $options[0]['name']     = _CAL_DAYVIEW;
            $options[1]['id']       = 'week';
            $options[1]['selected'] = ($selected == 'week');
            $options[1]['name']     = _CAL_WEEKVIEW;
            $options[2]['id']       = 'month';
            $options[2]['selected'] = ($selected == 'month');
            $options[2]['name']     = _CAL_MONTHVIEW;
    		$options[3]['id']       = 'year';
            $options[3]['selected'] = ($selected == 'year');
            $options[3]['name']     = _CAL_YEARVIEW;
        $settings[$i++][] = $output->FormSelectMultiple('pcDefaultView', $options);
        $settings[$i][] = $output->Text(_PC_DAY_HIGHLIGHT_COLOR . ' [<a HREF="#" onClick="pick(\'pick\');return false;" NAME="pick" ID="pick">pick</a>]');
        $settings[$i++][] = $output->FormText('pcDayHighlightColor', pnModGetVar(__POSTCALENDAR__,'pcDayHighlightColor'));
        $settings[$i][] = $output->Text(_PC_USE_JS_POPUPS);
        $settings[$i++][] = $output->FormCheckBox('pcUsePopups', pnModGetVar(__POSTCALENDAR__,'pcUsePopups'));
    	$settings[$i][] = $output->Text(_PC_USE_CACHE);
        $settings[$i++][] = $output->FormCheckBox('pcUseCache', pnModGetVar(__POSTCALENDAR__,'pcUseCache'));
    	$settings[$i][] = $output->Text(_PC_CACHE_LIFETIME);
        $settings[$i++][] = $output->FormText('pcCacheLifetime', pnModGetVar(__POSTCALENDAR__,'pcCacheLifetime'));
    
        $templatelist = array();
        $handle = opendir('modules/'.$pcDir.'/pntemplates');
    	$hide_list = array('.','..','CVS','compiled','cache');
    	while($f=readdir($handle))
        {   if(!in_array($f,$hide_list) && !ereg("[.]",$f)) {
                $templatelist[] = $f;
            }
        }
        closedir($handle); unset($hide_list);
        sort($templatelist);
        $tcount = count($templatelist);
        $settings[$i][] = $output->Text(_PC_DEFAULT_TEMPLATE);
            $options = array();
            $selected = pnModGetVar(__POSTCALENDAR__,'pcTemplate');
            for($t=0;$t<$tcount;$t++) {
                $options[$t]['id']       = $templatelist[$t];
                $options[$t]['selected'] = ($selected == $templatelist[$t]);
                $options[$t]['name']     = $templatelist[$t];
            }
        $settings[$i++][] = $output->FormSelectMultiple('pcTemplate', $options);
    
    
        $output->SetOutputMode(_PNH_KEEPOUTPUT);
    
        // Add row
        for($i = 0 ; $i < count($settings) ; $i++) {
            $output->TableAddRow($settings[$i], 'left');
        }
    
        $output->Text('</table>');
        $output->FormSubmit(_PC_ADMIN_SUBMIT);
        $output->FormEnd();*/
    $output->Text("</body></html>");
    return $output->GetOutput();
}
Пример #10
0
/**
 * View items in slideshow
 */
function mediashare_user_slideshow($args)
{
    $albumId = mediashareGetIntUrl('aid', $args, 1);
    $mediaId = mediashareGetIntUrl('mid', $args, 0);
    $delay = mediashareGetIntUrl('delay', $args, 5);
    $mode = mediashareGetStringUrl('mode', $args, 'stopped');
    $viewkey = FormUtil::getPassedValue('viewkey');
    $center = isset($args['center']) ? '_center' : '';
    $back = mediashareGetIntUrl('back', $args, 0);
    // Check access to album (media ID won't do a difference if not from this album)
    if (!mediashareAccessAlbum($albumId, mediashareAccessRequirementViewSomething)) {
        return LogUtil::registerPermissionError();
    }
    // Fetch current album
    if (!($album = pnModAPIFunc('mediashare', 'user', 'getAlbum', array('albumId' => $albumId)))) {
        return false;
    }
    if ($album === true) {
        return LogUtil::registerError(__('Unknown album.', $dom));
    }
    // Fetch media items
    if (($items = pnModAPIFunc('mediashare', 'user', 'getMediaItems', array('albumId' => $albumId))) === false) {
        return false;
    }
    // Find current, previous and next items
    if ($mediaId == 0 && count($items) > 0) {
        $mediaId = $items[0]['id'];
    }
    $mediaItem = null;
    if (count($items) > 0) {
        $prevMediaId = $items[count($items) - 1]['id'];
        $nextMediaId = $items[0]['id'];
        foreach ($items as $item) {
            if ($mediaItem != null) {
                // Media-Current item found, so this must be next
                $nextMediaId = $item['id'];
                break;
            }
            if ($item['id'] == $mediaId) {
                $mediaItem = $item;
            } else {
                // Media-item not found, so this must become prev
                $prevMediaId = $item['id'];
            }
        }
    } else {
        $prevMediaId = -1;
        $nextMediaId = -1;
    }
    // Add media display HTML
    $mediadir = pnModAPIFunc('mediashare', 'user', 'getRelativeMediadir');
    for ($i = 0, $cou = count($items); $i < $cou; ++$i) {
        if (!($handler = pnModAPIFunc('mediashare', 'mediahandler', 'loadHandler', array('handlerName' => $items[$i]['mediaHandler'])))) {
            return false;
        }
        $result = $handler->getMediaDisplayHtml($mediadir . $items[$i]['originalRef'], null, null, 'mediaItem', array());
        $items[$i]['html'] = str_replace(array("\r", "\n"), array(' ', ' '), $result);
    }
    $viewUrl = pnModUrl('mediashare', 'user', 'slideshow', array('mid' => $mediaItem['id']));
    if ($back) {
        SessionUtil::setVar('mediashareQuitUrl', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);
    }
    $quitUrl = SessionUtil::getVar('mediashareQuitUrl');
    if ($quitUrl == null) {
        $quitUrl = pnModUrl('mediashare', 'user', 'view', array('aid' => $album['id']));
    }
    // Build the output
    $render =& pnRender::getInstance('mediashare', false);
    $render->assign('viewUrl', $viewUrl);
    $render->assign('mediaId', $mediaId);
    $render->assign('mediaItem', $mediaItem);
    $render->assign('prevMediaId', $prevMediaId);
    $render->assign('nextMediaId', $nextMediaId);
    $render->assign('mediaItems', $items);
    $render->assign('album', $album);
    $render->assign('albumId', $albumId);
    $render->assign('delay', $delay);
    $render->assign('mode', $mode);
    $render->assign('thumbnailSize', pnModGetVar('mediashare', 'thumbnailSize'));
    $render->assign('theme', pnUserGetTheme());
    $render->assign('templateName', "slideshow{$center}.html");
    $render->assign('quitUrl', $quitUrl);
    // Add the access array
    if (!mediashareAddAccess($render, $album)) {
        return false;
    }
    $render->load_filter('output', 'pagevars_notcombined');
    if (pnConfigGetVar('shorturls')) {
        $render->load_filter('output', 'shorturls');
    }
    $render->display('mediashare_user_slideshow.html');
    return true;
}
Пример #11
0
function postcalendar_adminapi_buildAdminList($args)
{
    extract($args);
    $output = new pnHTML();
    $output->SetInputMode(_PNH_VERBATIMINPUT);
    pnThemeLoad(pnUserGetTheme());
    // get the theme globals :: is there a better way to do this?
    global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4, $bgcolor5;
    global $textcolor1, $textcolor2;
    $formUrl = pnModUrl(__POSTCALENDAR__, 'admin', 'adminevents');
    $output->FormStart($formUrl);
    $output->Text('<table border="0" cellpadding="1" cellspacing="0" width="100%" bgcolor="' . $bgcolor2 . '"><tr><td>');
    $output->Text('<table border="0" cellpadding="5" cellspacing="0" width="100%" bgcolor="' . $bgcolor1 . '"><tr><td>');
    $output->Text('<center><font size="4"><b>' . $title . '</b></font></center>');
    $output->Text('</td></tr></table>');
    $output->Text('</td></tr></table>');
    $output->Linebreak();
    $output->Text('<table border="0" cellpadding="1" cellspacing="0" width="100%" bgcolor="' . $bgcolor2 . '"><tr><td>');
    $output->Text('<table border="0" cellpadding="5" cellspacing="0" width="100%" bgcolor="' . $bgcolor1 . '">');
    if (!$result || $result->EOF) {
        $output->Text('<tr><td width="100%" bgcolor="' . $bgcolor1 . '" align="center"><b>' . _PC_NO_EVENTS . '</b></td></tr>');
    } else {
        $output->Text('<tr><td bgcolor="' . $bgcolor1 . '" align="center"><b>' . _PC_EVENTS . '</b></td></tr>');
        $output->Text('<table border="0" cellpadding="2" cellspacing="0" width="100%" bgcolor="' . $bgcolor1 . '">');
        // build sorting urls
        if (!isset($sdir)) {
            $sdir = 1;
        } else {
            $sdir = $sdir ? 0 : 1;
        }
        $title_sort_url = pnModUrl(__POSTCALENDAR__, 'admin', $function, array('offset' => $offset, 'sort' => 'title', 'sdir' => $sdir));
        $time_sort_url = pnModUrl(__POSTCALENDAR__, 'admin', $function, array('offset' => $offset, 'sort' => 'time', 'sdir' => $sdir));
        $output->Text('<tr><td>select</td><td><a href="' . $title_sort_url . '">title</a></td><td><a href="' . $time_sort_url . '">timestamp</a><td></tr>');
        // output the queued events
        $count = 0;
        for (; !$result->EOF; $result->MoveNext()) {
            list($eid, $title, $timestamp) = $result->fields;
            $output->Text('<tr>');
            $output->Text('<td align="center" valign="top">');
            $output->FormCheckbox('pc_event_id[]', false, $eid);
            $output->Text('</td>');
            $output->Text('<td  align="left" valign="top" width="100%">');
            $output->URL(pnModURL(__POSTCALENDAR__, 'admin', 'edit', array('pc_event_id' => $eid)), pnVarPrepHTMLDisplay(postcalendar_removeScriptTags($title)));
            $output->Text('</td>');
            $output->Text('<td  align="left" valign="top" nowrap>');
            $output->Text($timestamp);
            $output->Text('</td>');
            $output->Text('</tr>');
            $count++;
        }
        $output->Text('</table>');
    }
    $output->Text('</td></tr></table>');
    if ($result->NumRows()) {
        $output->Linebreak();
        // action to take?
        $output->Text('<table border="0" cellpadding="1" cellspacing="0" width="100%" bgcolor="' . $bgcolor2 . '"><tr><td>');
        $output->Text('<table border="0" cellpadding="5" cellspacing="0" width="100%" bgcolor="' . $bgcolor1 . '"><tr>');
        $output->Text('<td align="left" valign="middle">');
        $seldata[0]['id'] = _ADMIN_ACTION_VIEW;
        $seldata[0]['selected'] = 1;
        $seldata[0]['name'] = _PC_ADMIN_ACTION_VIEW;
        $seldata[1]['id'] = _ADMIN_ACTION_APPROVE;
        $seldata[1]['selected'] = 0;
        $seldata[1]['name'] = _PC_ADMIN_ACTION_APPROVE;
        $seldata[2]['id'] = _ADMIN_ACTION_HIDE;
        $seldata[2]['selected'] = 0;
        $seldata[2]['name'] = _PC_ADMIN_ACTION_HIDE;
        $seldata[3]['id'] = _ADMIN_ACTION_DELETE;
        $seldata[3]['selected'] = 0;
        $seldata[3]['name'] = _PC_ADMIN_ACTION_DELETE;
        $output->FormSelectMultiple('action', $seldata);
        $output->FormHidden('thelist', $function);
        $output->FormSubmit(_PC_PERFORM_ACTION);
        $output->Text('</td>');
        $output->Text('</tr></table>');
        $output->Text('</td></tr></table>');
        $output->Linebreak();
        // start previous next links
        $output->Text('<table border="0" cellpadding="1" cellspacing="0" width="100%" bgcolor="' . $bgcolor2 . '"><tr><td>');
        $output->Text('<table border="0" cellpadding="5" cellspacing="0" width="100%" bgcolor="' . $bgcolor1 . '"><tr>');
        if ($offset > 1) {
            $output->Text('<td align="left">');
            $next_link = pnModUrl(__POSTCALENDAR__, 'admin', $function, array('offset' => $offset - $offset_increment, 'sort' => $sort, 'sdir' => $sdir));
            $output->Text('<a href="' . $next_link . '"><< ' . _PC_PREV . ' ' . $offset_increment . '</a>');
            $output->Text('</td>');
        } else {
            $output->Text('<td align="left"><< ' . _PC_PREV . '</td>');
        }
        if ($result->NumRows() >= $offset_increment) {
            $output->Text('<td align="right">');
            $next_link = pnModUrl(__POSTCALENDAR__, 'admin', $function, array('offset' => $offset + $offset_increment, 'sort' => $sort, 'sdir' => $sdir));
            $output->Text('<a href="' . $next_link . '">' . _PC_NEXT . ' ' . $offset_increment . ' >></a>');
            $output->Text('</td>');
        } else {
            $output->Text('<td align="right">' . _PC_NEXT . ' >></td>');
        }
        $output->Text('</tr></table>');
    }
    $output->Text('</td></tr></table>');
    // end previous next links
    $output->FormEnd();
    return $output->GetOutput();
}
Пример #12
0
function mediashare_invitation_viewlink($args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $invitationId = mediashareGetIntUrl('iid', $args, -1);
    if ($invitationId < 0) {
        return LogUtil::registerError(__f('Missing URL parameter (%s).', 'iid', $dom));
    }
    $invitation = pnModAPIFunc('mediashare', 'invitation', 'getById', array('id' => $invitationId));
    if ($invitation == null) {
        return LogUtil::registerError(__('Unknown invitation.', $dom));
    }
    $albumId = $invitation['albumId'];
    // Check access
    if (!mediashareAccessAlbum($albumId, mediashareAccessRequirementEditAccess, '')) {
        return LogUtil::registerPermissionError();
    }
    $link = pnModUrl('mediashare', 'invitation', 'open', array('inv' => $invitation['key']));
    if (!($album = pnModAPIFunc('mediashare', 'user', 'getAlbum', array('albumId' => $albumId)))) {
        return false;
    }
    $render =& pnRender::getInstance('mediashare', false);
    $render->assign('album', $album);
    $render->assign('link', $link);
    $render->assign('accessSelected', 0);
    $render->assign('sendSelected', 1);
    $render->assign('listSelected', 0);
    return $render->fetch('mediashare_invitation_link.html');
}