О проекте

Проект 9999p.ru создан для людей, ценящих время и средства. Он поможет вам создать качественный сайт за короткий срок и очень недорого!  Суть его - в разработке сайта на основе готовых решений, которые позволяет зарабатывать другим пользователям уже давно!

Преимущества

Преимущества такой разработки очевидны:

  1. Скорость внедрения
  2. Невысокая стоимость
  3. Высокое качество
  4. Ожидаемый результат

Все включено

В стоимость разработки сайта включены все необходимые операции разработки сайта:

  • Регистрация домена
  • Регистрация хостинга
  • Дизайн сайта
  • Верстка сайта
  • Система управления сайтом
  • Наполнение сайта
  • Публикация сайта в интернете
  • Добавление в поисковые системы

Выполненные работы

Мы создали для наших клиентов

И сейчас занимаемся разаботкой новых. Заказать сайт


Строительство Расширения Joomla с Apache Ant

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

Расширение структуры


Компонент

НЕ ЗАКОНЧЕНА

Модуль

НЕ ЗАКОНЧЕНА

Плагин

НЕ ЗАКОНЧЕНА

Шаблон

НЕ ЗАКОНЧЕНА

Окружающая среда

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

SourceDir

Это абсолютный путь к установке Joomla вы тестирование на расширение

BUILDDIR

Это путь к временной папке используется для создания пакетов, может быть относительным или абсолютным путем

RELEASEDIR

Это папка, в которой положить упакованы расширений, когда сценарий вызывается с целевыми "пакет"

Нужные цели


ПРИМЕЧАНИЕ: собственность префикс в нужные цели имеет различное значение в зависимости от типа расширения, плагины он используется для определения группы плагин, и для других типов она используется, чтобы определить, является ли расширение для сайта или для администратора. Чтобы построить мишени с администратором расширение префикс к "администратор"

buildcomponent

Цель создать компонент занимает название компонента и префикс, приставка либо пуст, либо "администратор", если мы строим компонент для бэкэнд

 

<antcall target="buildcomponent">
<param name="NAME" value="com_helloworld"/>
<param name="PREFIX" value=""/>
</antcall>

buildmodule


Цель построить модуль принимает имя модуля и префикс, приставка либо пуст, либо "администратор", если мы строим модуль для бэкэнд

 

<antcall target="buildmodule">
<param name="NAME" value="module_helloworld"/>
<param name="PREFIX" value=""/>
</antcall>

buildtemplate


Цель создать шаблон принимает имя шаблона и префикс, префиксом или пусто или "администратор", если мы строим шаблон для бэкэнд

<antcall target="buildtemplate">
<param name="NAME" value="helloworld"/>
<param name="PREFIX" value=""/>
</antcall>

buildplugin

Цель создать плагин принимает имя шаблона и префикс, префикс плагина группы, к которой принадлежит плагин

 

<antcall target="buildplugin">
<param name="NAME" value="plg_helloworld"/>
<param name="PREFIX" value="system"/>
</antcall>

Сценарии


build.xml

Этот файл в проект или в расширение, независимо пользователь считает нужным, он включает в себя common.xml файл и определяет, какие расширения построить. Вы можете иметь один файл сборки на расширение или можно использовать один файл сборки построить много расширений. Тем не менее, лучше иметь один файл компоновки для каждого расширения названы расширение, поэтому строить файл HelloWorld компонент будет build_com_helloworld.xml или просто com_helloworld.xml. Это показано на загружаемые пакеты, например.

 

<?xml version="1.0" encoding="UTF-8"?>
<project name="helloworld" default="all" basedir=".">
<import file="common.xml"/>
<target name="all" depends="build,sync,package"/>
<target name="package">
<antcall target="_package">
<param name="NAME" value="com_helloworld"/>
</antcall>
</target>
<target name="build">
<antcall target="buildcomponent">
<param name="NAME" value="com_helloworld"/>
<param name="PREFIX" value=""/>
</antcall>
</target>
<target name="sync">
<antcall target="_sync">
<param name="NAME" value="com_helloworld"/>
</antcall>
</target>
</project>

common.xml

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

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

 

<?xml version="1.0" encoding="UTF-8"?>
<project>
<property environment="env"/>
<property name="source" value="${env.SOURCEDIR}"/>
<property name="release" value="${env.RELEASEDIR}"/>
<property name="builddir" value="${env.BUILDDIR}"/>
<property name="verbose" value="false"/>

<tstamp>
<format property="NOW" pattern="yyyyMMdd"/>
</tstamp>

<loadfile property="dist.revision" srcFile="./.svn/entries" failonerror="false">
<filterchain>
<headfilter lines="1" skip="3"/>
<deletecharacters chars="\n"/>
</filterchain>
</loadfile>

<condition property="version" value="${NOW}_r${dist.revision}" else="${NOW}">
<isset property="dist.revision"/>
</condition>

<target name="_clean">
<delete dir="${builddir}/${NAME}" verbose="${verbose}"/>
</target>

<target name="_sync">
<sync todir="${NAME}" includeemptydirs="true">
<fileset dir="${builddir}/${NAME}"/>
<preserveintarget>
<include name="**/.svn/**"/>
</preserveintarget>
</sync>
</target>

<target name="_package">
<zip destfile="${release}/${NAME}_${version}.zip" basedir="${NAME}" excludes=".svn"/>
</target>

<target name="buildplugin" depends="_clean">
<copy todir="${builddir}/${NAME}" overwrite="true" verbose="${verbose}" failonerror="false">
<fileset dir="${source}/plugins/${PREFIX}">
<include name="*${NAME}*"/>
</fileset>
</copy>
</target>
<target name="buildmodule" depends="_clean">
<copy todir="${builddir}/${NAME}" overwrite="true" verbose="${verbose}" failonerror="false">
<fileset dir="${source}/${PREFIX}/modules/${NAME}"/>
</copy>
<copy todir="${builddir}/${NAME}/media" overwrite="true" verbose="${verbose}" failonerror="false">
<fileset dir="${source}/media/${NAME}"/>
</copy>
<copy todir="${builddir}/${NAME}/language" overwrite="true" verbose="${verbose}" failonerror="false" flatten="true">
<fileset dir="${source}/${PREFIX}/language">
<include name="*/*${NAME}.ini" />
</fileset>
</copy>
</target>
<target name="buildtemplate" depends="_clean">
<copy todir="${builddir}/${NAME}" overwrite="true" verbose="${verbose}" failonerror="false">
<fileset dir="${source}/${PREFIX}/templates/${NAME}"/>
</copy>
</target>
<target name="buildcomponent" depends="_clean">
<mkdir dir="${builddir}/${NAME}/site"/>
<mkdir dir="${builddir}/${NAME}/admin"/>
<mkdir dir="${builddir}/${NAME}/admin/sql"/>
<mkdir dir="${builddir}/${NAME}/media"/>
<mkdir dir="${builddir}/${NAME}/language"/>
<mkdir dir="${builddir}/${NAME}/language/admin"/>
<mkdir dir="${builddir}/${NAME}/language/site"/>
<copy todir="${builddir}/${NAME}/media" overwrite="true" verbose="${verbose}" failonerror="false">
<fileset dir="${source}/media/${NAME}"/>
</copy>
<copy todir="${builddir}/${NAME}/admin" overwrite="true" verbose="${verbose}">
<fileset dir="${source}/administrator/components/${NAME}"/>
</copy>
<copy todir="${builddir}/${NAME}/language/admin" overwrite="true" verbose="${verbose}" flatten="true">
<fileset dir="${source}/administrator/language">
<exclude name="overrides/*"/>
<exclude name="pdf_fonts/*"/>
<include name="**/*${NAME}*.ini"/>
</fileset>
</copy>
<copy todir="${builddir}/${NAME}/site" overwrite="true" verbose="${verbose}">
<fileset dir="${source}/components/${NAME}"/>
</copy>
<copy todir="${builddir}/${NAME}/language/site" overwrite="true" verbose="${verbose}" flatten="true">
<fileset dir="${source}/language">
<exclude name="overrides/*"/>
<exclude name="pdf_fonts/*"/>
<include name="**/*${NAME}*.ini" />
</fileset>
</copy>
<move file="${builddir}/${NAME}/admin/${NAME}.xml" todir="${builddir}/${NAME}" verbose="${verbose}"/>
<move file="${builddir}/${NAME}/admin/uninstall.${NAME}.php" todir="${builddir}/${NAME}" verbose="${verbose}" failonerror="false"/>
<move file="${builddir}/${NAME}/admin/install.${NAME}.php" todir="${builddir}/${NAME}" verbose="${verbose}" failonerror="false"/>
<move todir="${builddir}/${NAME}/admin/sql" verbose="${verbose}">
<fileset dir="${builddir}/${NAME}/admin">
<include name="*.sql"/>
</fileset>
</move>
</target>
</project>

Пример рабочего процесса

* Испытание установки Joomla 1.5

* Местные проверки SVN вашего расширения репозиторий, содержащий расширений в структуре, как прилагаемый пример

* Выполнить "АНТ-F com_helloworld.xml пакет", который строит расширение в указанный каталог релиз

* Установите расширение на полигоне Joomla

* Используйте проекта полигона для разработки расширения и отладка его

* При внесении изменений, запустить 'муравей-F com_helloworld.xml построить синхронизации "сначала построить временное дерево в указанной папки сборки, то цель" Синхронизация "будет синхронизировать изменения между каталог для сборки и расширения каталога в хранилище

* Проверьте изменения и сделать SVN Commit

* Теперь вы можете либо пакет с расширением "пакет таргетинг", либо продолжить развитие на полигоне до нового совершить должно быть сделано