function render() { if (!$this->name) { throw new \Exception('must set a name'); } $header = XhtmlHeader::getInstance(); $header->includeCss('core_dev/js/ext/yui/2.9.0/build/calendar/assets/skins/sam/calendar.css'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/calendar/calendar-min.js'); $locale = LocaleHandler::getInstance(); $div_holder = 'yui_date_hold' . mt_rand(); $res = 'YAHOO.namespace("example.calendar");' . 'YAHOO.example.calendar.init = function() {' . 'var inTxt = YAHOO.util.Dom.get("' . $this->name . '");' . ($this->selected_date ? 'inTxt.value = "' . sql_date($this->selected_date) . '";' : '') . 'var cal = YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("' . $div_holder . '");' . ($this->selected_date ? 'cal.cfg.setProperty("selected", "' . js_date($this->selected_date) . '");' . 'cal.cfg.setProperty("pagedate", "' . date('n/Y', $this->selected_date) . '");' : '') . 'cal.cfg.setProperty("start_weekday",' . $this->start_weekday . ');' . 'cal.cfg.setProperty("MONTHS_SHORT",' . Json::encode($locale->handle->month_short, false) . ');' . 'cal.cfg.setProperty("MONTHS_LONG",' . Json::encode($locale->handle->month_long, false) . ');' . 'cal.cfg.setProperty("WEEKDAYS_1CHAR",' . Json::encode($locale->handle->weekday_1char, false) . ');' . 'cal.cfg.setProperty("WEEKDAYS_SHORT",' . Json::encode($locale->handle->weekday_short, false) . ');' . 'cal.cfg.setProperty("WEEKDAYS_MEDIUM",' . Json::encode($locale->handle->weekday_medium, false) . ');' . 'cal.cfg.setProperty("WEEKDAYS_LONG",' . Json::encode($locale->handle->weekday_long, false) . ');' . 'cal.selectEvent.subscribe(function() {' . 'var dates = this.getSelectedDates();' . 'var inDate = dates[0];' . 'inTxt.value = inDate.getFullYear() + "-" + (inDate.getMonth() + 1) + "-" + inDate.getDate();' . '}, cal, true);' . 'cal.render();' . '}' . "\n" . 'YAHOO.util.Event.onDOMReady(YAHOO.example.calendar.init);'; return '<div id="' . $div_holder . '"></div>' . '<div style="clear:both"></div>' . xhtmlInput($this->name) . '<br/>' . js_embed($res); }
function render() { if (!$this->name) { throw new \Exception('name must be configured'); } $header = XhtmlHeader::getInstance(); $header->includeCss('core_dev/js/ext/yui/2.9.0/build/calendar/assets/skins/sam/calendar.css'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/calendar/calendar-min.js'); $res = '(function()' . '{' . 'function IntervalCalendar(container, cfg)' . '{' . 'this._iState = 0;' . 'cfg = cfg || {};' . 'cfg.multi_select = true;' . 'IntervalCalendar.superclass.constructor.call(this, container, cfg);' . 'this.beforeSelectEvent.subscribe(this._intervalOnBeforeSelect, this, true);' . 'this.selectEvent.subscribe(this._intervalOnSelect, this, true);' . 'this.beforeDeselectEvent.subscribe(this._intervalOnBeforeDeselect, this, true);' . 'this.deselectEvent.subscribe(this._intervalOnDeselect, this, true);' . '}' . 'IntervalCalendar._DEFAULT_CONFIG = YAHOO.widget.CalendarGroup._DEFAULT_CONFIG;' . 'YAHOO.lang.extend(IntervalCalendar, YAHOO.widget.CalendarGroup,' . '{' . '_dateString : function(d) {' . 'var a = [];' . 'a[this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.MDY_MONTH_POSITION.key)-1] = (d.getMonth() + 1);' . 'a[this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.MDY_DAY_POSITION.key)-1] = d.getDate();' . 'a[this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.MDY_YEAR_POSITION.key)-1] = d.getFullYear();' . 'var s = this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.DATE_FIELD_DELIMITER.key);' . 'return a.join(s);' . '},' . '_dateIntervalString : function(l, u) {' . 'var s = this.cfg.getProperty(IntervalCalendar._DEFAULT_CONFIG.DATE_RANGE_DELIMITER.key);' . 'return (this._dateString(l) + s + this._dateString(u));' . '},' . 'getInterval : function() {' . 'var dates = this.getSelectedDates();' . 'if(dates.length > 0) {' . 'var l = dates[0];' . 'var u = dates[dates.length - 1];' . 'return [l, u];' . '} else {' . 'return [];' . '}' . '},' . 'setInterval : function(d1, d2) {' . 'var b = (d1 <= d2);' . 'var l = b ? d1 : d2;' . 'var u = b ? d2 : d1;' . 'this.cfg.setProperty("selected", this._dateIntervalString(l, u), false);' . 'this._iState = 2;' . '},' . 'resetInterval : function() {' . 'this.cfg.setProperty("selected", [], false);' . 'this._iState = 0;' . '},' . '_intervalOnBeforeSelect : function(t,a,o) {' . 'this._iState = (this._iState + 1) % 3;' . 'if(this._iState == 0) {' . 'this.deselectAll();' . 'this._iState++;' . '}' . '},' . '_intervalOnSelect : function(t,a,o) {' . 'var dates = this.getSelectedDates();' . 'if(dates.length > 1) {' . 'var l = dates[0];' . 'var u = dates[dates.length - 1];' . 'this.cfg.setProperty("selected", this._dateIntervalString(l, u), false);' . '}' . 'this.render();' . '},' . '_intervalOnBeforeDeselect : function(t,a,o) {' . 'if(this._iState != 0) {' . 'return false;' . '}' . '},' . '_intervalOnDeselect : function(t,a,o) {' . 'if(this._iState != 0) {' . 'this._iState = 0;' . 'this.deselectAll();' . 'var d = a[0];' . 'var date = YAHOO.widget.DateMath.getDate(d[0], d[1] - 1, d[2]);' . 'var page = this.getCalendarPage(date);' . 'if(page) {' . 'page.beforeSelectEvent.fire();' . 'this.cfg.setProperty("selected", this._dateString(date), false);' . 'page.selectEvent.fire([d]);' . '}' . 'return false;' . '}' . '}' . '});' . 'YAHOO.namespace("example.calendar");' . 'YAHOO.example.calendar.IntervalCalendar = IntervalCalendar;' . '})();'; $locale = LocaleHandler::getInstance(); $div_holder = 'yui_di_hold' . mt_rand(); $res .= 'YAHOO.util.Event.onDOMReady(function()' . '{' . 'var inTxt = YAHOO.util.Dom.get("' . $this->name . '_from");' . 'var outTxt = YAHOO.util.Dom.get("' . $this->name . '_to");' . 'var inDate, outDate, interval;' . ($this->select_from ? 'inTxt.value = "' . sql_date($this->select_from) . '";' : '') . ($this->select_to ? 'outTxt.value = "' . sql_date($this->select_to) . '";' : '') . 'var myConfigs =' . '{' . 'pages:2,' . ($this->select_from && $this->select_to ? 'selected:"' . js_date($this->select_from) . '-' . js_date($this->select_to) . '",' . 'pagedate:"' . date('n/Y', $this->select_from) . '",' : '') . 'start_weekday:' . $this->start_weekday . ',' . 'MONTHS_SHORT:' . Json::encode($locale->handle->month_short, false) . ',' . 'MONTHS_LONG:' . Json::encode($locale->handle->month_long, false) . ',' . 'WEEKDAYS_1CHAR:' . Json::encode($locale->handle->weekday_1char, false) . ',' . 'WEEKDAYS_SHORT:' . Json::encode($locale->handle->weekday_short, false) . ',' . 'WEEKDAYS_MEDIUM:' . Json::encode($locale->handle->weekday_medium, false) . ',' . 'WEEKDAYS_LONG:' . Json::encode($locale->handle->weekday_long, false) . ',' . '};' . 'var cal = new YAHOO.example.calendar.IntervalCalendar("' . $div_holder . '",myConfigs);' . 'cal.selectEvent.subscribe(function()' . '{' . 'interval = this.getInterval();' . 'if (interval.length == 2) {' . 'inDate = interval[0];' . 'inTxt.value = inDate.getFullYear() + "-" + (inDate.getMonth() + 1) + "-" + inDate.getDate();' . 'if (interval[0].getTime() != interval[1].getTime()) {' . 'outDate = interval[1];' . 'outTxt.value = outDate.getFullYear() + "-" + (outDate.getMonth() + 1) + "-" + outDate.getDate();' . '} else {' . 'outTxt.value = "";' . '}' . '}' . '}, cal, true);' . 'cal.render();' . '});'; return '<div id="' . $div_holder . '"></div>' . '<div style="clear:both"></div>' . js_embed($res) . xhtmlInput($this->name . '_from') . ' - ' . xhtmlInput($this->name . '_to'); }
function render() { if (!$this->name) { throw new \Exception('must set a name'); } $header = XhtmlHeader::getInstance(); $header->includeCss('core_dev/js/ext/yui/2.9.0/build/fonts/fonts-min.css'); $header->includeCss('core_dev/js/ext/yui/2.9.0/build/button/assets/skins/sam/button.css'); $header->includeCss('core_dev/js/ext/yui/2.9.0/build/container/assets/skins/sam/container.css'); $header->includeCss('core_dev/js/ext/yui/2.9.0/build/calendar/assets/skins/sam/calendar.css'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/dragdrop/dragdrop-min.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/element/element-min.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/button/button-min.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/container/container-min.js'); $header->includeJs('core_dev/js/ext/yui/2.9.0/build/calendar/calendar-min.js'); $header->embedCss('#container .bd form {' . 'clear:left;' . '}' . '#container .bd {' . 'padding:0;' . '}' . '#container .hd {' . 'text-align:left;' . '}' . '#container .ft .button-group {' . 'text-align:center;' . '}' . '#container_c.yui-overlay-hidden table {' . '*display:none;' . '}' . '#cal {' . 'border:none;' . 'padding:1em;' . '}'); $locale = LocaleHandler::getInstance(); $button_name = 'yui_dp_show_' . mt_rand(); $res = 'YAHOO.util.Event.onDOMReady(function(){' . 'var Event = YAHOO.util.Event,' . 'Dom = YAHOO.util.Dom,' . 'dialog,' . 'calendar;' . 'var showBtn = Dom.get("' . $button_name . '");' . 'Event.on(showBtn, "click", function() {' . 'if (!dialog) {' . 'Event.on(document, "click", function(e) {' . 'var el = Event.getTarget(e);' . 'var dialogEl = dialog.element;' . 'if (el != dialogEl && !Dom.isAncestor(dialogEl, el) && el != showBtn && !Dom.isAncestor(showBtn, el)) {' . 'dialog.hide();' . '}' . '});' . 'function resetHandler() {' . 'var selDates = calendar.getSelectedDates();' . 'var resetDate;' . 'if (selDates.length > 0) {' . 'resetDate = selDates[0];' . '} else {' . 'resetDate = calendar.today;' . '}' . 'calendar.cfg.setProperty("pagedate", resetDate);' . 'calendar.render();' . '}' . 'function closeHandler() {' . 'dialog.hide();' . '}' . 'dialog = new YAHOO.widget.Dialog("container", {' . 'visible:false,' . 'context:["' . $button_name . '", "tl", "bl"],' . 'buttons:[ {text:"Reset", handler: resetHandler, isDefault:true}, {text:"Close", handler: closeHandler}],' . 'draggable:false,' . 'close:true' . '});' . 'dialog.setHeader("Pick A Date");' . 'dialog.setBody(\'<div id="cal"></div>\');' . 'dialog.render(document.body);' . 'dialog.showEvent.subscribe(function() {' . 'if (YAHOO.env.ua.ie) {' . 'dialog.fireEvent("changeContent");' . '}' . '});' . '}' . 'if (!calendar) {' . 'calendar = new YAHOO.widget.Calendar("cal", {' . 'iframe:false,' . 'hide_blank_weeks:true,' . ($this->selected_date ? 'selected:"' . js_date($this->selected_date) . '",' . 'pagedate:"' . date('n/Y', $this->selected_date) . '",' : '') . 'start_weekday:' . $this->start_weekday . ',' . 'MONTHS_SHORT:' . Json::encode($locale->handle->month_short, false) . ',' . 'MONTHS_LONG:' . Json::encode($locale->handle->month_long, false) . ',' . 'WEEKDAYS_1CHAR:' . Json::encode($locale->handle->weekday_1char, false) . ',' . 'WEEKDAYS_SHORT:' . Json::encode($locale->handle->weekday_short, false) . ',' . 'WEEKDAYS_MEDIUM:' . Json::encode($locale->handle->weekday_medium, false) . ',' . 'WEEKDAYS_LONG:' . Json::encode($locale->handle->weekday_long, false) . ',' . '});' . 'calendar.render();' . 'calendar.selectEvent.subscribe(function() {' . 'if (calendar.getSelectedDates().length > 0) {' . 'var selDate = calendar.getSelectedDates()[0];' . 'Dom.get("' . $this->name . '").value = selDate.getFullYear() + "-" + (selDate.getMonth() + 1) + "-" + selDate.getDate();' . '} else {' . 'Dom.get("' . $this->name . '").value = "";' . '}' . 'dialog.hide();' . '});' . 'calendar.renderEvent.subscribe(function() {' . 'dialog.fireEvent("changeContent");' . '});' . '}' . 'var seldate = calendar.getSelectedDates();' . 'if (seldate.length > 0) {' . 'calendar.cfg.setProperty("pagedate", seldate[0]);' . 'calendar.render();' . '}' . 'dialog.show();' . '});' . '});'; return xhtmlInput($this->name, sql_date($this->selected_date), 8) . ' ' . '<button type="button" id="' . $button_name . '" title="Pick a date">' . '<img src="' . relurl('core_dev/gfx/icon_date-picker.png') . '" alt="Pick a date"/>' . '</button>' . js_embed($res); }
/** * Returns a input field from the passed data, used together with editUserdataSettings() */ function getUserdataInput($row, $fill = false) { $fieldId = $row['fieldId']; if (isset($row['value'])) { $value = stripslashes($row['value']); //doesnt nessecary exist } else { if (!empty($row['settingValue'])) { $value = stripslashes($row['settingValue']); } else { if ($fill) { //look for post data if (!empty($_POST['userdata_' . $fieldId])) { $value = $_POST['userdata_' . $fieldId]; } } } } if (!isset($value)) { //for default values in admin display $value = stripslashes($row['fieldDefault']); } switch ($row['fieldType']) { case USERDATA_TYPE_EMAIL: case USERDATA_TYPE_TEXT: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $result .= xhtmlInput('userdata_' . $fieldId, $value, 20, 50); if ($row['fieldType'] == USERDATA_TYPE_EMAIL) { $result .= ' ' . xhtmlImage(coredev_webroot() . 'gfx/icon_mail.png', t('E-mail')) . '<br/>'; //$result .= '<div id="email_valid_'.$fieldId.'">dskksks</div>'; //XXX show email input status (invalid, taken) } if ($row['private']) { $result .= '<br/>' . t('This setting is hidden from other users.'); } $result .= '</td>'; break; case USERDATA_TYPE_TEXTAREA: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $result .= '<textarea name="userdata_' . $fieldId . '" rows="6" cols="40">' . $value . '</textarea>'; $result .= '</td>'; break; case USERDATA_TYPE_CHECKBOX: $result = '<td colspan="2">'; $result .= '<input name="userdata_' . $fieldId . '" type="hidden" value="0"/>'; $result .= '<input name="userdata_' . $fieldId . '" id="userdata_' . $fieldId . '" type="checkbox" class="checkbox" value="1"' . ($value == '1' ? ' checked="checked"' : '') . '/>'; $result .= ' <label for="userdata_' . $fieldId . '">' . $row['fieldName'] . '</label>'; $result .= '</td>'; break; case USERDATA_TYPE_AVATAR: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $options = getCategoriesByOwner(CATEGORY_USERDATA, $fieldId); foreach ($options as $row) { $result .= '<input name="userdata_' . $fieldId . '" type="radio" id="lab_' . $row['categoryId'] . '" value="' . $row['categoryId'] . '"' . ($row['categoryId'] == $value ? ' checked="checked"' : '') . '/>'; $result .= ' <label for="lab_' . $row['categoryId'] . '">'; $result .= '<img src="' . $row['categoryName'] . '"/>'; $result .= '</label><br/>'; } $result .= '</td>'; break; case USERDATA_TYPE_RADIO: case USERDATA_TYPE_GENDER: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $options = getCategoriesByOwner(CATEGORY_USERDATA, $fieldId); foreach ($options as $row) { $result .= '<input name="userdata_' . $fieldId . '" type="radio" id="lab_' . $row['categoryId'] . '" value="' . $row['categoryId'] . '"' . ($row['categoryId'] == $value ? ' checked="checked"' : '') . '/>'; $result .= ' <label for="lab_' . $row['categoryId'] . '">' . $row['categoryName'] . '</label><br/>'; } $result .= '</td>'; break; case USERDATA_TYPE_THEME: case USERDATA_TYPE_SELECT: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $result .= xhtmlSelectCategory(CATEGORY_USERDATA, $fieldId, 'userdata_' . $fieldId, $value); $result .= '</td>'; break; case USERDATA_TYPE_IMAGE: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; if ($value) { $result .= makeThumbLink($value); $result .= '<input name="userdata_' . $fieldId . '_remove" id="userdata_' . $fieldId . '_remove" type="checkbox" class="checkbox"/> '; $result .= '<label for="userdata_' . $fieldId . '_remove">' . t('Delete image') . '</label>'; } else { $result .= '<input name="userdata_' . $fieldId . '" type="file"/>'; } $result .= '</td>'; break; case USERDATA_TYPE_BIRTHDATE: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $d = $m = $y = ''; if ($value) { $y = date('Y', strtotime($row['settingValue'])); $m = date('m', strtotime($row['settingValue'])); $d = date('d', strtotime($row['settingValue'])); } else { if (isset($_POST['userdata_' . $fieldId . '_year'])) { if (is_numeric($_POST['userdata_' . $fieldId . '_year'])) { $y = $_POST['userdata_' . $fieldId . '_year']; } if (is_numeric($_POST['userdata_' . $fieldId . '_month'])) { $m = $_POST['userdata_' . $fieldId . '_month']; } if (is_numeric($_POST['userdata_' . $fieldId . '_day'])) { $d = $_POST['userdata_' . $fieldId . '_day']; } } } $result .= '<select name="userdata_' . $fieldId . '_year">'; $result .= '<option value="">- ' . t('Year') . ' -'; for ($j = date('Y') - 100; $j <= date('Y'); $j++) { $result .= '<option value="' . $j . '"' . ($j == $y ? ' selected' : '') . '>' . $j; } $result .= '</select>'; $result .= '<select name="userdata_' . $fieldId . '_month">'; $result .= '<option value="">- ' . t('Month') . ' -'; for ($j = 1; $j <= 12; $j++) { $k = $j; if ($j < 10) { $k = '0' . $k; } $result .= '<option value="' . $k . '"' . ($j == $m ? ' selected' : '') . '>' . $j; } $result .= '</select>'; $result .= '<select name="userdata_' . $fieldId . '_day">'; $result .= '<option value="">- ' . t('Day') . ' -'; for ($j = 1; $j <= 31; $j++) { $result .= '<option value="' . ($j < 10 ? '0' . $j : $j) . '"' . ($j == $d ? ' selected' : '') . '>' . $j; } $result .= '</select>'; $result .= '</td>'; break; case USERDATA_TYPE_BIRTHDATE_SWE: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $d = $m = $y = $chk = ''; if ($value) { $result .= date('Y-m-d', strtotime($row['settingValue'])); } else { if (isset($_POST['userdata_' . $fieldId . '_year'])) { if (is_numeric($_POST['userdata_' . $fieldId . '_year'])) { $y = $_POST['userdata_' . $fieldId . '_year']; } if (is_numeric($_POST['userdata_' . $fieldId . '_month'])) { $m = $_POST['userdata_' . $fieldId . '_month']; } if (is_numeric($_POST['userdata_' . $fieldId . '_day'])) { $d = $_POST['userdata_' . $fieldId . '_day']; } if (is_numeric($_POST['userdata_' . $fieldId . '_chk'])) { $chk = $_POST['userdata_' . $fieldId . '_chk']; } } $result .= '<select name="userdata_' . $fieldId . '_year">'; $result .= '<option value="">- ' . t('Year') . ' -'; for ($j = date('Y') - 100; $j <= date('Y'); $j++) { $result .= '<option value="' . $j . '"' . ($j == $y ? ' selected' : '') . '>' . $j; } $result .= '</select>'; $result .= '<select name="userdata_' . $fieldId . '_month">'; $result .= '<option value="">- ' . t('Month') . ' -'; for ($j = 1; $j <= 12; $j++) { $k = $j; if ($j < 10) { $k = '0' . $k; } $result .= '<option value="' . $k . '"' . ($j == $m ? ' selected' : '') . '>' . $j; } $result .= '</select>'; $result .= '<select name="userdata_' . $fieldId . '_day">'; $result .= '<option value="">- ' . t('Day') . ' -'; for ($j = 1; $j <= 31; $j++) { $result .= '<option value="' . ($j < 10 ? '0' . $j : $j) . '"' . ($j == $d ? ' selected' : '') . '>' . $j; } $result .= '</select>'; $result .= '<input type="text" name="userdata_' . $fieldId . '_chk" value="' . $chk . '" size="4" maxlength="4"/>'; } $result .= '</td>'; break; case USERDATA_TYPE_LOCATION_SWE: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $result .= '<input name="userdata_' . $fieldId . '" type="text" value="' . $value . '" size="5" maxlength="5"/>'; $result .= '</td>'; break; case USERDATA_TYPE_CELLPHONE: $result = '<td>' . stripslashes($row['fieldName']) . ':</td><td>'; $result .= '<input name="userdata_' . $fieldId . '" type="text" value="' . $value . '" size="12" maxlength="12"/>'; $result .= '</td>'; break; default: die('FATAL: unhandled userdata type in getUserdataInput(): ' . $row['fieldType']); } return $result; }
} // Add this user to Super Admin group UserGroupHandler::addToGroup($user_id, $sadmin_id); } if ($session->login($_POST['register_usr'], $_POST['register_pwd'])) { $session->showStartPage(); } } // after form submit failed, put focus back to the register form <div> to show error $header->embedJsOnload('show_reg_form();'); } $header->embedCss('.register_box{' . 'font-size:14px;' . 'border:1px solid #aaa;' . 'min-width:280px;' . 'color:#000;' . 'background-color:#ddd;' . 'padding:10px;' . 'border-radius:15px 15px 15px 15px;' . '-moz-border-radius:15px 15px 15px 15px;' . '}'); echo '<div id="login_register_layer" class="register_box">'; echo '<b>Register new account</b><br/><br/>'; if ($superadmin_reg) { echo '<div class="critical">The account you create now will be the super administrator account.</div><br/>'; } echo xhtmlForm('reg_frm', '', '', '', 'return validate_reg_form(this);'); echo '<table cellpadding="2">'; echo '<tr>' . '<td>' . t('Username') . ':</td>' . '<td>' . xhtmlInput('register_usr', !empty($_POST['register_usr']) ? $_POST['register_usr'] : '') . ' ' . xhtmlImage($page->getRelativeCoreDevUrl() . 'gfx/icon_user.png', t('Username')) . '</td>' . '</tr>'; echo '<tr><td>' . t('Password') . ':</td>' . '<td>' . xhtmlPassword('register_pwd') . ' ' . xhtmlImage($page->getRelativeCoreDevUrl() . 'gfx/icon_keys.png', t('Password')) . '</td>' . '</tr>'; echo '<tr><td>' . t('Again') . ':</td>' . '<td>' . xhtmlPassword('register_pwd2') . ' ' . xhtmlImage($page->getRelativeCoreDevUrl() . 'gfx/icon_keys.png', t('Repeat password')) . '</td>' . '</tr>'; echo '</table><br/>'; echo xhtmlSubmit('Register', 'button', 'font-weight:bold'); $x = new XhtmlComponentButton(); $x->text = t('Cancel'); $x->onClick('return show_login_form();'); //$x->style = 'font-weight:bold'; echo $x->render(); echo xhtmlFormClose(); echo '</div>';
if ($session->id) { return; } $header->embedCss('.forgot_pwd_box{' . 'font-size:14px;' . 'border:1px solid #aaa;' . 'min-width:280px;' . 'color:#000;' . 'background-color:#ddd;' . 'padding:10px;' . 'border-radius:15px 15px 15px 15px;' . '-moz-border-radius:15px 15px 15px 15px;' . '}'); echo '<div id="forgot_pwd_layer" class="forgot_pwd_box">'; echo '<b>Forgot password</b><br/><br/>'; if (isset($_POST['forgot_pwd'])) { $header->embedJsOnload('show_recover_form();'); if (!ForgotPasswordHandler::getInstance()->sendMail($_POST['forgot_pwd'])) { $error->add('The specified email address does not match any registered user.'); } else { echo 'A email has been sent to your mail address with instructions how to reclaim your account.'; echo '</div>'; return; } } echo $error->render(true); echo 'Enter the e-mail address used when registering your account.<br/><br/>'; echo 'You will recieve an e-mail with a link to follow,<br/>'; echo 'where you can set a new password.<br/><br/>'; echo xhtmlForm(); echo '<table cellpadding="2">' . '<tr>' . '<td>E-mail:</td>' . '<td>' . xhtmlInput('forgot_pwd', '', 26) . ' ' . xhtmlImage($page->getRelativeCoreDevUrl() . 'gfx/icon_mail.png', t('E-mail')) . '</td>' . '</tr>' . '</table><br/>'; echo xhtmlSubmit('Forgot password', 'button', 'font-weight: bold'); $x = new XhtmlComponentButton(); $x->text = t('Cancel'); $x->onClick('return show_login_form();'); //$x->style = 'font-weight:bold'; echo $x->render(); echo xhtmlFormClose(); echo '</div>';
function shareForumItem($itemId) { global $h; if (!$h->session->id || !is_numeric($itemId)) { return false; } if (!empty($_POST['fshare_mail'])) { if (is_email($_POST['fshare_mail'])) { $item = getForumItem($itemId); if (!empty($_POST['fshare_name'])) { $mail = "Hej " . $_POST['fshare_name'] . "!\n\n"; } else { $mail = "Hej!\n\n"; } $mail .= $h->session->username . " har skickat dig den här länken till dig från communityt\n"; $mail .= "på vår sajt, " . xhtmlGetUrl('/') . ".\n\n"; if ($item['authorId']) { $mail .= $item['itemSubject'] . ' av ' . $item['authorName'] . ', ' . formatTime($item['timeCreated']) . ":\n"; } else { $mail .= $item['itemSubject'] . ' av gäst, ' . formatTime($item['timeCreated']) . "\n"; } $mail .= "För att läsa inlägget i sin helhet, klicka på länken nedan:\n"; $mail .= xhtmlGetUrl('forum.php?id=' . $itemId . '#' . $itemId) . "\n\n"; if (!empty($_POST['fshare_comment'])) { $mail .= "\n"; $mail .= "Din kompis lämnade även följande hälsning:\n"; $mail .= $_POST['fshare_comment'] . "\n\n"; } $subject = 'Meddelande från communityt'; if (smtp_mail($_POST['fshare_mail'], $subject, $mail) == true) { echo 'Tipset ivägskickat<br/>'; } else { echo 'Problem med utskicket<br/>'; } } else { echo 'Ogiltig mailaddress!'; } return; } $data = getForumItem($itemId); echo showForumPost($data) . '<br/>'; echo xhtmlForm('forum_share', $_SERVER['PHP_SELF'] . '?id=' . $itemId); echo 'Din kompis namn: ' . xhtmlInput('fshare_name', '', 20, 30) . '<br/>'; echo t('E-mail') . ': ' . xhtmlInput('fshare_mail', '', 40, 50) . '<br/>'; echo '<br/>'; echo 'Hälsning:<br/>'; echo xhtmlTextarea('fshare_comment', '', 40, 6) . '<br/>'; echo xhtmlSubmit('Share'); echo xhtmlFormClose(); }
/** * XXX */ function openidLogin($site_url) { //FIXME php maps GET parameter with . in it to _, example: "openid.ns" => $_GET['openid_ns'], can this be disabled?? /* http://projects.localhost/openid.php ?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0 &openid.mode=id_res &openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud &openid.response_nonce=2008-11-25T13%3A07%3A28ZyUCwx4n3gmUeYw &openid.return_to=http%3A%2F%2Fprojects.localhost%2Fopenid.php &openid.assoc_handle=AOQobUctv7u8lBNS9czmmriBnnyuKsKCaO-cCSm5K3trwFcShQoTZ2xM &openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle &openid.sig=wedYQY22Kh%2FhGKSkFhlkJtk%2BQS0%3D &openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawnqet4MjcGaTLcdu5wONrN_e4sRqpd3mNc &openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawnqet4MjcGaTLcdu5wONrN_e4sRqpd3mNc */ //XXX A relying party application should be prepared to accept responses as both GETs and as POSTs. if (!empty($_GET['openid_mode'])) { if ($_GET['openid_mode'] == 'id_res') { echo "google openid succeeded!\n\n"; echo "get:\n\n"; print_r($_GET); echo "\n\npost:\n\n"; print_r($_POST); echo "claimed openid : " . $_GET['openid_claimed_id'] . "\n"; if (!empty($_GET['openid_ext1_value_email'])) { echo "email address is: " . $_GET['openid_ext1_value_email'] . "\n"; } return true; } else { echo "openid auth failed!\n\n"; return false; } } if (!empty($_POST['core_openid_url'])) { $p = parse_url($site_url); $realm = $p['scheme'] . '://' . $p['host'] . (!empty($p['port']) ? ':' . $p['port'] : ''); $params = array('openid.ns' => 'http://specs.openid.net/auth/2.0', 'openid.claimed_id' => 'http://specs.openid.net/auth/2.0/identifier_select', 'openid.identity' => 'http://specs.openid.net/auth/2.0/identifier_select', 'openid.return_to' => $site_url, 'openid.mode' => 'checkid_setup', 'openid.realm' => $realm, 'openid.ns.ext1' => 'http://openid.net/srv/ax/1.0', 'openid.ext1.mode' => 'fetch_request', 'openid.ext1.type.email' => 'http://axschema.org/contact/email', 'openid.ext1.required' => 'email'); header('Location: ' . OPENID_GOOGLE_LOGIN . '?' . http_encode_params($params)); die; } echo xhtmlForm(); echo xhtmlInput('core_openid_url', 'http://google.com') . '<br/>'; //XXX click image to select that OpenID supplier, as in http://sourceforge.net/account/login.php echo xhtmlImage('http://google.com/favicon.ico', 'Sign in with Google'); //echo xhtmlImage('http://blogger.com/favicon.ico', 'Sign in with Blogger'); //echo xhtmlImage('http://yahoo.com/favicon.ico', 'Sign in with Yahoo'); echo '<br/><br/>'; echo xhtmlSubmit('Log in'); echo xhtmlFormClose(); return false; }
<div id="top"> <div id="top-logo"></div> <div id="top-items"> <?php echo xhtmlForm(); ?> <a href="<?php echo $config['app']['web_root']; ?> wiki.php">Wiki</a> <a href="<?php echo $config['app']['web_root']; ?> new_issue.php">New issue</a> Search <?php echo xhtmlInput('search', '', 8); ?> <?php echo xhtmlFormClose(); ?> </div> </div> <div id="leftmenu"> <?php $menu = array('index.php' => 'Home'); echo xhtmlMenu($menu); if ($h->session->id) { $menu = array('x' => 'Projects', 'issues.php?show=open' => 'Issues', 'z' => 'My tasks'); echo xhtmlMenu($menu);
* This is the user manager */ //TODO: fix up row coloring with YuiDatatable namespace cd; $session->requireAdmin(); echo '<h1>Manage users</h1>'; echo 'All users: ' . ahref('a/users/', UserList::getCount()) . '<br/>'; echo 'Users online: ' . ahref('a/users/?online', UserList::onlineCount()) . '<br/>'; $filter = ''; if (!empty($_POST['usearch'])) { $filter = $_POST['usearch']; } echo '<br/>'; echo xhtmlForm('usearch_frm'); echo 'Username filter: ' . xhtmlInput('usearch'); echo xhtmlSubmit('Search'); echo xhtmlFormClose(); echo '<br/>'; if (isset($_GET['online'])) { $list = UserList::getUsersOnline($filter); echo '<h2>Showing all users online'; } else { $list = UserList::getUsers($filter); echo '<h2>Showing all users'; } if ($filter) { echo ', matching <u>' . $filter . '</u>'; } echo ' (' . count($list) . ' hits)</h2>'; $dt = new YuiDatatable();
echo '<tr><th>Name</th><th>Value</th><th>Delete</th></tr>'; //XXX use editable YuiDataTable foreach ($settings as $set) { echo '<tr>'; echo '<td>' . xhtmlInput('setting_name_' . $set['id'], $set['name']) . '</td>'; echo '<td>' . xhtmlInput('setting_val_' . $set['id'], $set['value']) . '</td>'; echo '<td><a href="' . relurl_add(array('remove_setting' => $set['name'])) . '">Remove</a></td>'; echo '</tr>'; } echo '</table>'; echo xhtmlSubmit('Save changes'); echo xhtmlFormClose() . '<br/><br/>'; echo '<h3>Add new user setting</h3>'; echo xhtmlForm('new_setting'); echo 'Name: ' . xhtmlInput('setting_name') . ' '; echo 'Value: ' . xhtmlInput('setting_val') . ' '; echo xhtmlSubmit('Add'); echo xhtmlFormClose() . '<br/><br/>'; echo '<h2>Login history</h2>'; $dt = new YuiDatatable(); $dt->addColumn('timeCreated', 'Timestamp'); $dt->addColumn('IP', 'IP'); $dt->addColumn('userAgent', 'User agent'); $dt->setSortOrder('timeCreated', 'desc'); $dt->setDataSource(LoginEntry::getHistory($user->id)); $dt->setRowsPerPage(10); echo $dt->render(); if ($session->id != $this->owner) { echo '» <a href="' . relurl_add(array('remove' => 1)) . '">Remove user</a><br/><br/>'; } /*
$session->requireSuperAdmin(); if (!$this->owner) { $this->owner = 'default'; } switch ($this->owner) { case 'default': $ip = $session->ip; // _SERVER['REMOTE_ADDR']; echo 'Your current IP is ' . $ip . '<br/>'; echo '<form method="get" action="/t/ipcheck/ip">'; echo 'Search IP: ' . xhtmlInput('ip', $ip) . '<br/><br/>'; echo xhtmlSubmit('Search'); echo '</form>'; echo '<form method="get" action="/t/ipcheck/user">'; echo 'Search by username: '******'user', $session->username) . '<br/><br/>'; echo xhtmlSubmit('Search'); echo '</form>'; break; case 'ip': // query ip info $ip = ''; if (!empty($_GET['ip'])) { $ip = $_GET['ip']; } if (!$ip) { die('meh'); } $geoip = IPv4_to_GeoIP($ip); echo '<h1>' . $ip . ' (' . gethostbyaddr($ip) . ')</h1>'; echo '<br/><br/>';
if ($port && !$error) { $fp = @fsockopen($ip, $port, $errno, $errstr, 2); if (!$fp) { echo '<div class="critical">Error: '; if ($errno == 10060) { echo $ip . ':' . $port . ' appears to be closed.<br/>'; } else { echo $errstr . ' (' . $errno . ')<br/>'; } echo '</div>'; } else { echo '<div class="okay">Success: ' . $ip . ':' . $port . ' is open!</div>'; fclose($fp); } echo '<br/>'; } echo '<div class="item">'; echo 'Your IP is ' . $_SERVER['REMOTE_ADDR'] . '<br/>'; echo 'Server IP is ' . $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT']; echo '</div><br/>'; echo '<form method="post" action="">'; echo 'IP: '; echo xhtmlInput('i', $ip) . '<br/>'; echo 'Port: '; if ($port == 0) { $port = 80; } //default port echo xhtmlInput('p', $port, 5) . '<br/>'; echo xhtmlSubmit('Test'); echo '</form>';
$username = trim($_POST['u_name']); $pwd = trim($_POST['u_pwd']); $user_id = UserHandler::create($username, $pwd); if (!$user_id) { $error->add('Failed to create user'); } if ($error->getErrorCount()) { echo $error->render(true); return; } UserSetting::setEmail($user_id, $_POST['u_email']); if (!empty($_POST['u_grp'])) { UserGroupHandler::addToGroup($user_id, $_POST['u_grp']); } echo '<div class="good">New user created. ' . ahref('a/user/' . $user_id, $username) . '</div>'; } } echo xhtmlForm('add_user'); echo '<h1>Create new user</h1>'; echo 'Username: '******'u_name') . '<br/>'; echo 'Password: '******'u_pwd') . '<br/>'; echo 'E-mail: ' . xhtmlInput('u_email') . '<br/>'; echo '<br/>'; echo 'User group: '; $x = new XhtmlComponentDropdown(); $x->name = 'u_grp'; $x->setOptions(UserGroup::getIndexedList()); echo $x->render(); echo '<br/>'; echo xhtmlSubmit('Create'); echo '</form>';