← All posts tagged PHP

Willi

*freelance жуйк, ищу работу(временную или постоянную). идеал — php+sql. php5(ООП), sql любой сложности(вложенные запросы, триггеры, виртуальные таблицы). кто что может посоветовать?

Willi

жуйк, на сколько тянет такая работа?
Необходимо провести полноценную модернизацию системы личных сообщений.
На данный момент она настолько примитивна, что требует почти полной переделки или множественной доделки.

1. В личных сообщениях у каждого письма надо добавить чекбоксы, для возможности выбора и дальнейших действий с выбранными письмами. А так же нужно добавить список действий и кнопку — Выполнить.

2. Необходимо добавить возможность удаления письма. На данный момент удаление невозможно, по причине того, что когда удаляется письмо у отправителя,
тогда удаляется письмо и у получателя. Равно как и наоборот. (Добавляем действие — Удалить)
2.1. Необходимо добавить кнопку удаления письма на странице содержания.
2.2. Вхожу в письмо, прочитал... Вверху кнопка "Удалить" — клик и меня выбрасывает на СЛЕДУЮЩЕЕ ПИСЬМО (по дате).

3. Из основных папок оставляем только — Входящие, Непрочитанные, Отправленные, Удалённые, Черновики.
3.1. Удалённые — туда улетают письма, которые юзер удаляет. Рядом с папкой есть иконка — Очистить папку.
3.2. Черновики — туда улетают письма, которые юзер не закончил писать, то есть не нажал на кнопку отправить.
3.3. Обязательно выводить предупреждение, при попытке перейти из неотправленного письма — "Вы уверены, что хотите выйти из письма ? Все данные будут утеряны. Сохранить письмо в Черновики ?"

4. Необходимо добавить возможность создания папок. Над папками повесть большой "+" — Создать папку.
4.1. Добавляем действие с письмами — "Переместить в..."

5. В письма надо добавить наш редактор, со всеми его текущими возможностями редактирования текста и вставки элементов сайта.

6. Таблица просмотра писем. Столбец заголовка письма сделать уже. "Отправитель", "Получатель" и "Получено" сделать шире. Чтобы во всех ячейках была ОДНА строчка, без переносов! Там где не помещается Ник троеточие — главное видеть начало ника (в 10 символов будет с головой достаточно). Тоже самое и во всех ячейках.

7. Добавить действия с письмами — Отметить как прочитанные, Отметить как непрочитанные.

8. В самом окне письма сделать переходы на "Следующее — предыдущее", выпадающий список "Переместить в ... (черновики, папки)" (после чего выкидывает вновь в папку "ВХОДЯЩИЕ")

9. Убрать Поиск по сайту с окна Лички. А вместо него поставить поиск по письмам. И продумать возможность фильтра, отбора писем от конкретного адресата.
Поиск по письмам пусть работает по Внутрянке писем — а отбор по пользователю — по самим адресатам.

10. Все должно работать на аяксе, переходы по папкам, действия с письмами.

11. Добавить возможность перетаскивания писем в папки способом драг эн дроп.

Willi
PHP

оказывается, если запихнуть в php скрипт генерацию картинки, то его можно вызывать напрямую через тег img :
<img src="/functions/show.php">
вот только зачем таким методом раскрывать структуру сайта?и какие у этого метода плюсы относительно обычного require_once?

Willi

настроил на хостинге почту, т.е.создал нужные адреса и создал "доверитльный отправитель",т.е.с которого по идее должна почта пересылаться. но при работе функции mail(); письмо отправляется всё-равно со стандартного адреса, созданного по-умолчанию и который невозможно удалить. в саппорте написали, что я сделал всё правильно, осталось "прописать этот адрес программно в скрипте". Где и как его прописывать?

Willi
PHP

Определение положения по ip при помощи сервиса hostip.info
Возвращает ассоциативный массив с именами элементов:
['country']
['city']
['countryCode']
Пример вызова:
$location = getCountryByIp('195.104.141.125');

//<function body>
<?php
function get_country($ip){
$ip_detail = array();
$file = file_get_contents("http://api.hostip.info/?ip=".$ip);
//Get the name of the city
preg_match("@<Hostip>(\s)<gml:name>(.?)</gml:name>@si", $file, $city);
$ip_detail['city'] = $city[2];
//Obtain the name of the country
preg_match("@<countryName>(.*?)</countryName>@si", $file, $country);
$ip_detail['country'] = $country[1];
//Obtain the country code
preg_match("@<countryAbbrev>(.*?)</countryAbbrev>@si", $file, $country_code);
$ip_detail['countryCode'] = $country_code[1];
return $ip_detail;
}
?>
//</function body>