Наверх

Советы и решения

Обрабатываем поля форм, добавляемые динамически

06 апреля 2013, 02:54


Столкнулся с небольшой проблемой: есть форма, в которой пользователь может указать несколько телефонов. Количество телефонов может быть любым, поэтому сделал динамическое добавление полей для телефона, если пользователю необходимо:

<div class="control-group">
  <label class="control-label" for="contractor_phone">Телефон</label>
  <div class="controls">
    <div class="input-append">
      <input type="text" id="contractor_phone" name="contractor_phone[]">
      <span class="btn" id="add_phone"><i class="icon icon-plus"></i></span>
      <div id="addPhones"></div>
    </div>
  </div>
</div>

<script type="text/javascript">
$("#add_phone").click(function() {
    $("#addPhones").append('<input type="text" name="contractor_phone[]">');
});
</script>
В итоге в $_POST['contractor_phone'] приходит массив телефонов.

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

Выводим объекты любого класса с помощью модифицированного getResources

06 апреля 2013, 02:37

Недавно понадобилось выводить во фронтенде список пользователей, список групп пользователей, список ролей, и к тому же списки своих собственных объектов.

Очень хотелось той же гибкости в оформлении, которую дает getResources при выводе списка ресурсов. Ну и getPage для пагинации использовать. В результате я взял getResources и слегка его переделал, чтобы он мог выводить список объектов любого класса (ему этот класс, конечно же, придется все-таки указать).

Получился сниппет getObjects Внимание: Велосипед (кошерное решение в UPD)
Читать дальше

[Перевод] Оптимизация сайта с помощью getCache или работа с пользовательскими разделами кеша

06 апреля 2013, 02:30

Перевод статьи Джейсона Коварда (opengeek) Optimization with getCache and Custom Cache Partitions

Проблема: При любом действии в админке, очищается кеш всего сайта



Одной из самых распространенных претензий к системе кеширования MODX Revolution является очистка всего кеша сайта при любом действии в админке (будь то редактирование ресурса, чанка, сниппета и пр. — даже просто при создании нового чанка). В результате скорость загрузки сайта уменьшается, так как все сниппеты, чанки и шаблоны необходимо снова обрабатывать. Многие высказываются, что они хотят очищать кеш только отредактированного ресурса. На первый взгляд это выглядит как баг, а не как фича. Кажется, что в такой продвинутой и гибкой системе, как MODX, довольно просто реализовать очистку кеша только тех элементов, которых коснулись изменения.

В этой статье я хотел бы получше объяснить, во-первых, почему так трудно реализовать такую частичную очистку кеша, а во-вторых, на примере показать альтернативный способ решения проблемы без необходимости разработки решений с нуля.
Читать дальше

Создаем свою сборку MODX REVO

06 апреля 2013, 02:24


Уже довольно давно существует скрипт от bezumkin для создания сайтов на сервере с уже установленными необходимыми пакетами.

Но иногда нужно быстренько развернуть сайт на обычном shared-хостинге. Я как-то сделал себе отдельный сайтик, где настроил нужные мне дополнения, создал файлы robots.txt и sitemap.xml, настроил дружественные URL и прочие мелочи. Соответственно, если нужно было развернуть новый сайт я брал свою заготовку, переносил ее на новое место и занимался уже созданием сайтов.

Но тут решил попробовать сделать свою заготовку еще более простой в использовании — скачал, установил и все. Не нужно менять пути, не нужно в конфиге прописывать доступ к базе и пр.
Читать дальше

Реализация админки во фронтэнде сайта на MODX Revo

06 апреля 2013, 02:01

Необходимо было сделать как можно более понятный интерфейс с минимумом лишних кнопок, настроек и прочего – только заголовок и текст.

Начал я с того, что написал сниппет addResource, который будет создавать новый ресурс с указанным заголовком и прочими параметрами
Читать дальше

Реализация пошаговой работы PHP-скрипта с помощью AJAX

06 апреля 2013, 01:36

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

Для чего это вообще нужно?


Бывает необходимо обработать скриптом какой-то очень уж большой файл, например, для импорта. Естественно, время работы скрипта увеличивается пропорционально размеру файла или количеству строк в нем.

Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.

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

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

Разрабатываем социальную сеть на MODx Revolution

06 апреля 2013, 00:22


MODx развивается стремительными темпами, и я решил попробовать сделать социальную сеть на этом замечательном движке. Ведь в нем давно уже есть возможность работать с пользователями (регистрация, авторизация и пр.), встроенный механизм сообщений пользователей, он умеет работать с изображениями и много чего еще.

Для начала давайте разберемся с пользователями, дадим им возможность писать статьи, например, или добавлять свои события.
Читать дальше

Авторизация

через сервис Loginza:

Подписка или RSS

Буду присылать новые статьи — никакого спама



Шаблоны MODX

1 2 Дальше »

Объектная
модель
MODX