This repository has been archived by the owner on Aug 13, 2022. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
821 changed files
with
83,319 additions
and
27,781 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1 @@ | ||
# / | ||
.git_externals | ||
nbproject | ||
nbproject.tar.gz | ||
./.project | ||
./.settings | ||
./.buildpath | ||
content.git | ||
vendor/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
pipeline { | ||
agent any | ||
|
||
options { | ||
buildDiscarder(logRotator(numToKeepStr: '5')) | ||
} | ||
|
||
stages { | ||
stage('Prepare') { | ||
steps { | ||
sh 'rm -rf build/api && mkdir build/api' | ||
sh 'rm -rf build/coverage && mkdir build/coverage' | ||
sh 'rm -rf build/logs && mkdir build/logs' | ||
sh 'rm -rf build/pdepend && mkdir build/pdepend' | ||
sh 'rm -rf build/phpdox && mkdir build/phpdox' | ||
} | ||
} | ||
stage('Composer Install') { | ||
steps { | ||
sh 'cd build && wget -nc "http://getcomposer.org/composer.phar" && cd ..' | ||
sh 'chmod +x build/composer.phar' | ||
sh 'build/composer.phar install' | ||
} | ||
} | ||
stage('PHP Syntax check') { | ||
steps { | ||
sh 'vendor/bin/parallel-lint --exclude vendor/ .' | ||
} | ||
} | ||
stage('Test') { | ||
steps { | ||
sh 'vendor/bin/phpunit -c phpunit.xml || exit 0' | ||
xunit( | ||
testTimeMargin: '3000', | ||
thresholdMode: 1, | ||
thresholds: [failed(unstableThreshold: '1'), skipped()], | ||
tools: [ | ||
PHPUnit( | ||
deleteOutputFiles: true, | ||
failIfNotNew: true, | ||
pattern: 'build/logs/junit.xml', | ||
skipNoTestFiles: false, | ||
stopProcessingIfError: true | ||
) | ||
] | ||
) | ||
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: 'build/coverage', reportFiles: 'index.html', reportName: 'Coverage Report', reportTitles: '']) | ||
step([$class: 'CloverPublisher', cloverReportDir: 'build/coverage', cloverReportFileName: 'build/logs/clover.xml']) | ||
/* BROKEN step([$class: 'hudson.plugins.crap4j.Crap4JPublisher', reportPattern: 'build/logs/crap4j.xml', healthThreshold: '10']) */ | ||
} | ||
} | ||
stage('Checkstyle') { | ||
steps { | ||
sh 'vendor/bin/phpcs --report=checkstyle --report-file=`pwd`/build/logs/checkstyle.xml --standard=PSR2 --extensions=php --ignore=autoload.php --ignore=vendor/ . || exit 0' | ||
checkstyle pattern: 'build/logs/checkstyle.xml' | ||
} | ||
} | ||
stage('Lines of Code') { | ||
steps { | ||
sh 'vendor/bin/phploc --count-tests --exclude vendor/ --log-csv build/logs/phploc.csv --log-xml build/logs/phploc.xml .' | ||
} | ||
} | ||
stage('Copy paste detection') { | ||
steps { | ||
sh 'vendor/bin/phpcpd --log-pmd build/logs/pmd-cpd.xml --exclude vendor . || exit 0' | ||
dry canRunOnFailed: true, pattern: 'build/logs/pmd-cpd.xml' | ||
} | ||
} | ||
stage('Mess detection') { | ||
steps { | ||
sh 'vendor/bin/phpmd . xml build/phpmd.xml --reportfile build/logs/pmd.xml --exclude vendor/ || exit 0' | ||
pmd canRunOnFailed: true, pattern: 'build/logs/pmd.xml' | ||
} | ||
} | ||
stage('Software metrics') { | ||
steps { | ||
sh 'vendor/bin/pdepend --jdepend-xml=build/logs/jdepend.xml --jdepend-chart=build/pdepend/dependencies.svg --overview-pyramid=build/pdepend/overview-pyramid.svg --ignore=vendor .' | ||
} | ||
} | ||
stage('Generate documentation') { | ||
steps { | ||
sh 'vendor/bin/phpdox -f build/phpdox.xml' | ||
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: 'build/api', reportFiles: 'index.html', reportName: 'API Documentation', reportTitles: '']) | ||
} | ||
} | ||
stage('Create release packages') { | ||
steps { | ||
sh 'rm -rf release && mkdir release' | ||
sh 'rm -rf releaseWork && mkdir releaseWork' | ||
|
||
sh 'cp -R src/* releaseWork' | ||
sh 'cd releaseWork/modules/Zikula/ContentModule && ../../../../build/composer.phar install --no-dev --optimize-autoloader && cd ../../../../' | ||
sh 'cp -R releaseWork/app/Resources/ZikulaContentModule/* releaseWork/modules/Zikula/ContentModule/Resources/' | ||
sh 'rm -rf releaseWork/app' | ||
|
||
|
||
sh 'cd releaseWork && zip -D -r ../release/Content.zip . && cd ..' | ||
sh 'cd releaseWork && tar cfvz ../release/Content.tar.gz . && cd ..' | ||
|
||
archiveArtifacts([ | ||
artifacts: 'release/**', | ||
fingerprint: true, | ||
onlyIfSuccessful: true | ||
]) | ||
} | ||
} | ||
} | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
# Content module for the Zikula Application Framework | ||
|
||
![Build Status](http://guite.info:8080/buildStatus/icon?job=Applications_Content/5.0.0) | ||
|
||
|
||
## Documentation | ||
|
||
1. [Introduction](#introduction) | ||
2. [Requirements](#requirements) | ||
3. [Installation](#installation) | ||
4. [Upgrading](#upgrading) | ||
5. [Integration with menu module](#menumodule) | ||
6. [Implementing custom content types](#contenttypes) | ||
7. [Changelog](#changelog) | ||
8. [TODO](#todo) | ||
9. [Questions, bugs and contributing](#contributing) | ||
|
||
|
||
<a name="introduction" /> | ||
|
||
## Introduction | ||
|
||
Content is a hierarchical page editing module for Zikula. With it you can insert and edit various content items, such as HTML texts, videos, maps and much more. Also content of other modules and blocks can be shown inside a Content page. | ||
|
||
Each page can arrange arbitrary content elements using Bootstrap grids. | ||
|
||
It also features additional functionality, like translating content and tracking changes between different versions. | ||
|
||
|
||
<a name="requirements" /> | ||
|
||
## Requirements | ||
|
||
This module is intended for being used with Zikula 2.0.10+. | ||
|
||
|
||
<a name="installation" /> | ||
|
||
## Installation | ||
|
||
The Content module is installed like this: | ||
|
||
|
||
1. Copy the content of `modules/` into the `modules/` directory of your Zikula installation. Afterwards you should a folder named `modules/Zikula/ContentModule/`. | ||
2. Copy the content of _app/Resources/_ into the _/app/Resources_ folder of your Zikula site. | ||
3. Initialize and activate ZikulaContentModule in the extensions administration. | ||
|
||
|
||
<a name="upgrading" /> | ||
|
||
## Upgrading | ||
|
||
An upgrade possibility from earlier versions to 5.0.0 has not been implemented yet. | ||
|
||
|
||
<a name="menumodule" /> | ||
|
||
## Integration with menu module | ||
|
||
Content offers a dedicated menu block. But it can also be combined with menus from the menu module which is provided by Zikula core. You can add nodes with a placeholder title like `ContentPages_123` whereby `123` is the ID of a certain page. When displaying the menu this placeholder will be replaced by the corresponding pages sub tree. Note that only those pages are shown which are currently active, have the "in menu" flag enabled and visible to the current user. | ||
|
||
|
||
<a name="contenttypes" /> | ||
|
||
## Implementing custom content types | ||
|
||
In content each page consists of several content items. Each content item uses a certain content type. Interestingly, other modules can provide additional content types, so for example a calendar module can offer a content type for displaying a list of events for a specific category or the details of a single event. For each content type a corresponding class needs to be implemented which cares about displaying, editing and translating the managed data. | ||
|
||
- A content type class names should be suffixed by `Type` and located in the `ModuleRoot/ContentType/` directory. This is not mandatory but a recommended convention. | ||
- Content type classes must be registered as a service using the `zikula.content_type` tag. | ||
- Content type classes must implement `Zikula\Common\Content\ContentTypeInterface`. | ||
- Content type classes may extend `Zikula\Common\Content\AbstractContentType` for convenience. | ||
- Content type classes must define a Symfony form type class to allow editing of their data fields if this is needed. This form type class should extend `Zikula\Common\Content\AbstractContentFormType` for convenience. | ||
Otherwise the `getEditFormClass` method must return `null`. | ||
- The convention for template files of a content type with name `foo` is as follows: | ||
- Display: `@AcmeFooModule/ContentType/FooView.html.twig` | ||
- Edit subform: `@AcmeFooModule/ContentType/FooEdit.html.twig` | ||
- In the edit sub form template, **do not** render the `form_start(form)` or `form_end(form)` tags. | ||
|
||
|
||
<a name="changelog" /> | ||
|
||
## Changelog | ||
|
||
### Version 5.0.0 | ||
|
||
Structural changes: | ||
- Entirely rewritten for Zikula 2.0.x using ModuleStudio. | ||
|
||
New features: | ||
- New UI for managing and arranging content elements more quickly and easily. | ||
- Replaced old page layout types by a new concept for dynamic page layouts. | ||
- A tree slug handler is utilised for creating hierarchical permalinks/URLs. | ||
- Publication of content types can be restricted using start and/or end dates. | ||
- Publication of content types can be restricted to specific user groups. | ||
- Content types are now collected based on Symfony container using service tags. | ||
- Content types are grouped into different categories. | ||
- Content elements can be moved and copied to other pages. | ||
- Provides plugins for Scribite editors (CKEditor, Quill, Sommernote, TinyMCE). | ||
- Hooks can not only be attached to complete pages, but also to single content items. | ||
- Beside UI hooks and filter hooks also form aware hooks are supported. | ||
- The ModuleFunc content type has been renamed to Controller since it now supports not only modules, but all types of Symfony bundles. | ||
- Google map and route content types support different map types instead of roadmaps only. | ||
- OpenStreetMap content type has been replaced by a much more powerful Leaflet content type. | ||
- Slideshare and vimeo content types fetch additional data from the corresponding APIs. | ||
- Menu block has new options for different navigation types and sub pages handling. | ||
- All blocks showing lists of pages have included detection of currently active page. | ||
- Added owner permission support to allow non-admin users to manage their own pages. | ||
- Custom (and multiple) CSS classes can now be used for pages, page sections and single content elements. | ||
- Permalink settings for removing unwanted URL parts. | ||
- Added no cookie option for YouTube videos. | ||
- Overhauled translation workflow. | ||
- Optional translation support powered by [Yandex.Translate](https://translate.yandex.com/). | ||
- Content items can store additional search texts which is not shown anywhere but only used for searching. | ||
|
||
Deprecations: | ||
- Removed the ability to register a page var for breadcrumbs in favour of a dedicated module for this purpose. There is still a Twig function for retrieving or displaying a page hierarchy though. | ||
- Removed the possibility to order sub pages of a specific page by title. | ||
- The JoinPosition content type has been removed because it is not needed anymore. | ||
- The Camtasia content type has been removed. | ||
- The Flickr content type has been removed. A better choice is the Flickr media type in the media module which is going to provide a generic media content type soon (see https://github.com/cmfcmf/MediaModule/issues/2 for reference). | ||
- The FlashMovie content type has been removed. This is better handled by a media module, too. | ||
|
||
|
||
<a name="todo" /> | ||
|
||
## TODO | ||
|
||
- The `ComputerCodeType` needs to be updated for supporting the BBCode and LuMicuLa modules as soon as they have been migrated to Zikula 2. There are @todo markers for that. | ||
- The `YouTubeType` could be enhanced to fetch additional data from API. It should use the `CacheHelper` like `SlideshareType` and `VimeoType`. There is a @todo marker for that. | ||
|
||
|
||
<a name="contributing" /> | ||
|
||
## Questions, bugs and contributing | ||
|
||
If you want to report something or help out with further development of the Content module please refer | ||
to the corresponding GitHub project at https://github.com/zikula-modules/Content |
15 changes: 0 additions & 15 deletions
15
Resources/extras/themes/RSS/templates/modules/Content/user/extlist.tpl
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
<phpdox xmlns="http://xml.phpdox.net/config"> | ||
<project name="Content" source="src" workdir="build/phpdox"> | ||
<collector publiconly="false"> | ||
<include mask="*.php" /> | ||
</collector> | ||
|
||
<generator output="build"> | ||
<enrich base="build/logs"> | ||
<source type="build" /> | ||
<source type="git"> | ||
<history enabled="true" limit="15" /> | ||
</source> | ||
<source type="checkstyle" /> | ||
<!--source type="phpcs" /--> | ||
<source type="pmd" /> | ||
<source type="phploc" /> | ||
<source type="phpunit"> | ||
<coverage path="coverage/xml" /> | ||
</source> | ||
</enrich> | ||
|
||
<build engine="html" enabled="true" output="api"> | ||
<!-- | ||
<template dir="${phpDox.home}/templates/html" /> | ||
--> | ||
<file extension="html" /> | ||
</build> | ||
<!-- | ||
does not work yet ("The engine(s) 'xml' is/are not registered") | ||
<build engine="xml" enabled="true" output="api-xml" /> | ||
--> | ||
<build engine="todo" enabled="false" output="api-todo"> | ||
<file name="todolist.txt" encoding="utf-8" /> | ||
</build> | ||
|
||
<build engine="graph" enabled="false" output="api-graph" /> | ||
</generator> | ||
</project> | ||
</phpdox> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<ruleset name="name-of-your-coding-standard" | ||
xmlns="http://pmd.sf.net/ruleset/1.0.0" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 | ||
http://pmd.sf.net/ruleset_xml_schema.xsd" | ||
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"> | ||
<description>Coding standard used for Content.</description> | ||
|
||
<!-- Import entire rule sets for now --> | ||
<rule ref="rulesets/codesize.xml" /> | ||
<rule ref="rulesets/controversial.xml" /> | ||
<rule ref="rulesets/design.xml" /> | ||
<rule ref="rulesets/naming.xml" /> | ||
<rule ref="rulesets/unusedcode.xml" /> | ||
</ruleset> |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
{ | ||
"name": "zikula-modules/Multisites", | ||
"description": "Multisites", | ||
"version": "2.0.0", | ||
"authors": [ | ||
{ | ||
"name": "Axel Guckelsberger", | ||
"email": "axel.guckelsberger@guite.de" | ||
} | ||
], | ||
"require": { | ||
"php": ">=5.5.9" | ||
}, | ||
"require-dev": { | ||
"jakub-onderka/php-parallel-lint": "*", | ||
"phploc/phploc": "*", | ||
"pdepend/pdepend": "2.*", | ||
"squizlabs/php_codesniffer": "*", | ||
"phpunit/phpunit": "4.*", | ||
"theseer/phpdox": "*", | ||
"phpmd/phpmd": "2.*", | ||
"sebastian/phpcpd": "*" | ||
}, | ||
"suggest": { | ||
}, | ||
"config": { | ||
"vendor-dir": "vendor", | ||
"preferred-install": "dist", | ||
"optimize-autoloader": true, | ||
"platform": { | ||
"php": "5.5.9" | ||
} | ||
} | ||
} |
Oops, something went wrong.