Я отобразит небольшую витрину моих навыков здесь, а также ссылку на мой StackOverflow профиль. Ищу работу в небольшой PHP, JQuery, или CSS / HTML, так что я могу начать работать на погашение инвесторов, которые получили на себе основную тяжесть упадка OpenEx. Я чувствую себя очень ответственным за это. Если вы готовы на все, чтобы дать мне выстрел, даже на экспериментальной основе я буду работать очень трудно для вас и или вашей компании.
Я вырос знаком с двумя наборами передних рамок Конечным:
Bootstrap и комплект чернил Интерфейс (http://ink.sapo.pt)
мой StackOverflow профиль
http://stackoverflow.com/users/2401804/r3wt
живой демо OpenEx текущей версии
https://openex.info
Вот несколько фрагментов кода и / или живые примеры сайтов, я активно развивается.
Аякса Профиль Фото и профиля Обновление информации. (JQuery, PHP, чернила комплект UI)
JQuery
Код:
// поля профиля образуют
$ ( '# Профиль вверх'). Представить (функция () {
вар QueryString = $ (это) .formSerialize ();
$ .post ( './ Аякса / частный /? Сделать = profileupdate', QueryString, функция (данные) {
вар д = JSON.parse (данные);
для (вар я = 0; я < D.Length; я ++)
{
если (d [I] .type == 'Успех')
{
$ ( '#' + D [I] .message + '') вал (д [I] .update).
уведомить ( 'Ваш '+ d [I] .message +' был успешно обновлен', 'ложь');
}
если (d [I] .type == 'ошибки')
{
уведомить (d [I] .message, 'истина');
}
}
});
вернуться ложным;
});
// форма изображения
$ ("# Изображение вверх") .submit (функция () {
$ ( '# Загрузки') шоу ().
$ ( '# Перекрытие) шоу ().
$ .ajax ({
URL: "./upload.php",
тип: "ПОСЛЕ",
данные: новый FormData (это),
CONTENTTYPE: ложь,
Кэш: ложь,
ProcessData: ложь,
успех: функция (данные) {
вар д = JSON.parse (данные);
console.log (д);
для (вар я = 0; я < D.Length; я ++)
{
если (d [I] .type == 'ошибки')
{
уведомить (г [я] .message,"правда");
}
если (d [I] .type == 'Успех')
{
уведомить (г [я] .message,"правда");
$ ( '# Профиль-ПИК') .attr ( 'ЦСИ', 'HTTP: //website.com/uploads/'+d [я] .update +' ');
}
}
},
Ошибка: функция () {
}
});
$ ( '# Перекрытие) скрыть ().
$ ( '# Загрузки') скрыть ().
вернуться ложным;
});
// тесты предварительно файлов для загрузки с использованием html5 файла апи.
функционировать beforeSubmit () {
если (window.File && window.FileReader && window.FileList && window.Blob)
{
если (! $ ( '# изображения вход'). Вал ())
{
поставить в известность("Пожалуйста, выберите файл для продолжения", «Истина»); // уведомит это просто функция обертки для jGrowl.
вернуться ложным;
}
вар FSIZE = $ ( '# изображения входного сигнала') [0] .files [0] .size; // получить размер файла
вар Ftype = $ ( '# изображения входного сигнала') [0] .files [0] .type; // получить тип файла
Переключатель (Ftype)
{
случай 'изображение / PNG': случай 'изображение / GIF': случай 'изображение / JPEG':
ломать;
по умолчанию:
поставить в известность("Неподдерживаемый тип файла",'правда');
вернуться ложным;
}
вар = мегабайт 1048576;
если (FSIZE> мегабайт)
{
поставить в известность("Изображение слишком велико. Максимальный размер загружаемого файла составляет 1 Мб.","правда");
вернуться ложным;
}
} Еще {
// браузер не поддерживает html5 API, но нам нужно, чтобы загрузить изображение. мы проверить размер файла и тип ServerSide.
вернуться вернуться верно;
}
возвращает истину;
}
$ ( '# Профиль вверх'). Представить (функция () {
вар QueryString = $ (это) .formSerialize ();
$ .post ( './ Аякса / частный /? Сделать = profileupdate', QueryString, функция (данные) {
вар д = JSON.parse (данные);
для (вар я = 0; я < D.Length; я ++)
{
если (d [I] .type == 'Успех')
{
$ ( '#' + D [I] .message + '') вал (д [I] .update).
уведомить ( 'Ваш '+ d [I] .message +' был успешно обновлен', 'ложь');
}
если (d [I] .type == 'ошибки')
{
уведомить (d [I] .message, 'истина');
}
}
});
вернуться ложным;
});
// форма изображения
$ ("# Изображение вверх") .submit (функция () {
$ ( '# Загрузки') шоу ().
$ ( '# Перекрытие) шоу ().
$ .ajax ({
URL: "./upload.php",
тип: "ПОСЛЕ",
данные: новый FormData (это),
CONTENTTYPE: ложь,
Кэш: ложь,
ProcessData: ложь,
успех: функция (данные) {
вар д = JSON.parse (данные);
console.log (д);
для (вар я = 0; я < D.Length; я ++)
{
если (d [I] .type == 'ошибки')
{
уведомить (г [я] .message,"правда");
}
если (d [I] .type == 'Успех')
{
уведомить (г [я] .message,"правда");
$ ( '# Профиль-ПИК') .attr ( 'ЦСИ', 'HTTP: //website.com/uploads/'+d [я] .update +' ');
}
}
},
Ошибка: функция () {
}
});
$ ( '# Перекрытие) скрыть ().
$ ( '# Загрузки') скрыть ().
вернуться ложным;
});
// тесты предварительно файлов для загрузки с использованием html5 файла апи.
функционировать beforeSubmit () {
если (window.File && window.FileReader && window.FileList && window.Blob)
{
если (! $ ( '# изображения вход'). Вал ())
{
поставить в известность("Пожалуйста, выберите файл для продолжения", «Истина»); // уведомит это просто функция обертки для jGrowl.
вернуться ложным;
}
вар FSIZE = $ ( '# изображения входного сигнала') [0] .files [0] .size; // получить размер файла
вар Ftype = $ ( '# изображения входного сигнала') [0] .files [0] .type; // получить тип файла
Переключатель (Ftype)
{
случай 'изображение / PNG': случай 'изображение / GIF': случай 'изображение / JPEG':
ломать;
по умолчанию:
поставить в известность("Неподдерживаемый тип файла",'правда');
вернуться ложным;
}
вар = мегабайт 1048576;
если (FSIZE> мегабайт)
{
поставить в известность("Изображение слишком велико. Максимальный размер загружаемого файла составляет 1 Мб.","правда");
вернуться ложным;
}
} Еще {
// браузер не поддерживает html5 API, но нам нужно, чтобы загрузить изображение. мы проверить размер файла и тип ServerSide.
вернуться вернуться верно;
}
возвращает истину;
}
HTML (комплект пользовательского интерфейса чернил), оказываемый от функции зрения PHP
Код:
Функция profileView ($ профиль)
{
глобальный $ loggedInUser, $ CFG;
@ $ Паба = безопасность ($ _ GET [ 'паб-вид']) или нуль;
если (! profileExists ($ профиль))
{
jumpTo ( '? / ошибка / т = 418', 0); умереть;
} Еще {
если ($ loggedInUser->profile_id == $ профиль && $ Паб == NULL)
{
эхо
'
<центр>
». $ loggedInUser->имя пользователя. Профиль '\' s h3>
{
глобальный $ loggedInUser, $ CFG;
@ $ Паба = безопасность ($ _ GET [ 'паб-вид']) или нуль;
если (! profileExists ($ профиль))
{
jumpTo ( '? / ошибка / т = 418', 0); умереть;
} Еще {
если ($ loggedInUser->profile_id == $ профиль && $ Паб == NULL)
{
эхо
'
<центр>
». $ loggedInUser->имя пользователя. Профиль '\' s h3>
центр>
<час>
<Форма действие ="" имя ="Профиль деятельности" ID ="Профиль деятельности" класс ="чернила-форма все-50 малый 100 крошечного-100">
<центр>
<Кнопка класса ="чернила кнопка фа фа-зубчатый"> кнопка>
<уль ID ="проф-варианты" класс ="выпадающее меню прятки все">
<Ли класс ="заголовок">настройки li>
<Ли класс ="Сепаратор-выше">Конфиденциальность а> li>
<литий>Изменить пароль а> li>
<литий>Настройки канала а> li>
<Ли класс ="Сепаратор-выше отключена">... а> li>
мкл>
дел>
<скрипт>
новый Dropdown (\ '# Prof-выпадающий \');
скрипт>
Ваша Настройка профиля
h5>центр>
<Форма действие ="" имя ="Профиль деятельности" ID ="Профиль деятельности" класс ="чернила-форма все-50 малый 100 крошечного-100">
<центр>
<Кнопка класса ="чернила кнопка фа фа-зубчатый"> кнопка>
<уль ID ="проф-варианты" класс ="выпадающее меню прятки все">
<Ли класс ="заголовок">настройки li>
<Ли класс ="Сепаратор-выше">Конфиденциальность а> li>
<литий>Изменить пароль а> li>
<литий>Настройки канала а> li>
<Ли класс ="Сепаратор-выше отключена">... а> li>
мкл>
дел>
<скрипт>
новый Dropdown (\ '# Prof-выпадающий \');
скрипт>
Ваша Настройка профиля
h5>центр>
<Кнопка класса ="чернила кнопка фа фа-зубчатый"> кнопка>
<уль ID ="проф-варианты" класс ="выпадающее меню прятки все">
<Ли класс ="заголовок">настройки li>
<Ли класс ="Сепаратор-выше">Конфиденциальность а> li>
<литий>Изменить пароль а> li>
<литий>Настройки канала а> li>
<Ли класс ="Сепаратор-выше отключена">... а> li>
мкл>
дел>
<скрипт>
новый Dropdown (\ '# Prof-выпадающий \');
скрипт>
Ваша Настройка профиля
h5>центр>