Joom → Блоги

I'm ramzes_ra

Мой блог о моих достижениях и неудачах в кодинге для Joomla.

Собственно говоря, свой текстовый редактор я сделал давно. Однако, до определенного момента его использование ограничивалось лишь получением нужной справочной информации. А ведь задумка была гораздо грандиозней: автоматизация (или, по крайней мере, избавление программиста от рутины) программирования. Причем, инструмент должен оказать помощь как профессионалу, так и начинающему программисту.

interface

Дальше меня заинтересовала технология Dojo, которую я уже немного освоил. Но очень занудно порой тысячи раз набивать один и тот же код, например dojo.byId("xxxxx"); И это очень короткий код! Есть и покруче.

Одним словом, я стал развивать свой проект дальше. Последняя версия (полная) включает мануалы по расширенному php (более 150 библиотек), CSS, Smarty, Dodjo. Всего более 3500 кодов. Тестовая бесплатная программа укомплектована только справочником по php (не расширенному), и частично (для примера) несколькими файлами по dojo.

Когда встал вопрос об организации многоязычных интерфейсов, то я постарался и это реализовать в своем инструменте. Теперь в проекте можно автоматически вставлять языковые переменные в .js и .php файлы. Опция локализации проекта автоматически создает файлы с переводами, при условии, что эти языки находятся в программе. Файлы переводов могут быть как в оригинальной кодировке, так и состоять из спецсимволов HTML. Однако, файл на языке пользователя должен быть только оригинальным. В настоящее время поддерживается более 40 языков. Интерфейс программы поддерживается Ukrainian, Russian и English. Для других языков требуется сделать файл перевода. English для локализации проекта сделан путем автоперевода, лишь для примера. Поэтому его нудно переделать.

Инструкция по установке и настройке находится в файле ru.txt и en.txt (на вкладке Инструменты).

В целом программа полностью работоспособна и поддерживает развитие пользователем. Жду от вас комментарий и предложений по усовершенствованию интерфейса программы и ее функционала.

Несколько важных моментов. При первом запуске произойдет ошибка и выйдет голый интерфейс. Не нужно пугаться, просто сервер БД не успел создать нужные рабочие файлы. Второй запуск программы пройдет без проблем. Немного неудобно, однако это сэкономило 15 MB вашего трафика при закачке из сети.

Возможны конфликты при запущенном Денвере (прога не находит свою БД). Также и Денвер, при включенном Ra-Scriptoplant не находит свою БД. Как вариант, создайте в Денвере пустую БД Scriptoplant (пользователь root пароль ramzes) и в эту пустышку поместите файлы БД из программы. В этом случает обязательно нужно сначала запустить Денвер, а затем уже Scriptoplant. Впрочем, это касается только случаев модификации БД.

В будущем эти проблемы будут устранены.

Тестируйте прогу бесплатно



Вашему вниманию предлагается компонент файлового менеджера для движка Joomla. В качестве прототипа использовался компонент "eXtplorer", однако, мой компонент работает с использованием библиотеки DOJO.

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

Работа интерфейса организована на стороне клиента. Редактор файлов включает подсветку синтаксиса, и использует библиотеку editarea 0.8.2

Установить языковую переменную можно в файле data/config.php (по умолчанию - "ru").

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

При работе компонента, возможен такой вариант, когда checkbox в таблице отмечен, но при этом выдается предупреждение. Устраняется этот глюк щелчком непосредственно на поле таблицы.

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

Компонент тестировался в нескольких браузерах. Наиболее стабильная работа гарантируется при использовании Firefox 4.0 и SeaMonkey 2.2, в Opera 11 недоработан редактор с подсветкой синтаксиса. Наиболее привередливым оказался IE 8.0 (его использовать пока не советую).

При желании, компонент можно переделать в независимое приложение.

В целом компонент (и мой FileManagerStore) работает хорошо, и все проблемы упираются в editarea.

component for joomla


Бесплатно скачать компонент можно с моего сайта ra-shop.us



В определенный момент меня перестала устраивать скорость модемного соединения с сайтом. Главная страница для него оказалась довольно тяжелая, и загружается более 3-х минут. В-принципе можно и подождать, но... при запросе следующего материала, снова приходится ждать полной перезагрузки страницы. И так без конца! Примерно такие же чувства испытывают посетители с медленным соединением. При наличии широкого канала это совсем не заметно. Но тут удар по трафику! Да и нагрузка на сервер. Пришлось сделать шаблон, который устраивал бы меня по нескольким параметрам, о которых я уже сказал: возможность просмотра сайта без перезагрузок, экономия трафика и уменьшение нагрузки на сервер, плюс ко всему - простой, но изысканный дизайн. Словом - максимум удобств, при минимуме нервотрепки.

Итак, задачи поставлены, определимся со средствами и методами достижения цели. Для осуществления поставленных задач необходимо, чтобы основная работа по управлению сайтом происходила на стороне клиента. Это возможно при использовании JavaScript, и желательно технология Ajax. В сети имеется множество библиотек, как собственно Ajax, так и специнструментов, облегчающих программировать с аяксом. Я многие попробовал (Xajax, Sajax, MochiKit, AnimeJ и другие). Но мое внимание привлек инструментарий Dojo. И эту технологию я применил в качестве средства для достижения цели.

Доджо предоставляет в руки программиста большой набор методов для разработки. На стороне клиента используются методы объекта XMLHttpRequest, организованные по «доджески», перехват событий мыши и манипуляция с DOM-узлами. Серверная сторона отвечает за дифференциацию запросов объекта XMLHttpRequest, обработкой и выдачей нужной порции информации.

Стандартный файл из шаблона index.php, разделен на 3 части: index.php, выполняющий функции компаратора-маршрутизатора, init.php и post_init.php. Первый выполняет полную выдачу страницы, а второй - дозированной порции (путь навигатора и запрашиваемый контент), и ничего большего. Таким образом, вместо первоначальных, к примеру, 100 запросов, сервер получает 2, при передаче формы - 3 запроса. Мой хостингер подтвердил, что нагрузка на сервер за последние 2 месяца (когда начал использоваться новый шаблон) значительно снизилась.

Первоначально, с горяча, я хотел вообще сделать так, чтобы весь сайт можно было просматривать без перезагрузки. Но быстро опомнился: а как же контекстная реклама? Да и внешние счетчики не покажут реальную посещаемость. Поэтому сделал хитро: весь контент главной страницы (а ее аж более 70) можно просматривать без перезагрузки. Но если пользователь пожелает добавить комментарий к статье, то тут уже происходит перезагрузка страницы. Таким же образом реализован и поиск по сайту: каждая поисковая фраза (слово) происходят с перезагрузкой страницы. Но затем просматривать все статьи, найденные поисковиком можно без перезагрузки, - во всплывающем окне. есть еще несколько идей, которые собираюсь воплотить в жизнь. Таким образом, организовав более удобный просмотр контента пользователем, я тем не менее минимизировал ущемление собственных интересов.

В директории шаблона находится скомпилированная из необходимых файлов библиотека доджо, так что подключение внешней библиотеки не понадобится.

Шаблон показал свою работоспособность в IE8, Opera-11 и Firefox-4.0
С другими браузерами тестов не проводил, так как на все времени не хватает. Вот поэтому и решил выложить свой шаблон на суд общественности.

Скачать бесплатный архив шаблона можно тут. А посмотреть работу шаблона тут.



Вобщем-то, эта заметка не касается конкретно Джумлы, но... темка довольно интересная, и пригодится всем.
У меня есть сайт на Данео, так вот, я просто задолбался чистить базу данных (чтоб быстрее было) от спам-комментов от роботов. иногда до 1000 штук в день тулили.
Если кто знает Даннео, так там простейшая капча, только цифры, и не очень скракозябренные. Решил отшить непрошенных гостей с "поддельными паспортами", ведь я разрешаю писать комменты без обязательной регистрации на сайте.
Сначала решил перевернуть ввод капчи. Это легко, просто используется при проверке ввода, к примеру не $code, а strrev($code). То есть - капчу с картинки нужно обязательно вводить спрапва-налево.
Сильно не помогло. Форма добавления коммента реагирует на некорректный ввод только выдачей сообщения о неправильном вводе. Этот факт позволял роботам-спамерам путем перебора комбинаций находить нужный код.
Тогда я решил ужесточить меры пресечения. Для этого, при возврате ошибки ввода сделал просто перенаправление на другой свой сайт. Таким образом (на примере в Данео):
if(findcaptcha(REMOTE_ADDRS,$captcha)==1){@header('Location: http://ra-shop.us') ;
Скажу честно, я очень доволен своим нововведением. За 5 дней мне добавили только 4 спама, и то, скорее всего, то дело рук человеческих. Робот ведь не может в броузере щелкать на возврат к предыдущей странице. А заходы от жуков-пауков я вижу, и они не уменьшились. Только админу теперь спокойней!
Словом, этот вариант можно использовать на любых движках, где нужно вводить капчу. Переделаю и на Джумле, а то некоторые жалуются на плохую разборчивость капчи.
Можно проверить как это работает тут. Только комментировать можно  файлы для скачки.



И снова - о плагине JSEOPlugin, или DeceitlinksPlugin (что в принципе - одно и тоже). А если конкретно, то разговор пойдет о тандеме компонента для мобильного контента WAFL и DeceitlinksPlugin.


Уже есть результаты. И об этом я хочу сегодня поведать миру, или некоторой его части.


Итак, в настоящее время на моем сайте esculap.in установлен указанный компонент и плагин. преимущества такого использования очевидны6 наметилась четкая тенденция увеличения посещаемости сайта. И не из-за того, что я производил корректировки в шаблонах, вовсе нет. Просто теперь мой сайт стал легким для роботов-поисковиков, что и приносит дивиденды. и это я вижу не только из результатов собственной статистики (PIWIK), но также и в результатах Топ100 произошел скачок вверх.






Я уже пытался писать о плагине, занимающемся маскировкой прямых внешних ссылок. Однако, как показали результаты тестирования, хоть сама идея по своей сути и неплоха, существует ряд недостатков, которые сводят на смарку все преимущества плагина.

Первый минус - увеличивается время загрузки страницы. И это я заметил по снижению посещаемости сайта. Я сохранил в файл mhtml главную страницу своего сайта, и ужаснулся: аж 598 Kb! А если этот объем еще обработан плагином, то время загрузки увеличивается. К этой проблеме я отнессе довольно философски:зачем, думаю, скрывать ссылки от обычных пользователей? И переделал плагин таким образом, чтобы он включался лишь при посещении роботами.

Тут меня ожидало очередное разочарование. И когда по ссылке из Гугла я не смог открыть сраницу сайта (главную), признаюсь, не очень и удивился. Просмотрев ее в режиме html, я обнаружил, что закрывающие документ теги отсутствуют... Вероятно при загрузке страницы роботом истек лимит времени на работу скрипта, и результат - налицо!



Все не хватало времени заниматься компонентом, впрочем, и дорабатывать-то его надо при подключенном Интернете. А что говорить, если то сети нет, то денег!?

По-большому счету, о возникших проблемах можно прочесть в моей статье на сайте esculap.us. В данной публикации я не стану акцентировать внимание на продвижение проекта. Движется, - и ладно! Как дела смотрите  тут.

Очень хотелось включить в компонент комментарии, что помогло бы в дальнейшей разработке и усовершенствовании, но... Не хочу создавать БД для компонента (пока), находящегося в разработке. Думаю, что проще будет подключть модуль комментов по компоненту чисто по-Joomla-вски.



Как я погляжу, уже проявляется интерес к моему компоненту.

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

Ну да это пока нас мало интересует. Тема моей сегодняшней статьи каксается непосредственно подключения нового сервиса в компонент. В базоваой версии, которую можно скачать с сайта, Сервиса проверки обратной ссылки не было, поэтому, я решил его подключить пока вместо Сервиса проверки по многим датацентрам. В связи с этим, на сайт нужно закачать 2 файла: linkcheck.php в папку mod и linkcheck.tpl в папку templates. В файле seotools.php следует пдключить наш файл linkcheck.php, дописав строку include JPATH_COMPONENT.'/mod/linkcheck.php';

Переходим к файлу xajax.system.php.
В блоке xajax функций дописываем функцию // Проверка обратных ссылок-------------------------------------------------
function CheckLink ($formData)
{
$objResponse=new XajaxResponse();
$result =  linked(print_r( $formData['urls_from'], true ),print_r( $formData['url_to'], true ));








Собственно говоря, это только проект, на создание которого меня натолкнул компонент для DLE.

Ясно дело: ДЛЕ-шый комп нельзя включить в сайт на Джумла. Не лиха беда — начало! Все равно, если уж настроился — так и будет. Сказано — сделано!

Пришлось, однако, "покурить" кучу примеров. И знаете ли, сколько не "лазил" по сети, кроме "Здравствуй мир! " не нашел достойного примера. Уж как говорится: "Хочешь сделать хорошо — сделай сам!". Пришлось самому ваять. И  дело то ведь сдвинулось с мертвой точки. А порой и руки хотелось опустить! Да уж, создание своего компонента  — дело тонкое и требующее знание многих вэв-языков (и слэнгов).

Словом, решил я, во что бы то ни стало, сделать такой модуль (или компонент) для своего сайта. Все хорошо, только в исходном компоненте задействованы  ajax и smarty. От использования Смарта я решил пока отказаться отказался. Joomla имеет средства для создания шаблона и сама. Да и Смарт в исходнике использовался очень ограниченно. Ну а вместо ajax-а решил взять  xajax. Вот только пришлось все кодировать по-своему. И если даже в моем коде встречаются "фрагменты" якобы чьи-то, то прошу не считать это плагиатом, ибо в контексте кодинга эи кусочки имеют совсем иное использование. По-большому счету, это — мой кодинг, и разрешен к использованию в различных разработках! Так что от DLE-шки осталась, пожалуй, только идея.



ТОП Joom.Блоггеров
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries.
Site Joom.ru & Joomru LLC is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.

Скачать time factoryСкачать агент u hitМтс 635 темы скачатьСкачать игру dreamfallСкачать игру самурайСкачать winx 2 игру