static function new_image($image) { global $_zp_exifvars; $entry_locale = getUserLocale(); $languages = generateLanguageList(); $languageTags = $element = array(); $candidates = self::getTaggingItems(); foreach ($candidates as $key) { if ($meta = $image->get($key)) { setupCurrentLocale('en_US'); $en_us = $element[] = exifTranslate($meta); foreach ($languages as $language) { setupCurrentLocale($language); $xlated = exifTranslate($meta); if ($xlated != $en_us) { // the string has a translation in this language $element[] = $xlated; $languageTags[$language] = $xlated; } } } } setupCurrentLocale($entry_locale); $element = array_unique(array_merge($image->getTags(), $element)); $image->setTags($element); $image->save(); foreach ($languageTags as $language => $tag) { $sql = 'UPDATE ' . prefix('tags') . ' SET `language`=' . db_quote($language) . ' WHERE `name`=' . db_quote($tag) . ' AND `language`=NULL OR `language` LIKE ""'; query($sql, false); } return $image; }
function __construct() { if (OFFSET_PATH == 2) { $seo_locale = extensionEnabled('seo_locale') && getOption('dynamic_locale_subdomain') != 2; setOptionDefault('dynamic_locale_visual', 0); setOptionDefault('dynamic_locale_subdomain', (int) $seo_locale); setOptionDefault('dynamic_locale_base', getUserLocale()); } }
/** * returns a serialized "multilingual array" of translations * Used for setting default options with multi-lingual strings. * @param string $text to be translated */ function getAllTranslations($text) { $entry_locale = getUserLocale(); $result = array('en_US' => $text); $languages = generateLanguageList(); $key = array_search('en_US', $languages); unset($languages[$key]); foreach ($languages as $language) { setupCurrentLocale($language); $xlated = gettext($text); if ($xlated != $text) { // the string has a translation in this language $result[$language] = $xlated; } } setupCurrentLocale($entry_locale); return serialize($result); }
/** * Does the log handling * * @param int $success * @param string $user * @param string $name * @param string $ip * @param string $type * @param string $authority kind of login * @param string $addl more info */ private static function Logger($success, $user, $name, $action, $authority, $addl = NULL) { global $_zp_authority, $_zp_mutex; $pattern = '~^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$~'; $forwardedIP = NULL; $ip = sanitize($_SERVER['REMOTE_ADDR']); if (!preg_match($pattern, $ip)) { $ip = NULL; } if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $forwardedIP = sanitize($_SERVER['HTTP_X_FORWARDED_FOR']); if (preg_match($pattern, $forwardedIP)) { $ip .= ' {' . $forwardedIP . '}'; } } $admin = $_zp_authority->getMasterUser(); $locale = $admin->getLanguage(); if (empty($locale)) { $locale = 'en_US'; } $cur_locale = getUserLocale(); setupCurrentLocale($locale); // the log will be in the language of the master user. switch ($action) { case 'clear_log': $type = gettext('Log reset'); break; case 'delete_log': $type = gettext('Log deleted'); break; case 'download_log': $type = gettext('Log downloaded'); break; case 'setup_install': $type = gettext('Install'); $addl = gettext('version') . ' ' . ZENPHOTO_VERSION . '[' . ZENPHOTO_RELEASE . "]"; if (!zpFunctions::hasPrimaryScripts()) { $addl .= ' ' . gettext('clone'); } break; case 'setup_proptect': $type = gettext('Protect setup scripts'); break; case 'user_new': $type = gettext('Request add user'); break; case 'user_update': $type = gettext('Request update user'); break; case 'user_delete': $type = gettext('Request delete user'); break; case 'XSRF_blocked': $type = gettext('Cross Site Reference'); break; case 'blocked_album': $type = gettext('Album access'); break; case 'blocked_access': $type = gettext('Admin access'); break; case 'Front-end': $type = gettext('Guest login'); break; case 'Back-end': $type = gettext('Admin login'); break; case 'auth_cookie': $type = gettext('Authorization cookie check'); break; default: $type = $action; break; } $file = SERVERPATH . '/' . DATA_FOLDER . '/security.log'; $max = getOption('security_log_size'); $_zp_mutex->lock(); if ($max && @filesize($file) > $max) { switchLog('security'); } $preexists = file_exists($file) && filesize($file) > 0; $f = fopen($file, 'a'); if ($f) { if (!$preexists) { // add a header fwrite($f, gettext('date' . "\t" . 'requestor’s IP' . "\t" . 'type' . "\t" . 'user ID' . "\t" . 'user name' . "\t" . 'outcome' . "\t" . 'authority' . "\tadditional information\n")); } $message = date('Y-m-d H:i:s') . "\t"; $message .= $ip . "\t"; $message .= $type . "\t"; $message .= $user . "\t"; $message .= $name . "\t"; switch ($success) { case 0: $message .= gettext("Failed") . "\t"; break; case 1: $message .= gettext("Success") . "\t"; $message .= substr($authority, 0, strrpos($authority, '_auth')); break; case 2: $message .= gettext("Blocked") . "\t"; break; default: $message .= $success . "\t"; } if ($addl) { $message .= "\t" . $addl; } fwrite($f, $message . "\n"); fclose($f); clearstatcache(); if (!$preexists) { @chmod($file, 0660 & CHMOD_VALUE); if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { $permission = fileperms($file) & 0700; // on Windows owner==group==public $check = $permission != 0600 & CHMOD_VALUE; } else { $permission = fileperms($file) & 0777; $check = $permission != 0660 & CHMOD_VALUE; } if ($check) { $f = fopen($file, 'a'); fwrite($f, "\t\t" . gettext('Set Security log permissions') . "\t\t\t" . gettext('Failed') . "\t\t" . sprintf(gettext('File permissions of Security log are %04o'), $permission) . "\n"); fclose($f); clearstatcache(); } } } $_zp_mutex->unlock(); setupCurrentLocale($cur_locale); // restore to whatever was in effect. }
$separator = '.'; } $x = array_slice(explode($separator, $full_ip), 0, $__config['accessThreshold_SENSITIVITY']); $ip = implode($separator, $x); unset($x); if (isset($recentIP[$ip]['lastAccessed']) && $__time - $recentIP[$ip]['lastAccessed'] > $__config['accessThreshold_IP_ACCESS_WINDOW']) { $recentIP[$ip] = array('accessed' => array(), 'locales' => array(), 'blocked' => 0, 'interval' => 0); } $recentIP[$ip]['lastAccessed'] = $__time; if (@$recentIP[$ip]['blocked']) { file_put_contents(SERVERPATH . '/' . DATA_FOLDER . '/recentIP', serialize($recentIP)); $mu->unlock(); exitZP(); } else { $recentIP[$ip]['accessed'][] = array('time' => $__time, 'ip' => $full_ip); $__locale = getUserLocale(); if (isset($recentIP[$ip]['locales'][$__locale])) { $recentIP[$ip]['locales'][$__locale]['ip'][$full_ip] = $__time; } else { $recentIP[$ip]['locales'][$__locale] = array('time' => $__time, 'ip' => array($full_ip => $__time)); } $__previous = $__interval = $__count = 0; array_walk($recentIP[$ip]['locales'], 'accessThreshold::walk', $__time); foreach ($recentIP[$ip]['locales'] as $key => $data) { if (is_null($data)) { unset($recentIP[$ip]['locales'][$key]); } } if ($__count > $__config['accessThreshold_LocaleCount']) { $recentIP[$ip]['blocked'] = 1; }
/** * Print the login form for ZP. This will take into account whether mod_rewrite is enabled or not. * * @param string $redirect URL to return to after login * @param bool $logo set to true to display the ADMIN zenphoto logo. * @param bool $showUserField set to true to display the user input * @param bool $showCaptcha set to false to not display the forgot password captcha. * @param string $hint optional hint for the password * */ function printLoginForm($redirect = null, $logo = true, $showUserField = true, $showCaptcha = true, $hint = '') { global $_zp_login_error, $_zp_captcha, $_zp_gallery; if (is_null($redirect)) { $redirect = getRequestURI(); } if (is_null($showUserField)) { $showUserField = $_zp_gallery->getUserLogonField(); } $cycle = sanitize_numeric(@$_GET['cycle']) + 1; if (isset($_POST['user'])) { $requestor = sanitize($_POST['user'], 0); } else { $requestor = ''; } if (empty($requestor)) { if (isset($_GET['ref'])) { $requestor = sanitize($_GET['ref']); } } $alt_handlers = zp_apply_filter('alt_login_handler', array()); $star = false; $mails = array(); $info = array('challenge' => '', 'response' => ''); if (!empty($requestor)) { if ($admin = $this->getAnAdmin(array('`user`=' => $requestor, '`valid`=' => 1))) { $info = $admin->getChallengePhraseInfo(); } else { $info = array('challenge' => ''); } if (empty($info['challenge']) || $cycle > 2 && $cycle % 5 != 1) { $locale = getUserLocale(); $questions = array(); foreach (getSerializedArray(getOption('challenge_foils')) as $question) { $questions[] = get_language_string($question); } $rslt = query('SELECT `challenge_phrase`,`language` FROM ' . prefix('administrators') . ' WHERE `challenge_phrase` IS NOT NULL'); while ($row = db_fetch_assoc($rslt)) { if (is_null($row['language']) || $row['language'] == $locale) { $q = getSerializedArray($row['challenge_phrase']); $questions[] = $q['challenge']; } } db_free_result($rslt); $questions = array_unique($questions); shuffle($questions); $info = array('challenge' => $questions[$cycle % count($questions)], 'response' => 0x0); } else { if ($admin->getEmail()) { $star = $showCaptcha; } } } if (!$star) { $admins = $this->getAdministrators(); while (count($admins) > 0) { $user = array_shift($admins); if ($user['email']) { $star = $showCaptcha; } } } $whichForm = sanitize(@$_REQUEST['logon_step']); ?> <div id="loginform"> <?php if ($logo) { ?> <p> <img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/zen-logo.png" title="ZenPhoto" alt="ZenPhoto" /> </p> <?php } switch ($_zp_login_error) { case 1: ?> <div class="errorbox" id="message"><h2><?php echo gettext("There was an error logging in."); ?> </h2> <?php if ($showUserField) { echo gettext("Check your username and password and try again."); } else { echo gettext("Check password and try again."); } ?> </div> <?php break; case 2: ?> <div class="messagebox fade-message"> <h2><?php echo gettext("A reset request has been sent."); ?> </h2> </div> <?php break; default: if (!empty($_zp_login_error)) { ?> <div class="errorbox fade-message"> <h2><?php echo $_zp_login_error; ?> </h2> </div> <?php } break; } switch ($whichForm) { case 'challenge': ?> <form name="login" action="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php" method="post"> <fieldset id="logon_box"> <input type="hidden" name="login" value="1" /> <input type="hidden" name="password" value="challenge" /> <input type="hidden" name="redirect" value="<?php echo html_encode(pathurlencode($redirect)); ?> " /> <fieldset> <legend><?php echo gettext('User'); ?> </legend> <input class="textfield" name="user" id="user" type="text" size="35" value="<?php echo html_encode($requestor); ?> " /> </fieldset> <?php if ($requestor) { ?> <p class="logon_form_text"><?php echo gettext('Supply the correct response to the question below and you will be directed to a page where you can change your password.'); ?> </p> <fieldset><legend><?php echo gettext('Challenge question:'); ?> </legend> <?php echo html_encode($info['challenge']); ?> </fieldset> <fieldset><legend><?php echo gettext('Your response'); ?> </legend> <input class="textfield" name="pass" id="pass" type="text" size="35" /> </fieldset> <br /> <?php } else { ?> <p class="logon_form_text"> <?php echo gettext('Enter your User ID and press <code>Refresh</code> to get your challenge question.'); ?> </p> <?php } ?> <div class="buttons"> <button type="submit" value="<?php echo gettext("Submit"); ?> "<?php if (!$info['challenge']) { echo ' disabled="disabled"'; } ?> ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/pass.png" alt="" /><?php echo gettext("Submit"); ?> </button> <button type="button" value="<?php echo gettext("Refresh"); ?> " id="challenge_refresh" onclick="launchScript('<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php', ['logon_step=challenge', 'ref=' + $('#user').val(), 'cycle=<?php echo $cycle; ?> ']);" ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/refresh.png" alt="" /><?php echo gettext("Refresh"); ?> </button> <button type="button" value="<?php echo gettext("Return"); ?> " onclick="launchScript('<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php', ['logon_step=', 'ref=' + $('#user').val(), 'cycle=<?php echo $cycle; ?> ']);" ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/refresh.png" alt="" /><?php echo gettext("Return"); ?> </button> </div> <br class="clearall" /> </fieldset> <br /> <?php if ($star) { ?> <p class="logon_link"> <a href="javascript:launchScript('<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php',['logon_step=captcha', 'ref='+$('#user').val()]);" > <?php echo gettext('Request reset by e-mail'); ?> </a> </p> <?php } ?> </form> <?php break; default: Zenphoto_Authority::printPasswordFormJS(); if (empty($alt_handlers)) { $legend = gettext('Login'); } else { ?> <script type="text/javascript"> // <!-- <![CDATA[ var handlers = []; <?php $list = '<select id="logon_choices" onchange="changeHandler(handlers[$(this).val()]);">' . '<option value="0">' . html_encode(get_language_string($_zp_gallery->getTitle())) . '</option>'; $c = 0; foreach ($alt_handlers as $handler => $details) { $c++; $details['params'][] = 'redirect=' . $redirect; if (!empty($requestor)) { $details['params'][] = 'requestor=' . $requestor; } echo "handlers[" . $c . "]=['" . $details['script'] . "','" . implode("','", $details['params']) . "'];"; $list .= '<option value="' . $c . '">' . $handler . '</option>'; } $list .= '</select>'; $legend = sprintf(gettext('Logon using:%s'), $list); ?> function changeHandler(handler) { handler.push('user='******'#user').val()); var script = handler.shift(); launchScript(script, handler); } // ]]> --> </script> <?php } $redirect = zp_apply_filter('login_redirect_link', $redirect); ?> <form name="login" action="<?php echo html_encode(pathurlencode($redirect)); ?> " method="post"> <input type="hidden" name="login" value="1" /> <input type="hidden" name="password" value="1" /> <input type="hidden" name="redirect" value="<?php echo html_encode(pathurlencode($redirect)); ?> " /> <fieldset id="logon_box"><legend><?php echo $legend; ?> </legend> <?php if ($showUserField) { // requires a "user" field ?> <fieldset><legend><?php echo gettext("User"); ?> </legend> <input class="textfield" name="user" id="user" type="text" size="35" value="<?php echo html_encode($requestor); ?> " /> </fieldset> <?php } ?> <fieldset><legend><?php echo gettext("Password"); ?> </legend> <input class="textfield" name="pass" id="pass" type="password" size="35" /><br /> <label><input type="checkbox" name="disclose_password" id="disclose_password" onclick="togglePassword('');" /><?php echo gettext('Show password'); ?> </label> </fieldset> <br /> <div class="buttons"> <button type="submit" value="<?php echo gettext("Log in"); ?> " ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/pass.png" alt="" /><?php echo gettext("Log in"); ?> </button> <button type="reset" value="<?php echo gettext("Reset"); ?> " ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/reset.png" alt="" /><?php echo gettext("Reset"); ?> </button> </div> <br class="clearall" /> </fieldset> </form> <?php if ($hint) { echo '<p>' . $hint . '</p>'; } if ($showUserField && OFFSET_PATH != 2) { ?> <p class="logon_link"> <a href="javascript:launchScript('<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php',['logon_step=challenge', 'ref='+$('#user').val()]);" > <?php echo gettext('I forgot my <strong>User ID</strong>/<strong>Password</strong>'); ?> </a> </p> <?php } break; case 'captcha': $captcha = $_zp_captcha->getCaptcha(NULL); ?> <form name="login" action="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php" method="post"> <?php if (isset($captcha['hidden'])) { echo $captcha['hidden']; } ?> <input type="hidden" name="login" value="1" /> <input type="hidden" name="password" value="captcha" /> <input type="hidden" name="redirect" value="<?php echo html_encode(pathurlencode($redirect)); ?> " /> <fieldset id="logon_box"> <fieldset><legend><?php echo gettext('User'); ?> </legend> <input class="textfield" name="user" id="user" type="text" value="<?php echo html_encode($requestor); ?> " /> </fieldset> <?php if (isset($captcha['html'])) { echo $captcha['html']; } ?> <?php if (isset($captcha['input'])) { ?> <fieldset><legend><?php echo gettext("Enter CAPTCHA"); ?> </legend> <?php echo $captcha['input']; ?> </fieldset> <?php } ?> <br /> <div class="buttons"> <button type="submit" value="<?php echo gettext("Request"); ?> " ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/pass.png" alt="" /><?php echo gettext("Request password reset"); ?> </button> <button type="button" value="<?php echo gettext("Return"); ?> " onclick="launchScript('<?php echo WEBPATH . '/' . ZENFOLDER; ?> /admin.php', ['logon_step=', 'ref=' + $('#user').val()]);" ><img src="<?php echo WEBPATH . '/' . ZENFOLDER; ?> /images/refresh.png" alt="" /><?php echo gettext("Return"); ?> </button> </div> <br class="clearall" /> </fieldset> </form> <?php break; } ?> </div> <?php }
/** * Generates an editable list of language strings * * @param string $dbstring either a serialized languag string array or a single string * @param string $name the prefix for the label, id, and name tags * @param bool $textbox set to true for a textbox rather than a text field * @param string $locale optional locale of the translation desired * @param string $edit optional class */ function print_language_string_list($dbstring, $name, $textbox = false, $locale = NULL, $edit = '') { global $_zp_languages, $_zp_active_languages, $_zp_current_locale; if (!empty($edit)) { $edit = ' class="' . $edit . '"'; } if (is_null($locale)) { if (is_null($_zp_current_locale)) { $_zp_current_locale = getUserLocale(); if (empty($_zp_current_locale)) { $_zp_current_locale = 'en_US'; } } $locale = $_zp_current_locale; } if (preg_match('/^a:[0-9]+:{/', $dbstring)) { $strings = unserialize($dbstring); } else { $strings = array($locale => $dbstring); } if (getOption('multi_lingual')) { if (is_null($_zp_active_languages)) { $_zp_active_languages = generateLanguageList(); } $emptylang = array_flip($_zp_active_languages); unset($emptylang['']); natsort($emptylang); if ($textbox) { $class = 'box'; } else { $class = ''; } echo "<ul class=\"language_string_list" . $class . "\">\n"; $empty = true; foreach ($emptylang as $key => $lang) { if (isset($strings[$key])) { $string = $strings[$key]; if (!empty($string)) { unset($emptylang[$key]); $empty = false; echo '<li><label for="' . $name . '_' . $key . '">'; echo $lang; if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . ' cols="' . TEXTAREA_COLUMNS . '" style="width: 310px" rows="6">' . $string . '</textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '" type="text" value="' . $string . '" style="width: 310px" size="' . TEXT_INPUT_SIZE . '" />'; } echo "</label></li>\n"; } } } if ($empty) { $element = $emptylang[$locale]; unset($emptylang[$locale]); $emptylang = array_merge(array($locale => $element), $emptylang); } foreach ($emptylang as $key => $lang) { echo '<li><label for="' . $name . '_' . $key . '">'; echo $lang; if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . ' cols="' . TEXTAREA_COLUMNS . '" style="width: 310px" rows="6"></textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '" type="text" value="" style="width: 310px" size="' . TEXT_INPUT_SIZE . '" />'; } echo "</label></li>\n"; } echo "</ul>\n"; } else { if (empty($locale)) { $locale = 'en_US'; } if (isset($strings[$locale])) { $dbstring = $strings[$locale]; } else { $dbstring = array_shift($strings); } if ($textbox) { echo '<textarea name="' . $name . '_' . $locale . '"' . $edit . ' cols="' . TEXTAREA_COLUMNS . '" rows="6">' . $dbstring . '</textarea>'; } else { echo '<input id="' . $name . '_' . $locale . '" name="' . $name . '_' . $locale . '" type="text" value="' . $dbstring . '" size="' . TEXT_INPUT_SIZE . '" />'; } } }
/** * Prints html meta data to be used in the <head> section of a page * */ static function getHTMLMetaData() { global $_zp_gallery, $_zp_galley_page, $_zp_current_album, $_zp_current_image, $_zp_current_zenpage_news, $_zp_current_zenpage_page, $_zp_gallery_page, $_zp_current_category, $_zp_authority, $_zp_conf_vars, $_myFavorites, $htmlmetatags_need_cache, $_zp_page; zp_register_filter('image_processor_uri', 'htmlmetatags::ipURI'); $host = sanitize("http://" . $_SERVER['HTTP_HOST']); $url = $host . getRequestURI(); // Convert locale shorttag to allowed html meta format $locale = str_replace("_", "-", getUserLocale()); $canonicalurl = ''; // generate page title, get date $pagetitle = ""; // for gallery index setup below switch $date = strftime(DATE_FORMAT); // if we don't have a item date use current date $desc = getBareGalleryDesc(); $thumb = ''; if (getOption('htmlmeta_sitelogo')) { $thumb = getOption('htmlmeta_sitelogo'); } if (getOption('htmlmeta_og-image') || getOption('htmlmeta_twittercard')) { $ogimage_width = getOption('htmlmeta_ogimage_width'); $ogimage_height = getOption('htmlmeta_ogimage_height'); if (empty($ogimage_width)) { $ogimage_width = 1280; } if (empty($ogimage_height)) { $ogimage_height = 900; } } $type = 'article'; switch ($_zp_gallery_page) { case 'index.php': $desc = getBareGalleryDesc(); //$canonicalurl = $host . getGalleryIndexURL(); $canonicalurl = $host . getPageNumURL($_zp_page); $type = 'website'; break; case 'album.php': $pagetitle = getBareAlbumTitle() . " - "; $date = getAlbumDate(); $desc = getBareAlbumDesc(); $canonicalurl = $host . getPageNumURL($_zp_page); if (getOption('htmlmeta_og-image') || getOption('htmlmeta_twittercard')) { $thumbimg = $_zp_current_album->getAlbumThumbImage(); getMaxSpaceContainer($ogimage_width, $ogimage_height, $thumbimg, false); $thumb = $host . html_encode(pathurlencode($thumbimg->getCustomImage(NULL, $ogimage_width, $ogimage_height, NULL, NULL, NULL, NULL, false, NULL))); } break; case 'image.php': $pagetitle = getBareImageTitle() . " (" . getBareAlbumTitle() . ") - "; $date = getImageDate(); $desc = getBareImageDesc(); $canonicalurl = $host . getImageURL(); if (getOption('htmlmeta_og-image') || getOption('htmlmeta_twittercard')) { $thumb = $host . html_encode(pathurlencode(getCustomSizedImageMaxSpace($ogimage_width, $ogimage_height))); } break; case 'news.php': if (function_exists("is_NewsArticle")) { if (is_NewsArticle()) { $pagetitle = getBareNewsTitle() . " - "; $date = getNewsDate(); $desc = trim(getBare(getNewsContent())); $canonicalurl = $host . $_zp_current_zenpage_news->getLink(); } else { if (is_NewsCategory()) { $pagetitle = $_zp_current_category->getTitlelink() . " - "; $date = strftime(DATE_FORMAT); $desc = trim(getBare($_zp_current_category->getDesc())); $canonicalurl = $host . $_zp_current_category->getLink(); $type = 'category'; } else { $pagetitle = gettext('News') . " - "; $desc = ''; $canonicalurl = $host . getNewsIndexURL(); $type = 'website'; } } if ($_zp_page != 1) { $canonicalurl .= '/' . $_zp_page; } } break; case 'pages.php': $pagetitle = getBarePageTitle() . " - "; $date = getPageDate(); $desc = trim(getBare(getPageContent())); $canonicalurl = $host . $_zp_current_zenpage_page->getLink(); break; default: // for all other possible static custom pages $custompage = stripSuffix($_zp_gallery_page); $standard = array('contact' => gettext('Contact'), 'register' => gettext('Register'), 'search' => gettext('Search'), 'archive' => gettext('Archive view'), 'password' => gettext('Password required')); if (is_object($_myFavorites)) { $standard['favorites'] = gettext('My favorites'); } if (array_key_exists($custompage, $standard)) { $pagetitle = $standard[$custompage] . " - "; } else { $pagetitle = $custompage . " - "; } $desc = ''; $canonicalurl = $host . getCustomPageURL($custompage); if ($_zp_page != 1) { $canonicalurl .= '/' . $_zp_page; } break; } // shorten desc to the allowed 200 characters if necesssary. $desc = html_encode(trim(substr(getBare($desc), 0, 160))); $pagetitle = $pagetitle . getBareGalleryTitle(); // get master admin $admin = $_zp_authority->getMasterUser(); $author = $admin->getName(); $meta = ''; if (getOption('htmlmeta_http-equiv-cache-control')) { $meta .= '<meta http-equiv="Cache-control" content="' . getOption("htmlmeta_cache_control") . '">' . "\n"; } if (getOption('htmlmeta_http-equiv-pragma')) { $meta .= '<meta http-equiv="pragma" content="' . getOption("htmlmeta_pragma") . '">' . "\n"; } if (getOption('htmlmeta_name-keywords')) { $meta .= '<meta name="keywords" content="' . htmlmetatags::getMetaKeywords() . '">' . "\n"; } if (getOption('htmlmeta_name-description')) { $meta .= '<meta name="description" content="' . $desc . '">' . "\n"; } if (getOption('htmlmeta_name-page-topic')) { $meta .= '<meta name="page-topic" content="' . $desc . '">' . "\n"; } if (getOption('htmlmeta_name-robots')) { $meta .= '<meta name="robots" content="' . getOption("htmlmeta_robots") . '">' . "\n"; } if (getOption('htmlmeta_name-publisher')) { $meta .= '<meta name="publisher" content="' . FULLWEBPATH . '">' . "\n"; } if (getOption('htmlmeta_name-creator')) { $meta .= '<meta name="creator" content="' . FULLWEBPATH . '">' . "\n"; } if (getOption('htmlmeta_name-author')) { $meta .= '<meta name="author" content="' . $author . '">' . "\n"; } if (getOption('htmlmeta_name-copyright')) { $meta .= '<meta name="copyright" content=" (c) ' . FULLWEBPATH . ' - ' . $author . '">' . "\n"; } if (getOption('htmlmeta_name-rights')) { $meta .= '<meta name="rights" content="' . $author . '">' . "\n"; } if (getOption('htmlmeta_name-generator')) { $meta .= '<meta name="generator" content="Zenphoto ' . ZENPHOTO_VERSION . '">' . "\n"; } if (getOption('htmlmeta_name-revisit-after')) { $meta .= '<meta name="revisit-after" content="' . getOption("htmlmeta_revisit_after") . '">' . "\n"; } if (getOption('htmlmeta_name-expires')) { $expires = getOption("htmlmeta_expires"); if ($expires == (int) $expires) { $expires = preg_replace('|\\s\\-\\d+|', '', date('r', time() + $expires)) . ' GMT'; } $meta .= '<meta name="expires" content="' . $expires . '">' . "\n"; } // OpenGraph meta if (getOption('htmlmeta_og-title')) { $meta .= '<meta property="og:title" content="' . $pagetitle . '">' . "\n"; } if (getOption('htmlmeta_og-image') && !empty($thumb)) { $meta .= '<meta property="og:image" content="' . $thumb . '">' . "\n"; } if (getOption('htmlmeta_og-description')) { $meta .= '<meta property="og:description" content="' . $desc . '">' . "\n"; } if (getOption('htmlmeta_og-url')) { $meta .= '<meta property="og:url" content="' . html_encode($url) . '">' . "\n"; } if (getOption('htmlmeta_og-type')) { $meta .= '<meta property="og:type" content="' . $type . '">' . "\n"; } // Social network extras if (getOption('htmlmeta_name-pinterest')) { $meta .= '<meta name="pinterest" content="nopin">' . "\n"; } // dissalow users to pin images on Pinterest // Twitter card $twittername = getOption('htmlmeta_twittername'); if (getOption('htmlmeta_twittercard') || !empty($twittername)) { $meta .= '<meta property="twitter:creator" content="' . $twittername . '">' . "\n"; $meta .= '<meta property="twitter:site" content="' . $twittername . '">' . "\n"; $meta .= '<meta property="twitter:card" content="summary">' . "\n"; $meta .= '<meta property="twitter:title" content="' . $pagetitle . '">' . "\n"; $meta .= '<meta property="twitter:description" content="' . $desc . '">' . "\n"; if (!empty($thumb)) { $meta .= '<meta property="twitter:image" content="' . $thumb . '">' . "\n"; } } // Canonical url if (getOption('htmlmeta_canonical-url')) { $meta .= '<link rel="canonical" href="' . $canonicalurl . '">' . "\n"; if (METATAG_LOCALE_TYPE) { $langs = generateLanguageList(); if (count($langs) != 1) { foreach ($langs as $text => $lang) { $langcheck = zpFunctions::getLanguageText($lang, '-'); // for hreflang we need en-US if ($langcheck != $locale) { switch (METATAG_LOCALE_TYPE) { case 1: $altlink = seo_locale::localePath(true, $lang); break; case 2: $altlink = dynamic_locale::fullHostPath($lang); break; } switch ($_zp_gallery_page) { case 'index.php': $altlink .= '/'; break; case 'gallery.php': $altlink .= '/' . _PAGE_ . '/gallery'; break; case 'album.php': $altlink .= '/' . html_encode($_zp_current_album->name) . '/'; break; case 'image.php': $altlink .= '/' . html_encode($_zp_current_album->name) . '/' . html_encode($_zp_current_image->filename) . IM_SUFFIX; break; case 'news.php': if (function_exists("is_NewsArticle")) { if (is_NewsArticle()) { $altlink .= '/' . _NEWS_ . '/' . html_encode($_zp_current_zenpage_news->getTitlelink()); } else { if (is_NewsCategory()) { $altlink .= '/' . _NEWS_ . '/' . html_encode($_zp_current_category->getTitlelink()); } else { $altlink .= '/' . _NEWS_; } } } break; case 'pages.php': $altlink .= '/' . _PAGES_ . '/' . html_encode($_zp_current_zenpage_page->getTitlelink()); break; case 'archive.php': $altlink .= '/' . _ARCHIVE_; break; case 'search.php': $altlink .= '/' . _SEARCH_ . '/'; break; case 'contact.php': $altlink .= '/' . _CONTACT_ . '/'; break; default: // for all other possible none standard custom pages $altlink .= '/' . _PAGE_ . '/' . html_encode($pagetitle); break; } // switch //append page number if needed switch ($_zp_gallery_page) { case 'index.php': case 'album.php': if ($_zp_page != 1) { $altlink .= _PAGE_ . '/' . $_zp_page . '/'; } break; case 'gallery.php': case 'news.php': if ($_zp_page != 1) { $altlink .= '/' . $_zp_page; } break; } $meta .= '<link rel="alternate" hreflang="' . $langcheck . '" href="' . $altlink . '">' . "\n"; } // if lang } // foreach } // if count } // if option } // if canonical if (!empty($htmlmetatags_need_cache)) { $meta .= '<script type="text/javascript">' . "\n"; $meta .= 'var caches = ["' . implode('","', $htmlmetatags_need_cache) . '"];' . "\n"; $meta .= ' window.onload = function() { var index,value; for (index in caches) { value = caches[index]; $.ajax({ cache: false, type: "GET", url: value }); } } '; $meta .= '</script>' . "\n"; } zp_remove_filter('image_processor_uri', 'htmlmetatags::ipURI'); echo $meta; }
/** * Central place for meta header handling */ function printStandardMeta() { $lang = substr(getUserLocale(), 0, 2); echo '<meta http-equiv="content-type" content="text/html; charset=' . LOCAL_CHARSET . '"'; if ($lang) { echo ' lang="' . $lang . '"'; } echo ">\n"; }
static function post_processor() { global $admin_e, $admin_n, $user, $_zp_authority, $_zp_captcha, $_zp_gallery, $_notify, $_link, $_message; //Handle registration if (isset($_POST['username']) && !empty($_POST['username'])) { $_notify = 'honeypot'; // honey pot check } if (getOption('register_user_captcha')) { if (isset($_POST['code'])) { $code = sanitize($_POST['code'], 3); $code_ok = sanitize($_POST['code_h'], 3); } else { $code = ''; $code_ok = ''; } if (!$_zp_captcha->checkCaptcha($code, $code_ok)) { $_notify = 'invalidcaptcha'; } } $admin_n = trim(sanitize($_POST['admin_name'])); if (empty($admin_n)) { $_notify = 'incomplete'; } if (isset($_POST['admin_email'])) { $admin_e = trim(sanitize($_POST['admin_email'])); } else { $admin_e = trim(sanitize($_POST['user'], 0)); } if (!is_valid_email_zp($admin_e)) { $_notify = 'invalidemail'; } $pass = trim(sanitize($_POST['pass'], 0)); $user = trim(sanitize($_POST['user'], 0)); if (empty($pass)) { $_notify = 'empty'; } else { if (!empty($user) && !empty($admin_n) && !empty($admin_e)) { if (isset($_POST['disclose_password']) || $pass == trim(sanitize($_POST['pass_r']))) { $currentadmin = $_zp_authority->getAnAdmin(array('`user`=' => $user, '`valid`>' => 0)); if (is_object($currentadmin)) { $_notify = 'exists'; } else { if ($_zp_authority->getAnAdmin(array('`email`=' => $admin_e, '`valid`=' => '1'))) { $_notify = 'dup_email'; } } if (empty($_notify)) { $userobj = $_zp_authority->newAdministrator(''); $userobj->transient = false; $userobj->setUser($user); $userobj->setPass($pass); $userobj->setName($admin_n); $userobj->setEmail($admin_e); $userobj->setRights(0); $userobj->setObjects(NULL); $userobj->setGroup(''); $userobj->setCustomData(''); $userobj->setLanguage(getUserLocale()); if (extensionEnabled('userAddressFields')) { $addresses = getOption('register_user_address_info'); $userinfo = register_user::getUserInfo(0); $_comment_form_save_post = serialize($userinfo); if ($addresses == 'required') { if (!isset($userinfo['street']) || empty($userinfo['street'])) { $userobj->transient = true; $userobj->msg .= ' ' . gettext('You must supply the street field.'); } if (!isset($userinfo['city']) || empty($userinfo['city'])) { $userobj->transient = true; $userobj->msg .= ' ' . gettext('You must supply the city field.'); } if (!isset($userinfo['state']) || empty($userinfo['state'])) { $userobj->transient = true; $userobj->msg .= ' ' . gettext('You must supply the state field.'); } if (!isset($userinfo['country']) || empty($userinfo['country'])) { $userobj->transient = true; $userobj->msg .= ' ' . gettext('You must supply the country field.'); } if (!isset($userinfo['postal']) || empty($userinfo['postal'])) { $userobj->transient = true; $userobj->msg .= ' ' . gettext('You must supply the postal code field.'); } } zp_setCookie('reister_user_form_addresses', $_comment_form_save_post); userAddressFields::setCustomData($userobj, $userinfo); } zp_apply_filter('register_user_registered', $userobj); if ($userobj->transient) { if (empty($_notify)) { $_notify = 'filter'; } } else { $userobj->save(); if (MOD_REWRITE) { $verify = '?verify='; } else { $verify = '&verify='; } $_link = PROTOCOL . "://" . $_SERVER['HTTP_HOST'] . register_user::getLink() . $verify . bin2hex(serialize(array('user' => $user, 'email' => $admin_e))); $_message = sprintf(get_language_string(getOption('register_user_text')), $_link, $admin_n, $user, $pass); $_notify = zp_mail(get_language_string(gettext('Registration confirmation')), $_message, array($user => $admin_e)); if (empty($_notify)) { $_notify = 'accepted'; } } } } else { $_notify = 'mismatch'; } } else { $_notify = 'incomplete'; } } }
/** * * Formats the message and calls sendTweet() on an object * @param object $obj */ private static function tweetObject($obj) { if (getOption('multi_lingual')) { $cur_locale = getUserLocale(); setupCurrentLocale(getOption('tweet_language')); // the log will be in the language of the master user. } $error = ''; if (class_exists('tinyURL')) { $link = tinyURL::getURL($obj); } else { $link = $obj->getLink(); } switch ($type = $obj->table) { case 'pages': case 'news': $error = self::composeStatus($link, $obj->getTitle(), $obj->getContent()); break; case 'albums': case 'images': if ($type == 'images') { $text = sprintf(gettext('New image: [%2$s]%1$s '), $item = $obj->getTitle(), $obj->imagefolder); } else { $text = sprintf(gettext('New album: %s '), $item = $obj->getTitle()); } $error = self::composeStatus($link, '', $item); break; case 'comments': $error = self::composeStatus($link, '', $obj->getComment()); break; } if (isset($cur_locale)) { setupCurrentLocale($cur_locale); // restore to whatever was in effect. } return $error; }
/** * Generates an editable list of language strings * * @param string $dbstring either a serialized languag string array or a single string * @param string $name the prefix for the label, id, and name tags * @param bool $textbox set to true for a textbox rather than a text field * @param string $locale optional locale of the translation desired * @param string $edit optional class * @param int $wide column size. true or false for the standard or short sizes. Or pass a column size * @param string $ulclass set to the class for the UL element * @param int $rows set to the number of rows to show. */ function print_language_string_list($dbstring, $name, $textbox = false, $locale = NULL, $edit = '', $wide = TEXT_INPUT_SIZE, $ulclass = 'language_string_list', $rows = 6) { global $_zp_active_languages, $_zp_current_locale; $dbstring = zpFunctions::unTagURLs($dbstring); if (!empty($edit)) { $edit = ' class="' . $edit . '"'; } if (is_null($locale)) { $locale = getUserLocale(); } $strings = getSerializedArray($dbstring); if (count($strings) == 1) { $keys = array_keys($strings); $lang = array_shift($keys); if (!is_string($lang)) { $strings = array($locale => array_shift($strings)); } } $activelang = generateLanguageList(); if (getOption('multi_lingual') && !empty($activelang)) { if ($textbox) { if (strpos($wide, '%') === false) { $width = ' cols="' . $wide . '"'; } else { $width = ' style="width:' . ((int) $wide - 1) . '%;"'; } } else { if (strpos($wide, '%') === false) { $width = ' size="' . $wide . '"'; } else { $width = ' style="width:' . ((int) $wide - 2) . '%;"'; } } // put the language list in perferred order $preferred = array($_zp_current_locale); foreach (parseHttpAcceptLanguage() as $lang) { $preferred[] = str_replace('-', '_', $lang['fullcode']); } $preferred = array_unique($preferred); $emptylang = array(); foreach ($preferred as $lang) { foreach ($activelang as $key => $active) { if ($active == $lang) { $emptylang[$active] = $key; unset($activelang[$key]); continue 2; } } if (strlen($lang) == 2) { // "wild card language" foreach ($activelang as $key => $active) { if (substr($active, 0, 2) == $lang) { $emptylang[$active] = $key; } } } } foreach ($activelang as $key => $active) { $emptylang[$active] = $key; } if ($textbox) { $class = 'box'; } else { $class = ''; } echo '<ul class="' . $ulclass . $class . '"' . ">\n"; $empty = true; foreach ($emptylang as $key => $lang) { if (isset($strings[$key])) { $string = $strings[$key]; if (!empty($string)) { unset($emptylang[$key]); $empty = false; ?> <li> <label for="<?php echo $name . '_' . $key; ?> "><?php echo $lang; ?> </label> <?php if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . $width . ' rows="' . $rows . '">' . html_encode($string) . '</textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '"' . $edit . ' type="text" value="' . html_encode($string) . '"' . $width . ' />'; } ?> </li> <?php } } } foreach ($emptylang as $key => $lang) { ?> <li> <label for="<?php echo $name . '_' . $key; ?> "><?php echo $lang; ?> </label> <?php if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . $width . ' rows="' . $rows . '"></textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '"' . $edit . ' type="text" value=""' . $width . ' />'; } ?> </li> <?php } echo "</ul>\n"; } else { if ($textbox) { if (strpos($wide, '%') === false) { $width = ' cols="' . $wide . '"'; } else { $width = ' style="width:' . $wide . ';"'; } } else { if (strpos($wide, '%') === false) { $width = ' size="' . $wide . '"'; } else { $width = ' style="width:' . $wide . ';"'; } } if (empty($locale)) { $locale = 'en_US'; } if (isset($strings[$locale])) { $dbstring = $strings[$locale]; } else { $dbstring = array_shift($strings); } if ($textbox) { echo '<textarea name="' . $name . '_' . $locale . '"' . $edit . $width . ' rows="' . $rows . '">' . html_encode($dbstring) . '</textarea>'; } else { echo '<input name="' . $name . '_' . $locale . '"' . $edit . ' type="text" value="' . html_encode($dbstring) . '"' . $width . ' />'; } } }
/** * Parses the verification and registration if they have occurred * places the user registration form * * @param string $thanks the message shown on successful registration */ function printRegistrationForm($thanks = NULL) { global $notify, $admin_e, $admin_n, $user, $_zp_authority, $_zp_captcha, $_zp_gallery_page, $_zp_gallery; require_once dirname(dirname(__FILE__)) . '/admin-functions.php'; $userobj = NULL; // handle any postings if (isset($_GET['verify'])) { $currentadmins = $_zp_authority->getAdministrators(); $params = unserialize(pack("H*", trim(sanitize($_GET['verify']), '.'))); $userobj = $_zp_authority->getAnAdmin(array('`user`=' => $params['user'], '`valid`=' => 1)); if ($userobj->getEmail() == $params['email']) { if (!$userobj->getRights()) { $userobj->setCredentials(array('registered', 'user', 'email')); $rights = getOption('register_user_user_rights'); $group = NULL; if (!is_numeric($rights)) { // a group or template $admin = $_zp_authority->getAnAdmin(array('`user`=' => $rights, '`valid`=' => 0)); if ($admin) { $userobj->setObjects($admin->getObjects()); if ($admin->getName() != 'template') { $group = $rights; } $rights = $admin->getRights(); } else { $rights = NO_RIGHTS; } } $userobj->setRights($rights | NO_RIGHTS); $userobj->setGroup($group); zp_apply_filter('register_user_verified', $userobj); $notify = false; if (getOption('register_user_notify')) { $notify = zp_mail(gettext('Zenphoto Gallery registration'), sprintf(gettext('%1$s (%2$s) has registered for the zenphoto gallery providing an e-mail address of %3$s.'), $userobj->getName(), $userobj->getUser(), $userobj->getEmail())); } if (empty($notify)) { if (getOption('register_user_create_album')) { $userobj->createPrimealbum(); } $notify = 'verified'; $_POST['user'] = $userobj->getUser(); } $userobj->save(); } else { $notify = 'verified'; } } else { $notify = 'not_verified'; // User ID no longer exists } } if (isset($_POST['register_user'])) { if (getOption('register_user_captcha')) { if (isset($_POST['code'])) { $code = sanitize($_POST['code'], 3); $code_ok = sanitize($_POST['code_h'], 3); } else { $code = ''; $code_ok = ''; } if (!$_zp_captcha->checkCaptcha($code, $code_ok)) { $notify = 'invalidcaptcha'; } } $admin_n = trim(sanitize($_POST['admin_name'])); if (empty($admin_n)) { $notify = 'incomplete'; } if (isset($_POST['admin_email'])) { $admin_e = trim(sanitize($_POST['admin_email'])); } else { $admin_e = trim(sanitize($_POST['adminuser'])); } if (!is_valid_email_zp($admin_e)) { $notify = 'invalidemail'; } $pass = trim(sanitize($_POST['adminpass'])); $user = trim(sanitize($_POST['adminuser'])); if (!empty($user) && !empty($admin_n) && !empty($admin_e)) { if ($pass == trim(sanitize($_POST['adminpass_2']))) { $currentadmin = $_zp_authority->getAnAdmin(array('`user`=' => $user, '`valid`>' => 0)); if (is_object($currentadmin)) { $notify = 'exists'; } if (empty($notify)) { $notify = $_zp_authority->validatePassword($pass); // test for valid password if (empty($notify)) { $userobj = $_zp_authority->newAdministrator(''); $userobj->transient = false; $userobj->setUser($user); $userobj->setPass($pass); $userobj->setName($admin_n); $userobj->setEmail($admin_e); $userobj->setRights(0); $userobj->setObjects(NULL); $userobj->setGroup(''); $userobj->setCustomData(''); $userobj->setLanguage(getUserLocale()); zp_apply_filter('register_user_registered', $userobj); if ($userobj->transient) { if (empty($notify)) { $notify = 'filter'; } } else { $userobj->save(); $link = rewrite_path(FULLWEBPATH . '/page/' . substr($_zp_gallery_page, 0, -4) . '?verify=' . bin2hex(serialize(array('user' => $user, 'email' => $admin_e))), FULLWEBPATH . '/index.php?p=' . substr($_zp_gallery_page, 0, -4) . '&verify=' . bin2hex(serialize(array('user' => $user, 'email' => $admin_e))), false); $message = sprintf(get_language_string(getOption('register_user_text')), $link); $notify = zp_mail(get_language_string(gettext('Registration confirmation')), $message, array($user => $admin_e)); if (empty($notify)) { $notify = 'accepted'; } } } } } else { $notify = 'mismatch'; } } else { $notify = 'incomplete'; } } if (zp_loggedin()) { if (isset($_GET['userlog']) && $_GET['userlog'] == 1) { echo '<meta http-equiv="refresh" content="1; url=' . WEBPATH . '/">'; } else { echo '<div class="errorbox fade-message">'; echo '<h2>' . gettext("you are already logged in.") . '</h2>'; echo '</div>'; } return; } if (!empty($notify)) { if ($notify == 'verified' || $notify == 'accepted') { ?> <div class="Messagebox fade-message"> <p> <?php if ($notify == 'verified') { if (is_null($thanks)) { $thanks = gettext("Thank you for registering."); } echo $thanks; } else { echo gettext('Your registration information has been accepted. An email has been sent to you to verify your email address.'); } ?> </p> </div> <?php if ($notify == 'verified') { require_once SERVERPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/user_login-out.php'; ?> <p><?php echo gettext('You may now log onto the site.'); ?> </p> <?php printPasswordForm('', false, true, WEBPATH . '/' . ZENFOLDER . '/admin.php'); } $notify = 'success'; } else { echo '<div class="errorbox fade-message">'; echo '<h2>' . gettext("Registration failed.") . '</h2>'; echo '<p>'; switch ($notify) { case 'exists': printf(gettext('The user ID <em>%s</em> is already in use.'), $admin_e); break; case 'mismatch': echo gettext('Your passwords did not match.'); break; case 'incomplete': echo gettext('You have not filled in all the fields.'); break; case 'notverified': echo gettext('Invalid verification link.'); break; case 'invalidemail': echo gettext('Enter a valid email address.'); break; case 'invalidcaptcha': echo gettext('The CAPTCHA you entered was not correct.'); break; case 'not_verified': echo gettext('Your registration request could not be completed.'); break; case 'filter': if (is_object($userobj) && !empty($userobj->msg)) { echo $userobj->msg; } else { echo gettext('Your registration attempt failed a <code>register_user_registered</code> filter check.'); } break; default: echo $notify; break; } echo '</p>'; echo '</div>'; } } if ($notify != 'success') { $form = getPlugin('register_user/register_user_form.php', true); require_once $form; } }
/** * Generates an editable list of language strings * * @param string $dbstring either a serialized languag string array or a single string * @param string $name the prefix for the label, id, and name tags * @param bool $textbox set to true for a textbox rather than a text field * @param string $locale optional locale of the translation desired * @param string $edit optional class * @param int $wide column size. true or false for the standard or short sizes. Or pass a column size * @param string $ulclass set to the class for the UL element * @param int $rows set to the number of rows to show. */ function print_language_string_list($dbstring, $name, $textbox = false, $locale = NULL, $edit = '', $wide = TEXT_INPUT_SIZE, $ulclass = 'language_string_list', $rows = 6) { global $_zp_active_languages, $_zp_current_locale; if (!empty($edit)) { $edit = ' class="' . $edit . '"'; } if (empty($id)) { $groupid = ''; } else { $groupid = ' id="' . $id . '"'; } if (is_null($locale)) { if (is_null($_zp_current_locale)) { $_zp_current_locale = getUserLocale(); } $locale = $_zp_current_locale; } if (preg_match('/^a:[0-9]+:{/', $dbstring)) { $strings = unserialize($dbstring); } else { $strings = array($locale => $dbstring); } if (getOption('multi_lingual')) { $emptylang = generateLanguageList(); $emptylang = array_flip($emptylang); unset($emptylang['']); if ($textbox) { $class = 'box'; } else { $class = ''; } echo '<ul' . $groupid . ' class="' . $ulclass . $class . '"' . ">\n"; $empty = true; foreach ($emptylang as $key => $lang) { if (isset($strings[$key])) { $string = $strings[$key]; if (!empty($string)) { unset($emptylang[$key]); $empty = false; ?> <li> <label for="<?php echo $name . '_' . $key; ?> "><?php echo $lang; ?> </label> <?php if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . ' cols="' . $wide . '" rows="' . $rows . '">' . html_encode($string) . '</textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '"' . $edit . ' type="text" value="' . html_encode($string) . '" size="' . $wide . '" />'; } ?> </li> <?php } } } if ($empty) { $element = $emptylang[$locale]; unset($emptylang[$locale]); $emptylang = array_merge(array($locale => $element), $emptylang); } foreach ($emptylang as $key => $lang) { echo '<li><label for="' . $name . '_' . $key . '"></label>'; echo $lang; if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . ' cols="' . $wide . '" rows="' . $rows . '"></textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '"' . $edit . ' type="text" value="" size="' . $wide . '" />'; } echo "</li>\n"; } echo "</ul>\n"; } else { if (empty($locale)) { $locale = 'en_US'; } if (isset($strings[$locale])) { $dbstring = $strings[$locale]; } else { $dbstring = array_shift($strings); } if ($textbox) { echo '<textarea' . $groupid . ' name="' . $name . '_' . $locale . '"' . $edit . ' cols="' . $wide . '" rows="' . $rows . '">' . html_encode($dbstring) . '</textarea>'; } else { echo '<input' . $groupid . ' name="' . $name . '_' . $locale . '"' . $edit . ' type="text" value="' . html_encode($dbstring) . '" size="' . $wide . '" />'; } } }
/** * Generates an editable list of language strings * * @param string $dbstring either a serialized languag string array or a single string * @param string $name the prefix for the label, id, and name tags * @param bool $textbox set to true for a textbox rather than a text field * @param string $locale optional locale of the translation desired * @param string $edit optional class * @param int $wide column size. true or false for the standard or short sizes. Or pass a column size * @param string $ulclass set to the class for the UL element * @param int $rows set to the number of rows to show. */ function print_language_string_list($dbstring, $name, $textbox = false, $locale = NULL, $edit = '', $wide = TEXT_INPUT_SIZE, $ulclass = 'language_string_list', $rows = 6) { global $_zp_active_languages, $_zp_current_locale, $_lsInstance; $dbstring = zpFunctions::unTagURLs($dbstring); if (!empty($edit)) { $edit = ' class="' . $edit . '"'; } if (is_null($locale)) { $locale = getUserLocale(); } $strings = getSerializedArray($dbstring); if (count($strings) == 1) { $keys = array_keys($strings); $lang = array_shift($keys); if (!is_string($lang)) { $strings = array($locale => array_shift($strings)); } } $activelang = generateLanguageList(); $allLang = array_flip(generateLanguageList('all')); foreach ($strings as $lang => $v) { if (!array_key_exists($lang, $activelang)) { $activelang[$allLang[$lang]] = $lang; } } echo '<div id="ls_' . ++$_lsInstance . '">' . "\n"; if ($multi = getOption('multi_lingual') && !empty($activelang)) { if ($textbox) { if (strpos($wide, '%') === false) { $width = ' cols="' . $wide . '"'; } else { $width = ' style="width:' . ((int) $wide - 1) . '%;"'; } } else { if (strpos($wide, '%') === false) { $width = ' size="' . $wide . '"'; } else { $width = ' style="width:' . ((int) $wide - 2) . '%;"'; } } // put the language list in perferred order $preferred = array(); if ($_zp_current_locale) { $preferred[] = $_zp_current_locale; } foreach (parseHttpAcceptLanguage() as $lang) { $preferred[] = str_replace('-', '_', $lang['fullcode']); } $preferred = array_unique($preferred); $emptylang = array(); foreach ($preferred as $lang) { foreach ($activelang as $key => $active) { if ($active == $lang) { $emptylang[$active] = $key; unset($activelang[$key]); continue 2; } } if (strlen($lang) == 2) { // "wild card language" foreach ($activelang as $key => $active) { if (substr($active, 0, 2) == $lang) { $emptylang[$active] = $key; } } } } foreach ($activelang as $key => $active) { $emptylang[$active] = $key; } if ($textbox) { $class = 'box'; } else { $class = ''; } echo '<ul id="ul_' . $_lsInstance . '" class="' . $ulclass . $class . '"' . ">\n"; $empty = true; foreach ($emptylang as $key => $lang) { if (isset($strings[$key])) { $string = $strings[$key]; if (!empty($string)) { unset($emptylang[$key]); $empty = false; ?> <li> <label for="<?php echo $name . '_' . $key; ?> "><?php echo $lang; ?> </label> <?php if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . $width . ' rows="' . $rows . '">' . html_encode($string) . '</textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '"' . $edit . ' type="text" value="' . html_encode($string) . '"' . $width . ' />'; } ?> </li> <?php } } } foreach ($emptylang as $key => $lang) { ?> <li> <label for="<?php echo $name . '_' . $key; ?> "><?php echo $lang; ?> </label> <?php if ($textbox) { echo "\n" . '<textarea name="' . $name . '_' . $key . '"' . $edit . $width . ' rows="' . $rows . '"></textarea>'; } else { echo '<br /><input id="' . $name . '_' . $key . '" name="' . $name . '_' . $key . '"' . $edit . ' type="text" value=""' . $width . ' />'; } ?> </li> <?php } echo "</ul>\n"; } else { if ($textbox) { if (strpos($wide, '%') === false) { $width = ' cols="' . $wide . '"'; } else { $width = ' style="width:' . $wide . ';"'; } } else { if (strpos($wide, '%') === false) { $width = ' size="' . $wide . '"'; } else { $width = ' style="width:' . $wide . ';"'; } } if (empty($locale)) { $locale = 'en_US'; } if (isset($strings[$locale])) { $dbstring = $strings[$locale]; unset($strings[$locale]); } else { $dbstring = array_shift($strings); } if ($textbox) { echo '<textarea name="' . $name . '_' . $locale . '"' . $edit . $width . ' rows="' . $rows . '">' . html_encode($dbstring) . '</textarea>'; } else { echo '<input name="' . $name . '_' . $locale . '"' . $edit . ' type="text" value="' . html_encode($dbstring) . '"' . $width . ' />'; } foreach ($strings as $key => $dbstring) { if (!empty($dbstring)) { ?> <input type="hidden" name="<?php echo $name . '_' . $key; ?> " value="<?php echo html_encode($dbstring); ?> " /> <?php } } } echo "</div>\n"; if ($multi) { ?> <script type="text/javascript"> $(function () { $('#ls_<?php echo $_lsInstance; ?> ').resizable({ minHeight: 60, resize: function (event, ui) { $(this).css("width", ''); $('#ul_<?php echo $_lsInstance; ?> ').height($('#ls_<?php echo $_lsInstance; ?> ').height()); } }); });</script> <?php } }
* * @package admin * @subpackage development */ // force UTF-8 Ø if (!defined('OFFSET_PATH')) { define('OFFSET_PATH', 2); require_once dirname(__FILE__) . '/admin-globals.php'; require_once SERVERPATH . '/' . ZENFOLDER . '/template-functions.php'; $extension = sanitize($_GET['extension']); if (!in_array($extension, array_keys(getPluginFiles('*.php')))) { exit; } header('Last-Modified: ' . ZP_LAST_MODIFIED); header('Content-Type: text/html; charset=' . LOCAL_CHARSET); $real_locale = getUserLocale(); $pluginType = @$_GET['type']; if ($pluginType) { $pluginToBeDocPath = SERVERPATH . '/' . USER_PLUGIN_FOLDER . '/' . $extension . '.php'; } else { $pluginToBeDocPath = SERVERPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/' . $extension . '.php'; } $plugin_description = ''; $plugin_notice = ''; $plugin_disable = ''; $plugin_author = ''; $plugin_version = ''; $plugin_is_filter = ''; $plugin_URL = ''; $option_interface = ''; $doclink = '';
/** * Does the log handling * * @param int $success * @param string $user * @param string $name * @param string $ip * @param string $type * @param string $authority kind of login * @param string $addl more info */ function security_logger_loginLogger($success, $user, $name, $ip, $action, $authority, $addl = NULL) { global $_zp_authority; $admin = $_zp_authority->getAnAdmin(array('`user`=' => $_zp_authority->master_user, '`valid`=' => 1)); if ($admin) { $locale = $admin->getLanguage(); } if (empty($locale)) { $locale = 'en_US'; } $cur_locale = getUserLocale(); setupCurrentLocale($locale); // the log will be in the language of the master user. switch ($action) { case 'clear_log': $type = gettext('Log reset'); break; case 'delete_log': $type = gettext('Log deleted'); break; case 'download_log': $type = gettext('Log downloaded'); break; case 'install': $type = gettext('Installed'); $addl = gettext('version') . ' ' . ZENPHOTO_VERSION . '[' . ZENPHOTO_RELEASE . "]"; break; case 'delete': $type = gettext('Removed setup file'); break; case 'new': $type = gettext('Request add user'); break; case 'update': $type = gettext('Request update user'); break; case 'delete': $type = gettext('Request delete user'); break; case 'XSRF access blocked': $type = gettext('XSRF access blocked'); break; case 'Blocked album': $type = gettext('Blocked album'); break; case 'Blocked access': $type = gettext('Blocked access'); break; case 'Front-end': $type = gettext('Guest login'); break; case 'Back-end': $type = gettext('Admin login'); break; default: $type = $action; } $file = dirname(dirname(dirname(__FILE__))) . '/' . DATA_FOLDER . '/security_log.txt'; $preexists = file_exists($file) && filesize($file) > 0; $f = fopen($file, 'a'); if ($f) { if (!$preexists) { // add a header fwrite($f, gettext('date' . "\t" . 'requestor\'s IP' . "\t" . 'type' . "\t" . 'user ID' . "\t" . 'user name' . "\t" . 'outcome' . "\t" . 'authority' . "\tadditional information\n")); } $message = date('Y-m-d H:i:s') . "\t"; $message .= $ip . "\t"; $message .= $type . "\t"; $message .= $user . "\t"; $message .= $name . "\t"; if ($success) { $message .= gettext("Success") . "\t"; $message .= substr($authority, 0, strrpos($authority, '_auth')); } else { $message .= gettext("Failed") . "\t"; } if ($addl) { $message .= "\t" . $addl; } fwrite($f, $message . "\n"); fclose($f); clearstatcache(); if (!$preexists) { chmod($file, 0600); $permission = fileperms($file) & 0777; if ($permission != 0600) { $f = fopen($file, 'a'); fwrite($f, "\t\t" . gettext('Set Security log permissions') . "\t\t\t" . gettext('Failed') . "\t\t" . sprintf(gettext('File permissions of Security log are %04o'), $permission) . "\n"); fclose($f); clearstatcache(); } } } setupCurrentLocale($cur_locale); // restore to whatever was in effect. }
/** * Prints html meta data to be used in the <head> section of a page * */ static function getHTMLMetaData() { global $_zp_gallery, $_zp_page, $_zp_current_album, $_zp_current_image, $_zp_current_search, $_zp_current_article, $_zp_current_page, $_zp_gallery_page, $_zp_current_category, $_zp_authority, $_zp_conf_vars, $_myFavorites; $host = sanitize("http://" . $_SERVER['HTTP_HOST']); $url = $host . getRequestURI(); // Convert locale shorttag to allowed html meta format $locale_ = getUserLocale(); $locale = zpFunctions::getLanguageText($locale_, '-'); $canonicalurl = ''; // generate page title, get date $pagetitle = ""; // for gallery index setup below switch $date = strftime(DATE_FORMAT); // if we don't have a item date use current date $desc = getBareGalleryDesc(); $thumb = ''; if (getOption('htmlmeta_sitelogo')) { $thumb = getOption('htmlmeta_sitelogo'); } if (getOption('htmlmeta_og-image') || getOption('htmlmeta_twittercard')) { $ogimage_width = getOption('htmlmeta_ogimage_width'); $ogimage_height = getOption('htmlmeta_ogimage_height'); if (empty($ogimage_width)) { $ogimage_width = 1280; } if (empty($ogimage_height)) { $ogimage_height = 900; } $twittercard_type = 'summary'; } $type = 'article'; switch ($_zp_gallery_page) { case 'index.php': $desc = getBareGalleryDesc(); $canonicalurl = $host . $_zp_gallery->getLink($_zp_page); $type = 'website'; break; case 'album.php': case 'favorites.php': $pagetitle = getBareAlbumTitle() . " - "; $date = getAlbumDate(); $desc = getBareAlbumDesc(); $canonicalurl = $host . $_zp_current_album->getLink($_zp_page); if (getOption('htmlmeta_og-image') || getOption('htmlmeta_twittercard')) { $thumbimg = $_zp_current_album->getAlbumThumbImage(); getMaxSpaceContainer($ogimage_width, $ogimage_height, $thumbimg, false); $thumb = $host . html_encode(pathurlencode($thumbimg->getCustomImage(NULL, $ogimage_width, $ogimage_height, NULL, NULL, NULL, NULL, false, NULL))); $twittercard_type = 'summary_large_image'; } break; case 'image.php': $pagetitle = getBareImageTitle() . " (" . getBareAlbumTitle() . ") - "; $date = getImageDate(); $desc = getBareImageDesc(); $canonicalurl = $host . $_zp_current_image->getLink(); if (getOption('htmlmeta_og-image') || getOption('htmlmeta_twittercard')) { $thumb = $host . html_encode(pathurlencode(getCustomSizedImageMaxSpace($ogimage_width, $ogimage_height))); $twittercard_type = 'summary_large_image'; } break; case 'news.php': if (function_exists("is_NewsArticle")) { if (is_NewsArticle()) { $pagetitle = getBareNewsTitle() . " - "; $date = getNewsDate(); $desc = trim(getBare(getNewsContent())); $canonicalurl = $host . $_zp_current_article->getLink(); } else { if (is_NewsCategory()) { $pagetitle = $_zp_current_category->getTitlelink() . " - "; $date = strftime(DATE_FORMAT); $desc = trim(getBare($_zp_current_category->getDesc())); $canonicalurl = $host . $_zp_current_category->getLink($_zp_page); $type = 'category'; } else { $pagetitle = gettext('News') . " - "; $desc = ''; $canonicalurl = $host . getNewsPathNav($_zp_page); $type = 'website'; } } } break; case 'pages.php': $pagetitle = getBarePageTitle() . " - "; $date = getPageDate(); $desc = trim(getBare(getPageContent())); $canonicalurl = $host . $_zp_current_page->getLink(); break; default: // for all other possible static custom pages $custompage = stripSuffix($_zp_gallery_page); $standard = array('contact' => gettext('Contact'), 'register' => gettext('Register'), 'search' => gettext('Search'), 'archive' => gettext('Archive view'), 'password' => gettext('Password required')); if (is_object($_myFavorites)) { $standard['favorites'] = gettext('My favorites'); } if (array_key_exists($custompage, $standard)) { $pagetitle = $standard[$custompage] . " - "; } else { $pagetitle = $custompage . " - "; } $desc = ''; $canonicalurl = $host . getCustomPageURL($custompage); break; } // shorten desc to the allowed 200 characters if necesssary. $desc = html_encode(trim(substr(getBare($desc), 0, 160))); $pagetitle = $pagetitle . getBareGalleryTitle(); // get master admin $admin = $_zp_authority->getMasterUser(); $author = $admin->getName(); $meta = ''; if (getOption('htmlmeta_http-equiv-cache-control')) { $meta .= '<meta http-equiv="Cache-control" content="' . getOption("htmlmeta_cache_control") . '">' . "\n"; } if (getOption('htmlmeta_http-equiv-pragma')) { $meta .= '<meta http-equiv="pragma" content="' . getOption("htmlmeta_pragma") . '">' . "\n"; } if (getOption('htmlmeta_name-keywords')) { $meta .= '<meta name="keywords" content="' . htmlmetatags::getMetaKeywords() . '">' . "\n"; } if (getOption('htmlmeta_name-description')) { $meta .= '<meta name="description" content="' . $desc . '">' . "\n"; } if (getOption('htmlmeta_name-page-topic')) { $meta .= '<meta name="page-topic" content="' . $desc . '">' . "\n"; } if (getOption('htmlmeta_name-robots')) { $meta .= '<meta name="robots" content="' . getOption("htmlmeta_robots") . '">' . "\n"; } if (getOption('htmlmeta_name-publisher')) { $meta .= '<meta name="publisher" content="' . FULLWEBPATH . '">' . "\n"; } if (getOption('htmlmeta_name-creator')) { $meta .= '<meta name="creator" content="' . FULLWEBPATH . '">' . "\n"; } if (getOption('htmlmeta_name-author')) { $meta .= '<meta name="author" content="' . $author . '">' . "\n"; } if (getOption('htmlmeta_name-copyright')) { $meta .= '<meta name="copyright" content=" (c) ' . FULLWEBPATH . ' - ' . $author . '">' . "\n"; } if (getOption('htmlmeta_name-rights')) { $meta .= '<meta name="rights" content="' . $author . '">' . "\n"; } if (getOption('htmlmeta_name-generator')) { $meta .= '<meta name="generator" content="ZenPhoto20 ' . ZENPHOTO_VERSION . '">' . "\n"; } if (getOption('htmlmeta_name-revisit-after')) { $meta .= '<meta name="revisit-after" content="' . getOption("htmlmeta_revisit_after") . ' days">' . "\n"; } if (getOption('htmlmeta_name-expires')) { $expires = getOption("htmlmeta_expires"); if ($expires == (int) $expires) { $expires = preg_replace('|\\s\\-\\d+|', '', date('r', time() + $expires)) . ' GMT'; } $meta .= '<meta name="expires" content="' . $expires . '">' . "\n"; } // OpenGraph meta if (getOption('htmlmeta_opengraph')) { $meta .= '<meta property="og:title" content="' . $pagetitle . '">' . "\n"; if (!empty($thumb)) { $meta .= '<meta property="og:image" content="' . $thumb . '">' . "\n"; } $meta .= '<meta property="og:description" content="' . $desc . '">' . "\n"; $meta .= '<meta property="og:url" content="' . html_encode($url) . '">' . "\n"; $meta .= '<meta property="og:type" content="' . $type . '">' . "\n"; } // Social network extras if (getOption('htmlmeta_name-pinterest')) { $meta .= '<meta name="pinterest" content="nopin">' . "\n"; } // dissalow users to pin images on Pinterest // Twitter card $twittername = getOption('htmlmeta_twittername'); if (getOption('htmlmeta_twittercard') || !empty($twittername)) { $meta .= '<meta name="twitter:creator" content="' . $twittername . '">' . "\n"; $meta .= '<meta name="twitter:site" content="' . $twittername . '">' . "\n"; $meta .= '<meta name="twitter:card" content="' . $twittercard_type . '">' . "\n"; $meta .= '<meta name="twitter:title" content="' . $pagetitle . '">' . "\n"; $meta .= '<meta name="twitter:description" content="' . $desc . '">' . "\n"; if (!empty($thumb)) { $meta .= '<meta name="twitter:image" content="' . $thumb . '">' . "\n"; } } // Canonical url if (getOption('htmlmeta_canonical-url')) { $meta .= '<link rel="canonical" href="' . $canonicalurl . '">' . "\n"; if (METATAG_LOCALE_TYPE) { $langs = generateLanguageList(); if (count($langs) != 1) { if (METATAG_LOCALE_TYPE == 1) { $locallink = seo_locale::localePath(false, $locale_); } else { $locallink = ''; } foreach ($langs as $text => $lang) { $langcheck = zpFunctions::getLanguageText($lang, '-'); // for hreflang we need en-US if ($langcheck != $locale) { if (METATAG_LOCALE_TYPE == 1) { $altlink = seo_locale::localePath(true, $lang); } else { $altlink = dynamic_locale::fullHostPath($lang); } switch ($_zp_gallery_page) { case 'index.php': $altlink .= str_replace($locallink, '', $_zp_gallery->getLink($_zp_page)); break; case 'album.php': case 'favorites.php': $altlink .= str_replace($locallink, '', $_zp_current_album->getLink($_zp_page)); break; case 'image.php': $altlink .= str_replace($locallink, '', $_zp_current_image->getLink()); break; case 'news.php': if (function_exists("is_NewsArticle")) { if (is_NewsArticle()) { $altlink .= str_replace($locallink, '', $_zp_current_article->getLink()); } else { if (is_NewsCategory()) { $altlink .= str_replace($locallink, '', $_zp_current_category->getLink($_zp_page)); } else { $altlink .= getNewsPathNav($_zp_page); } } } break; case 'pages.php': $altlink .= str_replace($locallink, '', $_zp_current_page->getLink()); break; case 'archive.php': $altlink .= getCustomPageURL('archive'); break; case 'search.php': $searchwords = $_zp_current_search->codifySearchString(); $searchdate = $_zp_current_search->getSearchDate(); $searchfields = $_zp_current_search->getSearchFields(true); $searchpagepath = getSearchURL($searchwords, $searchdate, $searchfields, $_zp_page, array('albums' => $_zp_current_search->getAlbumList())); $altlink .= $searchpagepath; break; case 'contact.php': $altlink .= getCustomPageURL('contact'); break; default: // for all other possible none standard custom pages $altlink .= getCustomPageURL($pagetitle); break; } // switch $meta .= '<link rel="alternate" hreflang="' . $langcheck . '" href="' . html_encode($altlink) . '">' . "\n"; } // if lang } // foreach } // if count } // if option } // if canonical echo $meta; }
/** * Common logon handler. * Will log the user on if he exists. Otherwise it will create a user accoung and log * on that account. * * Redirects into Zenphoto on success presuming there is a redirect link. * * @param $user * @param $email * @param $name * @param $redirect */ static function credentials($user, $email, $name, $redirect) { $userobj = Zenphoto_Authority::getAnAdmin(array('`user`=' => $user, '`valid`=' => 1)); $more = false; if ($userobj) { // update if changed $save = false; if (!empty($email) && $email != $userobj->getEmail()) { $save = true; $userobj->setEmail($email); } if (!empty($name) && $name != $userobj->getName()) { $save = true; $userobj->setName($name); } if ($save) { $userobj->save(); } } else { // User does not exist, create him $groupname = getOption('federated_login_group'); $groupobj = Zenphoto_Authority::getAnAdmin(array('`user`=' => $groupname, '`valid`=' => 0)); if ($groupobj) { $group = NULL; if ($groupobj->getName() != 'template') { $group = $groupname; } $userobj = Zenphoto_Authority::newAdministrator(''); $userobj->transient = false; $userobj->setUser($user); $credentials = array('federated', 'user', 'email'); if ($name) { $credentials[] = 'name'; } $userobj->setCredentials($credentials); $userobj->setName($name); $userobj->setPass($user . HASH_SEED . gmdate('d M Y H:i:s')); $userobj->setObjects(NULL); $userobj->setCustomData(''); $userobj->setLanguage(getUserLocale()); $userobj->setObjects($groupobj->getObjects()); if (is_valid_email_zp($email)) { $userobj->setEmail($email); if (getOption('register_user_create_album')) { $userobj->createPrimealbum(); } } else { $groupobj = Zenphoto_Authority::getAnAdmin(array('`user`=' => 'federated_verify', '`valid`=' => 0)); if (empty($groupobj)) { $groupobj = Zenphoto_Authority::newAdministrator('federated_verify', 0); $groupobj->setName('group'); $groupobj->setRights(NO_RIGHTS); $groupobj->save(); } $group = 'federated_verify'; $redirect = WEBPATH . '/' . ZENFOLDER . '/admin.php'; } $userobj->setRights($groupobj->getRights()); $userobj->setGroup($group); $userobj->save(); } else { $more = sprintf(gettext('Group %s does not exist.'), $groupname); } } if (!$more) { zp_apply_filter('federated_login_attempt', true, $user); Zenphoto_Authority::logUser($userobj); if ($redirect) { header("Location: " . $redirect); exitZP(); } } return $more; }
/** * Sets the locale, etc. to the zenphoto domain details. * Returns the rewult of setupCurrentLocale() * */ function setMainDomain() { getUserLocale(); return setupCurrentLocale(); }