Часто на сайте требуется автоматическое определение языка пользователя, в одном из проектов потребовалось решить эту задачу. Как всегда на ум пришло самое быстрое решение, определить язык с помощью константы HTTP_ACCEPT_LANGUAGE одного из суперглобальных массивов, она содержит в себе строку типа “en-US,en;q=0.8″. Это значение берётся из заголовков запроса страницы. Браузер отправляет соответсвующий заголовок исходя из собственных языковых настроек и не учитывает локаль ОС (если хотите протестировать решение, достаточно поменять языковые предпочтения браузера)

PHP

Этот код просто определяет, присутствует ли запись о языке в заголовке запроса и если да, то скрипт перенаправляет пользователя в соответствующий раздел сайта. Англоязычные пользователи будут перекинуты на http://site.com/en

Переменная $lang извлекает значение константы HTTP_ACCEPT_LANGUAGE. Тут мы используем функцию substr с тремя параметрами для того, чтобы извлечь нужный нам язык.
читать далее »

Оптимизация кода js. Таймеры.

07/22/2010, автор dimaz, категории Web-разработка

Просматривая написанный код всегда можно найти место, где можно его оптимизировать. Нашел у себя код на js, который выполнял поиск по базе.
Код был примерно таким.

<input onkeyup="search()" id="search">

Как видно функция срабатывает при отпускании клавиши. Что не совсем правильно, т.к. например если ввели 5 символов в поле, то в базу пойдет 5 запросов, а достаточен всего лишь 1, который выполнится с задержкой после ввода. Это можно устроить, путем введения таймера.

В ява скрипт есть функции для работы с ними.
var timeout_id = window.setTimeout(func|code, delay); — создает единичный таймер, при срабатывании которого происходит вызов определенной функции после указанной задержки (в миллисекундах).
var interval_id = window.setInterval(func|code, delay); — похож на предыдущий setTimeout, но вызывает функцию постоянно (каждый раз с заданной задержкой), пока не будет отменен.
clearInterval(timeout_id);, clearTimeout(interval_id); — принимают в качестве параметр ID таймера.
читать далее »

Знаю что есть специальные библиотеки для jquery для асинхронной загрузки файлов, но все же решился написать статью на эту тему. В методе про который сейчас расскажу будет использован только чистый javascript. Сама же загрузка файла будет происходить через iframe.
Вам понадобится сама html страница на который должна быть такая форма 

<form id="my_form" method="post" action="" enctype="multipart/form-data" onsubmit="file_send()">
	<input type="file" name="file" />;
	<input type="submit" value="отправить"/>
</form>

Далее рассмотрим работу js скрипта выполняющего всю работу по ajax загрузке файла  читать далее »

Смена картинок на jquery

07/13/2010, автор admin, категории Web-разработка

Достаточно часто видел такое же бесконечное слайдшоу выполненное на flash, а я решил найти простое решение, с возможностью изменения картинок с админки сайта.
Для того чтобы сделать такого рода смену картинок на javascript c использованием jquery потребуется совсем не много знаний. И это займет не более 15 минут. В <div> в котором будут менятся изображения вставим два тега <img>, как это сделано ниже <div id="photos"><img style="position: absolute; z-index: 200; display: block;" src="" alt="" id="photo1"><img style="position: absolute; z-index: 100; display: none;" src="" alt="" id="photo2"></div> Далее тут же или при загрузке страницы указываем массив картинок (я формировал его с помощью php для возможности смены через админку) читать далее »

Все php функции в javascript

02/09/2010, автор admin, категории Web-разработка

Очень часто при написании javascript для сайтов возникает потребность чтоб в вашем скрипте было нечто подобное функциям php например explode, trim, json_encode, json_decode… вобщем список можно продолжать до бесконечности. И вот сегодня совершенно случайно наткнулся на сайт phpjs.org где лежат готовые решения реализации всех этих функций (когда то искал их специально не одного документированного решения не нашел). Ну я конечно же сразу добавил этот сайт в закладки и выкачал скрипты одним файлом (это они тоже предоставляют, огромное им спасибо)
Ну собственно скачать, просмотреть эти скрипты вы сможете и без моей помощи.