CB Авторизация

Ваш логин в:

Меню пользователя
Скачать
Статьи на сайте
 
Плагины пользователя (часть 3)
Написал Kotofeich   
14.08.2007

Генерация html-кода


HTML код может быть сгенерирован плагином в следующих случаях:
1) на экран выводится профиль (метод getDisplayTab);
2) редактирование пользователя (метод getEditTab, сохранение данных методом saveEditTab);
3) на странице регистрации (метод getDisplayRegistration, сохранение данных методом saveRegistrationTab).

Все эти методы описаны выше (в описании методов обьекта вкладки).

Доступность


Плагины должны использовать такой html-код, чтобы неполноценные люди могли видеть его результат на экране, даже через браузеры, не поддерживающие графику.

Соглашение W3C


Код, генерируемый CommunityBuilder, следует спецификации W3C и корректно отображается во всех популярных браузерах:

• Firefox 1.0.6+
• Internet Explorer 5.5 и 6.0
• Opera 8.5+
• JavaScript включен/выключен
• Картинки включены/выклчены
• CSS-стили включены/выключены

В версии 1.02RE, это реализовано для пользовательских профилей всех панелей управления сайта и в процессе регистрации и пользователя.

patTemplates


patTemplates - система шаблоннов, созданная для Joomla! 1.1 и 1.2. CommunityBuilder (появился после мамбо 4.5.0 и поэтому их поддержка снижена).

Проверка данных введенных в поля

Поля, заполненные пользователем при регистрации или редактировании данных, могут быть проверены при помощи плагинов. Для минимальной проверки введенных данных, нужно использовать php-код в плагине. Также, может быть использован javascript код.

Проверка php-кодом


Используем следующий бот пользователя:

• onAfterUserUpdate example:

$_PLUGINS->registerFunction( 'onBeforeUserUpdate', 'pluginExampleBeforeSaveUser' );
* Пример использования метода
* Метод вызывается перед сохраненим данных пользователя в БД
* @param массив содержит держит данные пользователя
* @param массив содержит CB данные пользователя
* @param булев - истина, если новый пользователь сохранен
function pluginExampleBeforeSaveUser(&$user,&$cbUser) {
global $_POST, $_PLUGINS;
// crash();
if ($_POST['username'] == $_POST['password']) {
$_PLUGINS->raiseError(0);
$_PLUGINS->_setErrorMSG("Пароль должен отличаться от имени!");
}
return true;
}


Проверка javascript-кодом:
CB API  имеет метод для вкладок, чтобы добавить JavaScript код (имейте в виду, что он может не работать - когда пользователь выключил его поддержку в браузере, - поэтому  PHP-код проверки также необходим):

/**
* Добавляет javascript-код для проверки данных
* @param string Javascript код будет работать, если вначале добавить "\t" и в конце " \n".
*/
function _addValidationJS($js)

Эта функция может быть вызвана в плагине, например, с помощью метода getEditTab.

/**
* Генерация html кода в профиле пользователя
* @param вкладка, содержащаяся вБД
* @param обьект mosUser содержит данные пользователя
* @param int 1 для фронт-енда, 2 для бек-енда
* @returns mixed : содержит html-строку, с содержимым вкладки или ложь, если есть сообщение ErrorMSG
generated
*/
function getEditTab($tab,$user,$ui) {
$params = $this->params;
$exampleText = $params->get('exampletext', 'Параметр по умолчаниюt!');
$ret = "<p>Привет ".$user->name." !</p>";
$ret .= "<p>Текстовый параметр: ".$exampleText."</p>";
$ret .= "<p>Будьте осторожныl: вводите разные имя и пароль !</p>";
$this->_addValidationJS( "\tif (me['username'].value ==
me['password'].value) {\n"
."\t errorMSG +=
\"".html_entity_decode("Пароль должен отличаться от имени!!")."\\n\"\n"
."\t
me['password'].style.background = \"red\";\n"
."\t iserror=1;\n"
."\t}\n");
// также смотри событие: 'onBeforeUserUpdate':
pluginExampleBeforeSaveUser().
return $ret;
}

И, для примера, покажем метод getDisplayRegistration:

/**
* Генерирует html код вкладки регистрации
* @param обьект вкладки, которая храниться в БД
* @param обьект mosUser содержащий данные о пользователе (здесь null)
* @param int 1 для фронтенда, 2 для бекенда
* @return mixed : либо html-код вкладки , либо ложь, если есть сообщение ErrorMSG
generated
*/
function getDisplayRegistration($tab, $user, $ui) {
$params = $this->params;
$exampleText = $params->get('exampletext', 'Значение по-умолчанию!');
$ret = "\t<tr>\n";
$ret .= "\t\t<td class='titleCell'>"."Для примера, предупреждения плагина:"."</td>\n";
$ret .= "\t\t<td class='fieldCell'>";
$ret .= "Параметр: ".$exampleText;
$ret .= "<p>Будьте осторожны : вводите разные имя и пароль!</p>";
$ret .= "</td>";
$ret .= "\t</tr>\n";
$this->_addValidationJS( "\tif (me['username'].value ==
me['password'].value) {\n"
."\t errorMSG +=
\"".html_entity_decode("Пароль должен отличаться от имени!")."\\n\"\n"
."\t
me['password'].style.background = \"red\";\n"
."\t iserror=1;\n"
."\t}\n");
// смотри: 'onBeforeUserRegistration'
return $ret;
}
 
< Пред.   След. >

 

© 2011 Русский сайт поддержки Community Builder
Все права принадлежат Sunshine studio, LLC
Партнерки
Модуль SunBlog
CB поиск пользователя

CB Online

Посетителей нет.
CB статистика
5039 зарегестрировано
0 сегодня
0 за неделю
0 за месяц
Последние: Denis85

Дружина
хостится тут

и отзывы о хостинге для Joomla от дружинников