Рейтинг
0.00
голосов: 0

О блоге

В этом блоге рекомендую публиковать статьи про вёрстку, html, css. Статьи, которые посвящены тем частям сайта или приложения, которые видят пользователи.

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (3)

Maugli AndreyART a1ex

Работа с интерфейсом грид-панели при обработке событий его стора в ExtJS

В данной статье предоставляется один из способов получить управление интерфейсной частью грид-панели при обработке событий стора данного грида в рамках фреймворка ExtJS (v 4.2.2).
Конкретная задача состоит в том, чтобы получить доступ к управлению кнопкою в тулбаре грида при добавлении и удалении данных из его стора.


Читать дальше

Преобразование многомерного массива PHP в простой XML

Преобразование многомерного массива PHP в простой XML (без атрибутов), только пары ключ=>значение

Очень коротко и быстро, хочу представить Вашему вниманию, небольшой класс PHP для преобразования многомерных массивов PHP в простой (без атрибутов) XML.

Большое спасибо автору Кевину Ватерсону за сие творение, которое мы успешно используем в своём API.


Читать дальше

Метод разбиения промежутка времени по дням с фиксацией времени начала и конца дня для указанного периода времени

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

Для примера представим, что клиент в абстрактной системе отчетов устанавливает период времени с 01:00 15.12.2014 по 23:00 21.12.2014 (1 неделя), за который он желает получить информацию. Фабрика отчетов на сервере умеет отдавать данные за период не более 24 часов. Вот тут и встает задача разбить промежуток времени на отрезки, с которыми потом можно работать в фабрике, т.е. на дни. Для получения можно воспользоватся функцией getDateTimeStartStopByDays (см. ниже), которая принимает в качестве параметров начало и конец периода в формате Timestamp. А на выходе мы получаем массив дат с указанием начала и конца каждого дня. Больше деталей смотрите в реализации метода.

Конечно можно работать только с датами в формате Unixtime, но в случае необходимости получения именно отформатированного массива дней, данный метод может Вам пригодится.

Коментарии по улучшению кода (стилистики, подхода, реализации и пр.) приветствуются!


Читать дальше

Экспорт данных из таблицы ExtJS Grid в таблицу Excel

Как сделать экспорт данных из таблицы ExtJS Grid в таблицу Excel?

Данное решение экспериментальное и имеет место для небольших, одностраничных, таблиц типа xtype:'grid' с хранилищем типа xtype:'store'.

Для реализации функционала, нам понадобится:
  • Библиотека ExtJS — JavaScript фреймворк. Если вы слышите это впервые, статья не будет полезна.
  • PHP сервер весрии 5+
  • PHPExcel — библиотека для создание Excel документа. Ссылка на сайт производителя.


Grid таблица
Для примера берём простейшую таблицу с тремя колонками ID, Имя, Дата. В данном примера поля имеют тип string (текст).


Так как статья получилась длинная, читайте продолжение под катом...

Автоматическая ширина ячеек PHPExcel

Как сделать автоматический подбор по ширине ячеек в PHPExcel

К сожалению, у меня не получилось решить этот вопрос другими средствами, например настройками ячеек по умолчанию для всех. Итак, имеем то, что имеем)

Известные проблемы:
  • Не решена проблема с индексом ячеек, больше алфавита, например AA, AB. Но, учитывая, что документы с таким количеством колонок большая редкость, используем как локальное решение.
// определение максимальных размеров документа
$max_col = $sheet->getHighestColumn();
/* автоширина */
for ($col = 'A'; $col <= $max_col; $col++) {
   $sheet->getColumnDimension($col)->setAutoSize(true);
}

Буду рад, если кто предложит другое решение)

MySQL функция преобразование битовой маски в множество

MySQL функция преобразование битовой маски в множество, в данном случае, 10-тичного вида битовой маски.

Не так давно, я попытался написать подробную (с примерами, как для себя) инструкцию, применения битовой маски в MySQL запросах.
Сегодня мне пришлось немного расширить функционал своего модуля и дописать выборку из другой таблице по полю значений маски. Не буду увлекаться подробностями, скажу только, что кроме как разложить битовую маску на множество (строку) вида «1,3,7» для использование в условии:

WHERE `field` IN(1,3,7)

Для этих целей решил набросать маленькую MySQL функцию.
В качестве аргумента, функция принимает INT число — значение битовой маски (10 разряд).
Результатом работы функции будет строка вида «1,3,7», соответствующая номерам битов с значением 1.

Сама функция имеет комментарии и потому дополнительно описывать её не вижу смысла.

Читать дальше

ExtJS как передать дополнительные параметры proxy используя pagingtoolbar

Задача очень простая, есть внешний набор фильтров данных в DataGrid, который передаёт свои параметры при обращении к серверу.

Как реализовать передачу этих параметров при переключении страниц в pagingtoolbar?
Решение для ExtJS 4, на других версиях не проверялось.
Допустим, у нас есть Store
var DataStore = Ext.create('Ext.data.Store', {
      proxy: {
          type: 'ajax',
          url: '/?r=getParamResults',
          reader: {
              type: 'json',
              root: 'Data',
              totalProperty: 'totalCount'
          }
      }
  });

Нужно повесить обработчик на событие beforeload.
DataStore.on('beforeload', function () {
    DataStore.getProxy().extraParams.PARAM_NAME = 'PARAM_VALUE';
});

Где:
  • PARAM_NAME — имя дополнительного параметра.
  • PARAM_VALUE — значение дополнительного параметра

ExtJS как изменить интервал автозакрытия Tooltip (QuickTips)?

Как в ExtJS изменить интервал закрытия (автоскрытия) tooltip (QuickTips), всплывающего окна?

Задача
Есть элемент, при наведении на который всплывает окно с дополнительной информацией xtype: tooltip. Нужно сделать так, чтоб оно не закрывалось автоматически, а как известно, по умолчанию, оно автоматически закроется через 5000 мс (5 секунд).

Решение
В момент инициализации, после загрузки дерева DOM и всех скриптов, нужно выполнить установку параметров Ext.QuickTips. Для этого требуется написать следующий код:
Ext.onReady(function(
    Ext.QuickTips.init();
    Ext.apply(Ext.QuickTips.getQuickTip(), {
        dismissDelay: 0, // параметр задержки до закрытия QuickTips в миллисекундах 
        showDelay: 100   // параметр задержки до открытия QuickTips в миллисекундах.
        // в данном случае ускоряем его открытие до 100 миллисекунд
    });
));

Шпаргалка по работе с Git топик-ссылка

Очень простая по восприятию и точная статья - Шпаргалка по работе с Git. Спасибо блогу - Записки программиста!

Git репозитории в локальной сети и ошибка "fatal: Could not read from remote repository"

Намедни, настраивали Git. Сразу уточню, что пользователи работают по Win. Схема работы следующая: у пользователей есть локальный репозиторий и есть центральный репозиторий на одном из компьютеров в сети. Вроде бы все прошло нормально, но когда начали пытаться подключиться к центральному репозиторию, задав путь вида «\\192.168.0.0\и т.д.», появилась ошибка:

\\192.168.0.0\и т.д. does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Благодаря Google, решение проблемы все-таки нашлось, оказалось что Git наотрез отказывается воспринимать сетевой путь, после чего проблема решилась подключением на локальной машине сетевого диска и прописыванием пути к центральному репозиторию в виде: «X:\path».