tushov.ru

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

Archive

Page 4/7

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

Joomla

Обновление SEO-плагина JSEOPlugin до версии 2.1

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

  • исправлена некорректная работа плагина в следующих режимах: RSS и ATOM-форматы, PDF-просмотр материалов
  • упрощена и улучшена работа механизма деэкранизации ссылок при помощи тегов <noextlinks>
  • Исправлена ошибка работы плагина при включении опции Добавить суффикс к URL в настройках Jooml’ы
  • Добавлена параметр плагина под названием Адреса-исключений. В данном параметре можно указать адреса (или начальные части адресов) к которым не будет применяться экранирование. Каждый новый адрес (шаблон URL) необходимо указывать с новой строки, обязательно указывая префикс http:// вначале. Важно понимать что есть разница между указанием конкретного адреса и шаблона адреса, к примеру адрес вида http://example.com/ — является шаблоном исключения всех адресов начинающихся с префикса http://example.com/, т.е. адрес вида http://example.com/post/123 попадет под такое исключение. В тоже время можно указать наиболее конкретный адрес который не будет исключать все адреса у которых начальная часть URL’а повторяется.
  • исправлена ошибка попадания CSS-Style конструкций в Мета-теги
  • модифицирован алгоритм автоматической генерации Мета-тегов (keywords и description). Теперь если в случае автоматической генерации Мета-тегов будут получены пустые значения, в теги keywords и description попадут значения из общих настроек Joomla

Скачать обновленный плагин JSEOPlugin 2.1

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

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

Joomla

Новый JSEOPlugin версии 2.0 — усовершенствованный SEO-плагин для Joomla

Плагин JSEOPlugin версии 2.0 — объединил в себе два разработанных мною ранее плагинов, а именно сео-плагин  JSEOPlugin 1.х и плагин экранирования внешних ссылок ExtLinks 2.х. По мимо объединения функционала этих двух полезных плагинов, я внес некоторые значительные изменения влияющие на работу основных функций, а также добавил дополнительные функции и настройки.

Итак, основные новшества в  JSEOPlugin 2.0:

— возможность настройки индексации таких страниц компонента Материалы  (com_content) как: Блог и список раздела материалов, Блог и список Категории материалов, Архив материалов. Таким образом появились новые опции: «Запретить индексацию страниц Блога и Списка раздела материалов«, «Запретить индексацию страниц Блога и Списка категории материалов«, «Запретить индексацию страниц Архива материалов«. Важно правильно понимать назначение этих опции. При включении этих опций на страницах соответствующих шаблонов (раздел, категория, архив) мета-тэгу robots присваивается значение: noindex, follow. Данное значение тега запрещает индексирование страницы, но не запрещает проход робота поисковой системы по ссылкам! Как правило данные опции очень удобны, ведь для нормальных обновляемых ресурсов страницы разделов, категорий и архива на которых постоянно обновляется контент совсем не зачем отдавать на индексацию поисковой системе, которая при каждом посещении сайта будет их постоянно переиндексировать!

— значительно переработан механизм поиска ссылок на странице, за счет чего достигнут практически универсальный механизм поиска ссылок в контенте в независимости от их написания (пробелы в ссылках, отступы, не валидная верстка и т.д.)

— добавлена опция под названием Максимальная длина алиаса (кол-во символов) позволяющая ограничить длину создаваемых (генерируемых) алиасов для различных объектов в админке!

— добавлена опция Экранирование ссылок позволяющая выбрать из доступных вариантов режим работы механизма экранирования ссылок:
Отключено — экранирование ссылок отключено!
Только в материалах — экранированние ссылок только в материалах (статьях)
На всей странице (материалы, модули, шаблон и т.д.) — полномасштабное экранирование всех внешних ссылок встречаемых парсером на странице

Скачать плагин  JSEOPlugin версии 2.0

Внимание! Если у вас установлены плагины JSEOPlugin версии 1.х и ExtLinks. Перед установкой JSEOPlugin 2.0 желательно их удалить во избежании различного рода программных конфликтов и проблем.

Так же не забывайте для отмены экранирования ссылок любого участка контента, просто заключите этот контент в теги <noextlinks> </noextlinks>. Особо важно для тех у кого на сайте работает вывод SAPE-ссылок и подобное…

Theme by Anders Norén