示例#1
0
 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);
 }
示例#2
0
 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');
 }
示例#3
0
 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;
}
示例#5
0
            }
            // 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>';
示例#6
0
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>';
示例#7
0
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();
}
示例#8
0
/**
 * 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;
}
示例#9
0
<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);
示例#10
0
 * 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();
示例#11
0
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 '&raquo; <a href="' . relurl_add(array('remove' => 1)) . '">Remove user</a><br/><br/>';
}
/*
示例#12
0
$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/>';
示例#13
0
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>';
示例#14
0
        $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>';