tushov.ru

блог php-программиста, преподавателя и конcультанта

Tag: разработка

Page 2/4

WordPress, Заметки программиста

Как не заставлять пользователя создавать и удалять вручную страницы для вашего плагина WordPress?

Все кто когда либо разрабатывал плагины для WordPress требующие наличие своих адресов (URL-ов) обращений  знают о том, что в WordPress ЧПУ строятся через Постоянную ссылку страницы. Проще говоря, если вам нужно чтобы ваш плагин что-то выводил или просто отзывался по адресу http://сайт/myprofile,  вам необходимо чтобы была страница с постоянной ссылкой http://сайт/myprofile. Как правило разработчики в FAQ’ах или в readme к своим плагинам пишут что для работы плагина вам необходимо создать пустую или с определенным содержанием страницу. Как то это не серьезно получается, установил пользователь плагин, так его еще и просят страницу создать, а может и не просто создать и написать в ней какие-то магические слова по типу {CALL_MY_PLUGIN}, которые потом плагин прощупает и сработает.  Рискну предложить свой метод автоматизирующий весь этот рутинный процесс и не вешающий на плечи пользователя заботы о создании и удалении страниц для вашего плагина. Итак смотрим:

я думаю код достаточно понятен,  при активации плагина в MyPluginActivation создается страница, и записывается ее ID в параметре плагина PageID.  При деактивации плагина в MyPluginDeactivation страница с ID равным ранее сохраненному параметру PageID успешно удаляется. Пользователь при этом никак не в этом процессе не участвует. Единственное что можно было бы добавить, так это функционал проверки на существование страниц с таким же именем. Да бы к примеру своим именем my-page не перекрыть уже существующую страницу — но думаю это не сложно дописать.

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

ну вот пожалуй и все… ).

WordPress

Вывод статистики WordPress в виде счетчика =)

Данный «счетчик» отображает время генерации страницы WordPress, количество выполненных запросов к БД, объем выделенной (затраченной) оперативной памяти. Вот так может выглядеть счетчик статистики (слева счетчик, справа стандартный счетчик LiveInternet):

а теперь непосредственно сам код счетчика:

 

Joomla

MoTabs beta 1.0 — очередная реализация вывода модулей Joomla в табах

MoTabs beta 1.0 — очень простой Joomla-модуль позволяющий вывести необходимое количество модулей на «табах» (вкладках). Непосредственно сам JavaScript-механизм переключения вкладок написан без использования каких-либо JS-библиотек и скриптов, потому не будет конфликтовать с чем-либо еще на вашем сайте. Для вывода модулей на вкладках в настройках модуля MoTabs необходимо лишь указать ID модулей которые вы желаете вывести в необходимом вам порядке.

Скачать  MoTabs beta 1.0

WordPress

BAInterface — WordPress плагин реализующий front-end интерфейс для пользователей

Долго искал плагин для WordPress позволяющий скрыть админку WordPress от глаз пользователей (посетителей) блога. Вообщем хотелось чтобы пользователи могли регистрироваться прямо на страницах сайта, редактировать свой профиль, добавлять публикации (записи). Перепробовал разное количество имеющихся плагинов, некоторые оказались не полностью работоспособными или просто с отвратительной реализацией. Некоторые решали только часть задачи. Потому решил начать писать свой плагин. Плагин  BAInterface — еще достаточно сырой, но в тоже время уже может быть использован для реализации front-end части интерфейса пользователей сайта.

Итак, вот перечень текущих возможностей  плагина BAInterface:

  • реализация интерфейса входа (авторизации) через виджет-форму на сайте (только не забудьте после установки плагина вывести виджет в нужное вам место).
  • Отдельная страница формы регистрации пользователей прямо на сайте.  При регистрации пользователи указывают лишь Имя, Email и пароль.
  • Авторизация пользователей осуществляется как по Email’у так и по логину. Однако при регистрации пользователей через сайт — в качестве логина все равно пишется Email — нужно учитывать эту особенность плагина.
  • Отдельная страница Ваш профиль — позволяющая пользователям редактировать свой профиль.
  • Страница добавления публикации (записи) в блог. С функционалом уведомления и пользователя и администратора блога. С прямой ссылкой на модерацию поста в письме.
  • Ссылка на оригинальную панель администрирования для пользователей с правами выше редактора!
  • Для всех пользователей с правами ниже редактора вход через сайт/wp-admin закрыт с переадресацией на главную страницу сайта.
  • плагин сам создает прокси-страницу необходимую для его работы, скрывает ее от появлению в менюшках и прочее.

Скачать плагин BAInterface

PHP

DABackuper — автоматический бэкап по расписанию для DirectAdmin-панели

DABackuper — решение для тех кто хотел бы регулярно (по своему расписанию) и в автоматическом режиме (CRON) создавать бэкапы на сервере через доступ к DirectAdmin-панели. Итак, если на вашем хостинге есть DirectAdmin и вы хотели бы настроить автоматическое резервное копирование, то данный php-скрипт под названием DABackuper может вполне сгодиться. Скрипт я писал как раз для себя, тестировал на своем хостинге, результаты тестирования показали что все работает и теперь каждый день у меня в автоматическом режиме происходит резервное копирование. Итак, код скрипта DABackuper:

Не забудьте вписать свои данные (настройки для панели DirectAdmin). Учитывайте также что массив $post — это данные для моего хостинга, потому для настройки я бы советовал вам сначала расскомментировать строку:

и запустить скрипт в браузере, выбрать нужные опции соответствующие настройкам именно вашего хостинга и вашим предпочтениям, а дальше просто нажав на кнопку «Создать Резервную Копию» вы увидите именно ваши настройки, эти настройки необходимо будет вписать в массив $post.

Скрипт вы можете запускать как через браузер в ручном режиме, так и в автоматическом режиме настроив выполнение его в качестве CRON-задания.

Joomla, PHP

Реализация AJAX-модулей в Joomla 1.5

В Joomla 1.5.x AJAX-запросы внутри компонентов можно посылать через специальный файл index2.php — отличие которого от стандартного состоит в том что он не загружает шаблон Joomla, а только выводит содиржимое сгенерированное непосредственно компонентом. Т.е. к примеру запрос вида http://ваш_сайт/index2.php?option=com_frontpage — покажет на странице «чистый» вывод компонента com_frontpage. Такого  рода запросы очень удобны при реализации AJAX-вызовов в компонентах. Однако маршрута вызова исполнения и вывода конкретного модуля в Joomla увы не предусмотрено. На данный момент есть различные методы реализации AJAX-вызовов модулей в Joomla как правило за счет специальных плагинов или компонент обрабатывающие AJAX-запросы. На мой взгляд модуль  должен быть самодостаточным (автономным) и по возможности не требовать установки каких-либо компонент или плагинов реализующих проброс AJAX-запросов к нему. Для того чтобы не терять возможности API Jooml’ы и не городить каждый раз какой-то особый функционал для AJAX-модулей, я сделал простое решение для себя:
в своих модулях в которых используются AJAX-вызовы я просто использую сделанный мной файл ajax.php, следующего содержания:

все AJAX-запросы идут как раз таки на этот файл ajax.php, лежащий внутри папки модуля.
а уже обработкой AJAX-запросов и ответов занимается сам файл модуля. Таким образом создавая очередной модуль использующий AJAX я просто кидаю в папку с ним этот файл ajax.php и делаю что хочу внутри этого модуля.
Таким образом сохраняется автономность самого модуля, при этом вам не надо править что-то в файле ajax.php, он одинаковый для всех таких модулей — просто положите его в папку с модулем и посылайте AJAX-запросы через него!

Пример модуля реализованного по вышеописанной технологии.

Joomla

RePhocaGallery — плагин альтернативной обработки изображений для компонента Phoca Gallery

Плагин RePhocaGallery заменяет родной  функционал создания эскизов компонента Phoca Gallery на альтернативный более простой и легкий в плане требования к памяти серверу функционал. В принципе основным смыслом плагин как раз и является снижение нагрузки на сервер при обработке фотографий (создание эскизов/пиктограмм изображений). Если вы часто видите ошибку вида «Fatal error: Allowed memory size of ХХХХХХ bytes exhausted…» — то можете попробовать этот плагин для более легкой обработки фотографий на сервере. Установите и включите плагин RePhocaGallery и самое главное отключите родной механизм обработки фотографий в настройках компонента Phoca Gallery, а именно опцию «Включить создание эскизов» — надо поставить в Нет. После загрузки изображений, выделите их и нажмите кнопку Пересоздать для генерации эскизов.

Скачать плагин  RePhocaGallery

Joomla

Плагин StartPage — если нужна стартовая страница (заставка) для сайта…

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

Плагин имеет всего 3-и опции:

Не показывать стартовую страницу поисковым роботам. Cмысл данной опции я думаю и так понятен! Однако хочу заметить одну важную особенность, алгоритм определения посетителя как поискового робота  происходит через поиск стандартных поисковых ботов в переменной HTTP_USER_AGENT. Вы можете добавлять или удалять ботов в списке просто редактируя файл \plugins\system\startpage\bots.txt

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

Шаблон стартовой страницы. Собственно здесь Вы выбираете ваш шаблон который будет использован в качестве стартовой страницы (заставки) для сайта

Скачать плагин  StartPage

PHP

Исчерпывающий парсинг ссылок в тексте

Необычное название поста я думаю все же объясняет отнюдь не новую проблему парсинга ссылок в тексте. Для тех кто не знает, «парсинг ссылок» — поиск всех ссылок (HTML тегов A) в каком-либо тексте. Задача поиска ссылок может встречаться  в разных случаях, к примеру при написании плагина подобно моему ExtLinks или же может быть вы пишите свой граббер.  Проблема поиска тегов A с помощью регулярного выражения в HTML-тексте, если бы они (ссылки) были написаны с учетом всех правил (валидности записи HTML) и вовсе не была бы проблемой. Однако одинаково правильное написание HTML-кода не всегда встретишь, потому и приходится придумывать чудные регулярки. Одной из таких  регулярок я и хочу поделится с вами:

 

Joomla

Обновление SEO-плагина JSEOPlugin 1.1

Список изменений в плагине JSEOPlugin версии 1.1:

  • Исправлена ошибка при которой в META-тэг Description часто попадали JavaScript’ы
  • Добавлена корректная поддержка обработки строк в кодировке UTF-8. Внимание на сервере должны быть доступны PHP-функции mb_strlen() и mb_substr() корректно работающие с UTF-8 строками.
  • модифицирован алгоритм генерации мета-тэга keywords. Теперь в keywords не попадают предлоги и любые слова длиной менее 4-х символов!

Скачать JSEOPlugin версии 1.1

Для обновления плагина — совсем необязательно удалять стрый и устанавливать новый. Достаточно просто установить этот плагин поверх старого!

Theme by Anders Norén