├── Resources
├── Private
│ ├── Templates
│ │ ├── Jqadm
│ │ │ ├── File.html
│ │ │ └── Index.html
│ │ ├── Account
│ │ │ ├── WatchComponent.html
│ │ │ ├── FavoriteComponent.html
│ │ │ ├── HistoryComponent.html
│ │ │ ├── ProfileComponent.html
│ │ │ ├── SubscriptionComponent.html
│ │ │ └── Index.html
│ │ ├── Basket
│ │ │ ├── MiniComponent.html
│ │ │ ├── RelatedComponent.html
│ │ │ ├── StandardComponent.html
│ │ │ └── Index.html
│ │ ├── Catalog
│ │ │ ├── CountComponent.html
│ │ │ ├── DetailComponent.html
│ │ │ ├── FilterComponent.html
│ │ │ ├── ListComponent.html
│ │ │ ├── StageComponent.html
│ │ │ ├── StockComponent.html
│ │ │ ├── Count.html
│ │ │ ├── SessionComponent.html
│ │ │ ├── Stock.html
│ │ │ ├── Suggest.html
│ │ │ ├── List.html
│ │ │ ├── Tree.html
│ │ │ └── Detail.html
│ │ ├── Locale
│ │ │ └── SelectComponent.html
│ │ ├── Checkout
│ │ │ ├── ConfirmComponent.html
│ │ │ ├── StandardComponent.html
│ │ │ ├── UpdateComponent.html
│ │ │ ├── Update.html
│ │ │ ├── Confirm.html
│ │ │ └── Index.html
│ │ └── Page
│ │ │ ├── Privacy.html
│ │ │ └── Terms.html
│ ├── TypoScript
│ │ └── Plugin.ts2
│ └── Layouts
│ │ └── Default.html
└── Public
│ ├── mimeicons
│ ├── text
│ │ ├── css.png
│ │ ├── csv.png
│ │ ├── rdf.png
│ │ ├── rtf.png
│ │ ├── xml.png
│ │ ├── html.png
│ │ ├── mathml.png
│ │ ├── plain.png
│ │ ├── sgml.png
│ │ ├── troff.png
│ │ ├── x-chdr.png
│ │ ├── x-csrc.png
│ │ ├── x-dtd.png
│ │ ├── x-hex.png
│ │ ├── x-java.png
│ │ ├── x-ldif.png
│ │ ├── x-log.png
│ │ ├── x-nfo.png
│ │ ├── x-po.png
│ │ ├── x-sql.png
│ │ ├── x-tcl.png
│ │ ├── x-tex.png
│ │ ├── xmcd.png
│ │ ├── calendar.png
│ │ ├── enriched.png
│ │ ├── vnd.abc.png
│ │ ├── x-adasrc.png
│ │ ├── x-bibtex.png
│ │ ├── x-c++hdr.png
│ │ ├── x-c++src.png
│ │ ├── x-cmake.png
│ │ ├── x-csharp.png
│ │ ├── x-pascal.png
│ │ ├── x-patch.png
│ │ ├── x-python.png
│ │ ├── x-readme.png
│ │ ├── x-script.png
│ │ ├── x-vcard.png
│ │ ├── x-xslfo.png
│ │ ├── directory.png
│ │ ├── vcalendar.png
│ │ ├── vnd.wap.wml.png
│ │ ├── x-authors.png
│ │ ├── x-changelog.png
│ │ ├── x-copying.png
│ │ ├── x-generic.png
│ │ ├── x-haskell.png
│ │ ├── x-install.png
│ │ ├── x-makefile.png
│ │ ├── x-objchdr.png
│ │ ├── x-objcsrc.png
│ │ ├── x-texinfo.png
│ │ └── x-katefilelist.png
│ ├── unknown.png
│ ├── uri
│ │ ├── mms.png
│ │ ├── mmst.png
│ │ ├── mmsu.png
│ │ ├── pnm.png
│ │ ├── rtspt.png
│ │ └── rtspu.png
│ ├── audio
│ │ ├── ac3.png
│ │ ├── midi.png
│ │ ├── x-wav.png
│ │ ├── prs.sid.png
│ │ ├── x-adpcm.png
│ │ ├── x-aiff.png
│ │ ├── x-flac.png
│ │ ├── x-flac+ogg.png
│ │ ├── x-generic.png
│ │ ├── x-monkey.png
│ │ ├── x-speex+ogg.png
│ │ └── vnd.rn-realvideo.png
│ ├── image
│ │ ├── x-eps.png
│ │ ├── svg+xml.png
│ │ ├── x-xfig.png
│ │ ├── x-generic.png
│ │ ├── svg+xml-compressed.png
│ │ └── x-vnd.trolltech.qpicture.png
│ ├── video
│ │ ├── x-mng.png
│ │ └── x-generic.png
│ ├── fonts
│ │ └── package.png
│ ├── message
│ │ ├── news.png
│ │ └── rfc822.png
│ ├── application
│ │ ├── pdf.png
│ │ ├── rtf.png
│ │ ├── sxw.png
│ │ ├── x-ar.png
│ │ ├── x-m4.png
│ │ ├── xml.png
│ │ ├── xsd.png
│ │ ├── zip.png
│ │ ├── msword.png
│ │ ├── x-ace.png
│ │ ├── x-arc.png
│ │ ├── x-arj.png
│ │ ├── x-awk.png
│ │ ├── x-bzip.png
│ │ ├── x-cda.png
│ │ ├── x-cpio.png
│ │ ├── x-cue.png
│ │ ├── x-deb.png
│ │ ├── x-egon.png
│ │ ├── x-gzip.png
│ │ ├── x-java.png
│ │ ├── x-k3b.png
│ │ ├── x-lha.png
│ │ ├── x-lyx.png
│ │ ├── x-lzop.png
│ │ ├── x-nzb.png
│ │ ├── x-pak.png
│ │ ├── x-perl.png
│ │ ├── x-php.png
│ │ ├── x-rar.png
│ │ ├── x-rpm.png
│ │ ├── x-ruby.png
│ │ ├── x-siag.png
│ │ ├── x-tar.png
│ │ ├── x-tarz.png
│ │ ├── x-tgif.png
│ │ ├── x-tzo.png
│ │ ├── x-wmf.png
│ │ ├── x-zoo.png
│ │ ├── pgp-keys.png
│ │ ├── relaxng.png
│ │ ├── rss+xml.png
│ │ ├── x-archive.png
│ │ ├── x-bzdvi.png
│ │ ├── x-desktop.png
│ │ ├── x-gzdvi.png
│ │ ├── x-kcsrc.png
│ │ ├── x-kontour.png
│ │ ├── x-kplato.png
│ │ ├── x-krita.png
│ │ ├── x-kvtml.png
│ │ ├── x-marble.png
│ │ ├── x-mswrite.png
│ │ ├── x-object.png
│ │ ├── x-pem-key.png
│ │ ├── x-plasma.png
│ │ ├── x-subrip.png
│ │ ├── x-trash.png
│ │ ├── xhtml+xml.png
│ │ ├── xslt+xml.png
│ │ ├── illustrator.png
│ │ ├── javascript.png
│ │ ├── pkcs7-mime.png
│ │ ├── postscript.png
│ │ ├── vnd.scribus.png
│ │ ├── x-cd-image.png
│ │ ├── x-compress.png
│ │ ├── x-designer.png
│ │ ├── x-font-afm.png
│ │ ├── x-font-bdf.png
│ │ ├── x-font-otf.png
│ │ ├── x-font-pcf.png
│ │ ├── x-font-snf.png
│ │ ├── x-font-ttf.png
│ │ ├── x-gnumeric.png
│ │ ├── x-kgetlist.png
│ │ ├── x-mplayer2.png
│ │ ├── x-mswinurl.png
│ │ ├── x-sharedlib.png
│ │ ├── x-troff-man.png
│ │ ├── x-zerosize.png
│ │ ├── octet-stream.png
│ │ ├── pgp-encrypted.png
│ │ ├── vnd.ms-access.png
│ │ ├── vnd.ms-excel.png
│ │ ├── x-bittorrent.png
│ │ ├── x-executable.png
│ │ ├── x-font-type1.png
│ │ ├── x-gzpostscript.png
│ │ ├── x-java-applet.png
│ │ ├── x-java-archive.png
│ │ ├── x-javascript.png
│ │ ├── x-mimearchive.png
│ │ ├── x-qet-element.png
│ │ ├── x-qet-project.png
│ │ ├── x-quattropro.png
│ │ ├── x-shellscript.png
│ │ ├── x-smb-server.png
│ │ ├── vnd.rn-realmedia.png
│ │ ├── vnd.sun.xml.calc.png
│ │ ├── vnd.sun.xml.draw.png
│ │ ├── x-7z-compressed.png
│ │ ├── x-compressed-tar.png
│ │ ├── x-smb-workgroup.png
│ │ ├── vnd.ms-powerpoint.png
│ │ ├── x-executable-script.png
│ │ ├── x-ms-dos-executable.png
│ │ ├── x-python-bytecode.png
│ │ ├── x-shockwave-flash.png
│ │ ├── vnd.stardivision.calc.png
│ │ ├── vnd.stardivision.draw.png
│ │ ├── x-applix-spreadsheet.png
│ │ ├── x-bzip-compressed-tar.png
│ │ ├── x-lzma-compressed-tar.png
│ │ ├── vnd.sun.xml.calc.template.png
│ │ ├── vnd.sun.xml.draw.template.png
│ │ ├── vnd.oasis.opendocument.chart.png
│ │ ├── vnd.oasis.opendocument.image.png
│ │ ├── vnd.oasis.opendocument.text.png
│ │ ├── vnd.oasis.opendocument.database.png
│ │ ├── vnd.oasis.opendocument.formula.png
│ │ ├── vnd.oasis.opendocument.graphics.png
│ │ ├── vnd.oasis.opendocument.spreadsheet.png
│ │ ├── vnd.oasis.opendocument.presentation.png
│ │ ├── vnd.oasis.opendocument.presentation-template.png
│ │ └── vnd.oasis.opendocument.spreadsheet-template.png
│ ├── inode
│ │ └── directory.png
│ └── package
│ │ └── x-generic.png
│ └── themes
│ └── elegance
│ ├── media
│ ├── plus.png
│ ├── pswp.png
│ ├── aimeos.png
│ ├── basket.png
│ ├── check.png
│ ├── minus.png
│ ├── select.png
│ ├── social.png
│ ├── preloader.gif
│ ├── progress.gif
│ ├── spinner.gif
│ ├── arrow_big_left.png
│ ├── detail-actions.png
│ ├── animated-overlay.gif
│ ├── arrow_big_right.png
│ ├── arrow_small_left.png
│ ├── arrow_small_top.png
│ ├── arrow_small_bottom.png
│ ├── arrow_small_right.png
│ ├── ui-icons_222222_256x240.png
│ ├── ui-icons_2e83ff_256x240.png
│ ├── ui-icons_454545_256x240.png
│ ├── ui-icons_888888_256x240.png
│ ├── ui-icons_cd0a0a_256x240.png
│ ├── prettyPhoto
│ │ ├── default
│ │ │ ├── loader.gif
│ │ │ ├── sprite.png
│ │ │ ├── sprite_x.png
│ │ │ ├── sprite_y.png
│ │ │ ├── sprite_next.png
│ │ │ ├── sprite_prev.png
│ │ │ └── default_thumb.png
│ │ ├── facebook
│ │ │ ├── btnNext.png
│ │ │ ├── loader.gif
│ │ │ ├── sprite.png
│ │ │ ├── btnPrevious.png
│ │ │ ├── contentPatternLeft.png
│ │ │ ├── contentPatternTop.png
│ │ │ ├── default_thumbnail.gif
│ │ │ ├── contentPatternBottom.png
│ │ │ └── contentPatternRight.png
│ │ ├── dark_rounded
│ │ │ ├── loader.gif
│ │ │ ├── sprite.png
│ │ │ ├── btnNext.png
│ │ │ ├── btnPrevious.png
│ │ │ ├── contentPattern.png
│ │ │ └── default_thumbnail.gif
│ │ ├── dark_square
│ │ │ ├── btnNext.png
│ │ │ ├── loader.gif
│ │ │ ├── sprite.png
│ │ │ ├── btnPrevious.png
│ │ │ ├── contentPattern.png
│ │ │ └── default_thumbnail.gif
│ │ ├── light_square
│ │ │ ├── loader.gif
│ │ │ ├── sprite.png
│ │ │ ├── btnNext.png
│ │ │ ├── btnPrevious.png
│ │ │ └── default_thumbnail.gif
│ │ └── light_rounded
│ │ │ ├── btnNext.png
│ │ │ ├── loader.gif
│ │ │ ├── sprite.png
│ │ │ ├── btnPrevious.png
│ │ │ └── default_thumbnail.gif
│ ├── ui-bg_flat_0_aaaaaa_40x100.png
│ ├── ui-bg_flat_75_ffffff_40x100.png
│ ├── ui-bg_glass_55_fbf9ee_1x400.png
│ ├── ui-bg_glass_65_ffffff_1x400.png
│ ├── ui-bg_glass_75_dadada_1x400.png
│ ├── ui-bg_glass_75_e6e6e6_1x400.png
│ ├── ui-bg_glass_95_fef1ec_1x400.png
│ ├── ui-bg_highlight-soft_75_cccccc_1x100.png
│ └── pswp.svg
│ ├── aimeos.js
│ └── email.css
├── .gitignore
├── Configuration
├── Caches.yaml
├── Routes.Update.yaml
├── Objects.yaml
├── Routes.Account.yaml
├── Routes.Jsonadm.yaml
├── Routes.Jsonapi.yaml
├── Routes.yaml
├── Routes.Jqadm.yaml
├── Routes.Default.yaml
├── NodeTypes.yaml
└── Settings.yaml
├── .coveralls.yml
├── Tests
├── Functional
│ ├── Controller
│ │ ├── AccountControllerTest.php
│ │ ├── JsonapiControllerTest.php
│ │ └── JqadmControllerTest.php
│ └── Command
│ │ └── AimeosCommandControllerTest.php
└── Unit
│ ├── Flow
│ └── AimeosTypeConverterTest.php
│ ├── Base
│ ├── AimeosTest.php
│ ├── I18nTest.php
│ ├── ConfigTest.php
│ ├── PageTest.php
│ └── ViewTest.php
│ └── Controller
│ ├── AdminControllerTest.php
│ ├── LocaleControllerTest.php
│ ├── BasketControllerTest.php
│ ├── AccountControllerTest.php
│ ├── CheckoutControllerTest.php
│ └── AbstractControllerTest.php
├── Classes
└── Aimeos
│ ├── Shop
│ ├── Controller
│ │ ├── PageController.php
│ │ ├── LocaleController.php
│ │ ├── AdminController.php
│ │ ├── BasketController.php
│ │ ├── AbstractController.php
│ │ ├── CheckoutController.php
│ │ ├── AccountController.php
│ │ ├── CatalogController.php
│ │ └── JsonapiController.php
│ ├── Composer
│ │ └── InstallerScripts.php
│ ├── ViewHelper
│ │ ├── BlockViewHelper.php
│ │ ├── ConfigViewHelper.php
│ │ └── TranslateViewHelper.php
│ └── Base
│ │ ├── Aimeos.php
│ │ ├── I18n.php
│ │ ├── Config.php
│ │ ├── Locale.php
│ │ └── Shop.php
│ └── Flow
│ └── AimeosTypeConverter.php
├── .travis.yml
├── composer.json
├── .travis.sh
└── README.md
/Resources/Private/Templates/Jqadm/File.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | Resources/Extensions
2 | composer.lock
3 | Packages
4 | vendor
5 | ext
6 |
--------------------------------------------------------------------------------
/Configuration/Caches.yaml:
--------------------------------------------------------------------------------
1 | AimeosShop_Cache:
2 | frontend: Neos\Cache\Frontend\StringFrontend
3 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Account/WatchComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Basket/MiniComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Basket/RelatedComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/CountComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/DetailComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/FilterComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/ListComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/StageComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/StockComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Locale/SelectComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Account/FavoriteComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Account/HistoryComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Account/ProfileComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Basket/StandardComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/Count.html:
--------------------------------------------------------------------------------
1 | {aibody.catalog_count}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/SessionComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/Stock.html:
--------------------------------------------------------------------------------
1 | {aibody.catalog_stock}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Checkout/ConfirmComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Checkout/StandardComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Checkout/UpdateComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Account/SubscriptionComponent.html:
--------------------------------------------------------------------------------
1 | {output}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/Suggest.html:
--------------------------------------------------------------------------------
1 | {aibody.catalog_suggest}
2 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Checkout/Update.html:
--------------------------------------------------------------------------------
1 | {aibody.checkout_update}
2 |
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/css.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/csv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/csv.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/rdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/rdf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/rtf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/rtf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/xml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/unknown.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/uri/mms.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/uri/mms.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/uri/mmst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/uri/mmst.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/uri/mmsu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/uri/mmsu.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/uri/pnm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/uri/pnm.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/ac3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/ac3.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/midi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/midi.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-wav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-wav.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/image/x-eps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/image/x-eps.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/html.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/mathml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/mathml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/plain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/plain.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/sgml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/sgml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/troff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/troff.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-chdr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-chdr.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-csrc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-csrc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-dtd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-dtd.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-hex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-hex.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-java.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-java.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-ldif.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-ldif.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-log.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-nfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-nfo.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-po.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-po.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-sql.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-sql.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-tcl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-tcl.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-tex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-tex.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/xmcd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/xmcd.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/uri/rtspt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/uri/rtspt.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/uri/rtspu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/uri/rtspu.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/video/x-mng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/video/x-mng.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/prs.sid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/prs.sid.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-adpcm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-adpcm.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-aiff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-aiff.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-flac.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-flac.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/fonts/package.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/fonts/package.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/image/svg+xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/image/svg+xml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/image/x-xfig.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/image/x-xfig.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/message/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/message/news.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/calendar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/enriched.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/enriched.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/vnd.abc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/vnd.abc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-adasrc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-adasrc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-bibtex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-bibtex.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-c++hdr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-c++hdr.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-c++src.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-c++src.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-cmake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-cmake.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-csharp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-csharp.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-pascal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-pascal.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-patch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-patch.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-python.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-readme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-readme.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-script.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-script.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-vcard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-vcard.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-xslfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-xslfo.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/pdf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/rtf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/rtf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/sxw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/sxw.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-ar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-ar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-m4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-m4.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/xml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/xsd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/xsd.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/zip.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-flac+ogg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-flac+ogg.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-generic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-generic.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-monkey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-monkey.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/image/x-generic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/image/x-generic.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/inode/directory.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/inode/directory.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/message/rfc822.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/message/rfc822.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/directory.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/directory.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/vcalendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/vcalendar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/vnd.wap.wml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/vnd.wap.wml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-authors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-authors.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-changelog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-changelog.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-copying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-copying.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-generic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-generic.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-haskell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-haskell.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-install.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-install.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-makefile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-makefile.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-objchdr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-objchdr.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-objcsrc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-objcsrc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-texinfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-texinfo.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/video/x-generic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/video/x-generic.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/plus.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/pswp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/pswp.png
--------------------------------------------------------------------------------
/Resources/Private/Templates/Page/Privacy.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Privacy policy
5 |
6 |
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/msword.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/msword.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-ace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-ace.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-arc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-arc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-arj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-arj.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-awk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-awk.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-bzip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-bzip.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-cda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-cda.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-cpio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-cpio.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-cue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-cue.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-deb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-deb.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-egon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-egon.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-gzip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-gzip.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-java.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-java.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-k3b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-k3b.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-lha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-lha.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-lyx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-lyx.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-lzop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-lzop.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-nzb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-nzb.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-pak.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-pak.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-perl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-perl.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-php.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-php.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-rar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-rar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-rpm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-rpm.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-ruby.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-ruby.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-siag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-siag.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-tar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-tar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-tarz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-tarz.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-tgif.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-tgif.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-tzo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-tzo.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-wmf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-wmf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-zoo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-zoo.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/x-speex+ogg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/x-speex+ogg.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/package/x-generic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/package/x-generic.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/aimeos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/aimeos.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/basket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/basket.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/check.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/minus.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/select.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/social.png
--------------------------------------------------------------------------------
/Resources/Private/Templates/Page/Terms.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Terms and conditions
5 |
6 |
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/pgp-keys.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/pgp-keys.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/relaxng.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/relaxng.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/rss+xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/rss+xml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-archive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-archive.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-bzdvi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-bzdvi.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-desktop.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-gzdvi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-gzdvi.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-kcsrc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-kcsrc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-kontour.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-kontour.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-kplato.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-kplato.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-krita.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-krita.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-kvtml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-kvtml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-marble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-marble.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-mswrite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-mswrite.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-object.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-object.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-pem-key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-pem-key.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-plasma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-plasma.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-subrip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-subrip.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-trash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-trash.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/xhtml+xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/xhtml+xml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/xslt+xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/xslt+xml.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/text/x-katefilelist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/text/x-katefilelist.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/preloader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/preloader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/progress.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/progress.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/spinner.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/spinner.gif
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/illustrator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/illustrator.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/javascript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/javascript.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/pkcs7-mime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/pkcs7-mime.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/postscript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/postscript.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.scribus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.scribus.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-cd-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-cd-image.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-compress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-compress.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-designer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-designer.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-afm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-afm.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-bdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-bdf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-otf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-otf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-pcf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-pcf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-snf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-snf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-ttf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-ttf.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-gnumeric.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-gnumeric.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-kgetlist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-kgetlist.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-mplayer2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-mplayer2.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-mswinurl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-mswinurl.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-sharedlib.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-sharedlib.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-troff-man.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-troff-man.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-zerosize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-zerosize.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/audio/vnd.rn-realvideo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/audio/vnd.rn-realvideo.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/octet-stream.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/octet-stream.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/pgp-encrypted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/pgp-encrypted.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.ms-access.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.ms-access.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.ms-excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.ms-excel.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-bittorrent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-bittorrent.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-executable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-executable.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-font-type1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-font-type1.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-gzpostscript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-gzpostscript.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-java-applet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-java-applet.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-java-archive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-java-archive.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-javascript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-javascript.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-mimearchive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-mimearchive.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-qet-element.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-qet-element.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-qet-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-qet-project.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-quattropro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-quattropro.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-shellscript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-shellscript.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-smb-server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-smb-server.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/image/svg+xml-compressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/image/svg+xml-compressed.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/arrow_big_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/arrow_big_left.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/detail-actions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/detail-actions.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.rn-realmedia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.rn-realmedia.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.sun.xml.calc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.sun.xml.calc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.sun.xml.draw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.sun.xml.draw.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-7z-compressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-7z-compressed.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-compressed-tar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-compressed-tar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-smb-workgroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-smb-workgroup.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/animated-overlay.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/animated-overlay.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/arrow_big_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/arrow_big_right.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/arrow_small_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/arrow_small_left.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/arrow_small_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/arrow_small_top.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.ms-powerpoint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.ms-powerpoint.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-executable-script.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-executable-script.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-ms-dos-executable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-ms-dos-executable.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-python-bytecode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-python-bytecode.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-shockwave-flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-shockwave-flash.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/image/x-vnd.trolltech.qpicture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/image/x-vnd.trolltech.qpicture.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/arrow_small_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/arrow_small_bottom.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/arrow_small_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/arrow_small_right.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.stardivision.calc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.stardivision.calc.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.stardivision.draw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.stardivision.draw.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-applix-spreadsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-applix-spreadsheet.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-bzip-compressed-tar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-bzip-compressed-tar.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/x-lzma-compressed-tar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/x-lzma-compressed-tar.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-icons_222222_256x240.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-icons_454545_256x240.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-icons_888888_256x240.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-icons_cd0a0a_256x240.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.sun.xml.calc.template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.sun.xml.calc.template.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.sun.xml.draw.template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.sun.xml.draw.template.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/loader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_flat_0_aaaaaa_40x100.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.chart.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.image.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.text.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_x.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_y.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_y.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/btnNext.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/loader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/sprite.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_flat_75_ffffff_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_flat_75_ffffff_40x100.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_glass_55_fbf9ee_1x400.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_glass_65_ffffff_1x400.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_glass_75_dadada_1x400.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_glass_75_e6e6e6_1x400.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_glass_95_fef1ec_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_glass_95_fef1ec_1x400.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.database.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.database.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.formula.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.formula.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.graphics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.graphics.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/loader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/sprite.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/btnNext.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/loader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/sprite.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_next.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/sprite_prev.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_square/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_square/loader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_square/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_square/sprite.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.spreadsheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.spreadsheet.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/btnNext.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/default/default_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/default/default_thumb.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/btnPrevious.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/btnNext.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/loader.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/sprite.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_square/btnNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_square/btnNext.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.presentation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.presentation.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/btnPrevious.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/btnPrevious.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_square/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_square/btnPrevious.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/ui-bg_highlight-soft_75_cccccc_1x100.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/aimeos.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Specific JS for the elegance theme
3 | *
4 | * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5 | * @copyright Aimeos (aimeos.org), 2014
6 | */
7 |
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/contentPattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/contentPattern.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/contentPattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/contentPattern.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternLeft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternLeft.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternTop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternTop.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/default_thumbnail.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/btnPrevious.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/btnPrevious.png
--------------------------------------------------------------------------------
/.coveralls.yml:
--------------------------------------------------------------------------------
1 | src_dir: Application/Aimeos.Shop/Classes/
2 | json_path: coveralls.json
3 | coverage_clover:
4 | - Application/Aimeos.Shop/coverage-unit.xml
5 | - Application/Aimeos.Shop/coverage-functional.xml
6 |
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_square/default_thumbnail.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternBottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternBottom.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternRight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/facebook/contentPatternRight.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.presentation-template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.presentation-template.png
--------------------------------------------------------------------------------
/Resources/Public/mimeicons/application/vnd.oasis.opendocument.spreadsheet-template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/mimeicons/application/vnd.oasis.opendocument.spreadsheet-template.png
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/dark_rounded/default_thumbnail.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_rounded/default_thumbnail.gif
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/prettyPhoto/light_square/default_thumbnail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aimeos/aimeos-flow/HEAD/Resources/Public/themes/elegance/media/prettyPhoto/light_square/default_thumbnail.gif
--------------------------------------------------------------------------------
/Resources/Private/TypoScript/Plugin.ts2:
--------------------------------------------------------------------------------
1 | prototype(Aimeos.Shop:Plugin) < prototype(Neos.Neos:Plugin)
2 | prototype(Aimeos.Shop:Plugin) {
3 | package = 'Aimeos.Shop'
4 | controller = 'Catalog'
5 | action = 'listComponent'
6 | }
7 |
--------------------------------------------------------------------------------
/Configuration/Routes.Update.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'Checkout update page'
3 | uriPattern: '/update'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Checkout'
7 | '@action': 'update'
8 | '@format': 'html'
9 | appendExceedingArguments: true
10 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Checkout/Confirm.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {aiheader.checkout_confirm}
5 |
6 |
7 |
8 | {aibody.checkout_confirm}
9 |
10 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Checkout/Index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {aiheader.checkout_standard}
5 |
6 |
7 |
8 | {aibody.checkout_standard}
9 |
10 |
--------------------------------------------------------------------------------
/Tests/Functional/Controller/AccountControllerTest.php:
--------------------------------------------------------------------------------
1 | browser->request( 'http://localhost/unittest/myaccount/download/0', 'GET' );
11 |
12 | $this->assertEquals( 401, $response->getStatusCode() );
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Basket/Index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {aiheader.basket_bulk}
5 | {aiheader.basket_standard}
6 | {aiheader.basket_related}
7 |
8 |
9 |
10 | {aibody.basket_bulk}
11 | {aibody.basket_standard}
12 | {aibody.basket_related}
13 |
14 |
--------------------------------------------------------------------------------
/Tests/Unit/Flow/AimeosTypeConverterTest.php:
--------------------------------------------------------------------------------
1 | object = new \Aimeos\Flow\AimeosTypeConverter();
15 | }
16 |
17 |
18 | /**
19 | * @test
20 | */
21 | public function convertFrom()
22 | {
23 | $src = 'f_catid=1&f_name=Test';
24 | $expected = array( 'f_catid' => 1, 'f_name' => 'Test' );
25 |
26 | $this->assertEquals( $expected, $this->object->convertFrom( $src, 'request' ) );
27 | }
28 | }
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/List.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {aiheader.basket_mini}
5 | {aiheader.catalog_filter}
6 | {aiheader.catalog_lists}
7 |
8 |
9 |
10 | {aibody.basket_mini}
11 |
12 |
13 |
14 | {aibody.catalog_filter}
15 |
16 |
17 |
18 | {aibody.catalog_lists}
19 |
20 |
--------------------------------------------------------------------------------
/Configuration/Objects.yaml:
--------------------------------------------------------------------------------
1 | Aimeos\Shop\Base\Context:
2 | properties:
3 | cache:
4 | object:
5 | factoryObjectName: Neos\Flow\Cache\CacheManager
6 | factoryMethodName: getCache
7 | arguments:
8 | 1:
9 | value: AimeosShop_Cache
10 |
11 | Aimeos\Shop\Command\AimeosCommandController:
12 | properties:
13 | cache:
14 | object:
15 | factoryObjectName: Neos\Flow\Cache\CacheManager
16 | factoryMethodName: getCache
17 | arguments:
18 | 1:
19 | value: AimeosShop_Cache
20 |
21 | Neos\Flow\Property\TypeConverter\MediaTypeConverterInterface:
22 | className: 'Aimeos\Flow\AimeosTypeConverter'
23 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/PageController.php:
--------------------------------------------------------------------------------
1 | view->assign( 'output', $this->getOutput( 'locale/select' ) );
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/Tree.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {aiheader.basket_mini}
5 | {aiheader.catalog_filter}
6 | {aiheader.catalog_stage}
7 | {aiheader.catalog_lists}
8 |
9 |
10 |
11 | {aibody.basket_mini}
12 |
13 |
14 |
15 | {aibody.catalog_filter}
16 |
17 |
18 |
19 | {aibody.catalog_stage}
20 |
21 |
22 |
23 | {aibody.catalog_lists}
24 |
25 |
--------------------------------------------------------------------------------
/Tests/Unit/Base/AimeosTest.php:
--------------------------------------------------------------------------------
1 | object = new \Aimeos\Shop\Base\Aimeos();
15 | }
16 |
17 |
18 | /**
19 | * @test
20 | */
21 | public function get()
22 | {
23 | $this->assertInstanceOf( '\\Aimeos\\Bootstrap', $this->object->get() );
24 | }
25 |
26 |
27 | /**
28 | * @test
29 | */
30 | public function getVersion()
31 | {
32 | $this->assertInternalType( 'string', $this->object->getVersion() );
33 | }
34 |
35 |
36 | /**
37 | * @test
38 | */
39 | public function injectSettings()
40 | {
41 | $this->object->injectSettings( array( 'test' ) );
42 |
43 | $this->assertEquals( array( 'test' ), \PHPUnit\Framework\Assert::readAttribute( $this->object, 'settings' ) );
44 | }
45 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/AdminController.php:
--------------------------------------------------------------------------------
1 | 'default',
30 | 'resource' => 'dashboard',
31 | 'lang' => ( $this->request->hasArgument( 'lang' ) ? $this->request->getArgument( 'lang' ) : 'en' ),
32 | );
33 |
34 | $this->forward( 'search', 'jqadm', null, $param );
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Tests/Functional/Command/AimeosCommandControllerTest.php:
--------------------------------------------------------------------------------
1 | setupCommand( 'unittest', 'unittest' );
15 | }
16 |
17 |
18 | /**
19 | * @test
20 | */
21 | public function cacheCommand()
22 | {
23 | $controller = new \Aimeos\Shop\Command\AimeosCommandController();
24 | $controller->cacheCommand( 'unittest' );
25 | }
26 |
27 |
28 | /**
29 | * @test
30 | */
31 | public function jobsCommand()
32 | {
33 | $controller = new \Aimeos\Shop\Command\AimeosCommandController();
34 | // Parallel processing corrupts database connection of parent process
35 | // $controller->jobsCommand( 'index/optimize', 'unittest' );
36 | }
37 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Composer/InstallerScripts.php:
--------------------------------------------------------------------------------
1 | isDevMode() ) {
31 | $options['options'] = 'setup/default/demo:1';
32 | }
33 |
34 | \Neos\Flow\Core\Booting\Scripts::executeCommand( 'aimeos.shop:aimeos:setup', array(), true, $options );
35 | \Neos\Flow\Core\Booting\Scripts::executeCommand( 'aimeos.shop:aimeos:cache', array() );
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Catalog/Detail.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {aiheader.basket_mini}
9 | {aiheader.catalog_stage}
10 | {aiheader.catalog_detail}
11 | {aiheader.catalog_session}
12 |
13 |
14 |
15 | {aibody.basket_mini}
16 |
17 |
18 |
19 | {aibody.catalog_stage}
20 |
21 |
22 |
23 | {aibody.catalog_detail}
24 |
25 |
26 |
27 | {aibody.catalog_session}
28 |
29 |
--------------------------------------------------------------------------------
/Tests/Unit/Controller/AdminControllerTest.php:
--------------------------------------------------------------------------------
1 | object = $this->getMockBuilder( '\Aimeos\Shop\Controller\AdminController' )
17 | ->setMethods( array( 'forward' ) )
18 | ->disableOriginalConstructor()
19 | ->getMock();
20 |
21 | $this->request = $this->getMockBuilder( '\Neos\Flow\Mvc\ActionRequest' )
22 | ->setMethods( array( 'getArgument', 'hasArgument' ) )
23 | ->disableOriginalConstructor()
24 | ->getMock();
25 |
26 | $this->inject( $this->object, 'request', $this->request );
27 | }
28 |
29 |
30 | /**
31 | * @test
32 | */
33 | public function indexAction()
34 | {
35 | $this->request->expects( $this->once() )->method( 'hasArgument' );
36 | $this->object->expects( $this->once() )->method( 'forward' );
37 |
38 | $this->object->indexAction();
39 | }
40 | }
--------------------------------------------------------------------------------
/Resources/Private/Templates/Account/Index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {aiheader.basket_mini}
5 | {aiheader.account_profile}
6 | {aiheader.account_subscription}
7 | {aiheader.account_history}
8 | {aiheader.account_favorite}
9 | {aiheader.account_watch}
10 | {aiheader.catalog_session}
11 |
12 |
13 |
14 | {aibody.basket_mini}
15 |
16 |
17 |
18 | {aibody.account_profile}
19 | {aibody.account_subscription}
20 | {aibody.account_history}
21 | {aibody.account_favorite}
22 | {aibody.account_watch}
23 |
24 |
25 |
26 | {aibody.catalog_session}
27 |
28 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | dist: xenial
3 | language: php
4 |
5 | services:
6 | - mysql
7 |
8 | php:
9 | - 7.3
10 | - 7.2
11 | - 7.1
12 |
13 | env:
14 | - FLOW_VERSION=5.3
15 | - FLOW_VERSION=5.2
16 | - FLOW_VERSION=5.1
17 | - FLOW_VERSION=5.0
18 | - FLOW_VERSION=4.3
19 |
20 | before_script:
21 | - git clone https://github.com/neos/flow-development-distribution.git -b ${FLOW_VERSION} ../flow
22 | - cd ../flow && bash ../aimeos-flow/.travis.sh
23 |
24 | script:
25 | - bin/phpunit -c Build/BuildEssentials/PhpUnit/UnitTests.xml --coverage-clover Packages/Application/Aimeos.Shop/coverage-unit.xml --whitelist Packages/Application/Aimeos.Shop/Classes Packages/Application/Aimeos.Shop/Tests/Unit/
26 | - bin/phpunit -c Build/BuildEssentials/PhpUnit/FunctionalTests.xml --coverage-clover Packages/Application/Aimeos.Shop/coverage-functional.xml --whitelist Packages/Application/Aimeos.Shop/Classes Packages/Application/Aimeos.Shop/Tests/Functional/
27 |
28 | after_success:
29 | - php bin/coveralls -c Application/Aimeos.Shop/.coveralls.yml
30 |
31 | matrix:
32 | fast_finish: true
33 | exclude:
34 | - php: 7.3
35 | env: FLOW_VERSION=4.3
36 |
--------------------------------------------------------------------------------
/Tests/Unit/Controller/LocaleControllerTest.php:
--------------------------------------------------------------------------------
1 | object = $this->getMockBuilder( '\Aimeos\Shop\Controller\LocaleController' )
17 | ->setMethods( array( 'getOutput' ) )
18 | ->disableOriginalConstructor()
19 | ->getMock();
20 |
21 | $this->view = $this->getMockBuilder( '\Neos\Flow\Mvc\View\JsonView' )
22 | ->disableOriginalConstructor()
23 | ->getMock();
24 |
25 | $this->inject( $this->object, 'view', $this->view );
26 | $this->inject( $this->object, 'response', $this->response );
27 | }
28 |
29 |
30 | /**
31 | * @test
32 | */
33 | public function selectComponentAction()
34 | {
35 | $this->object->expects( $this->once() )->method( 'getOutput' )
36 | ->will( $this->returnValue( 'body' ) );
37 |
38 | $this->view->expects( $this->once() )->method( 'assign' )
39 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
40 |
41 | $this->object->selectComponentAction();
42 | }
43 | }
--------------------------------------------------------------------------------
/Configuration/Routes.Account.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'Account download page'
3 | uriPattern: '/download/{dl_id}'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Account'
7 | '@action': 'download'
8 | '@format': 'html'
9 | appendExceedingArguments: true
10 |
11 | -
12 | name: 'Account favorite products'
13 | uriPattern: '/favorite(/{fav_action}/{fav_id}/{d_name})'
14 | defaults:
15 | '@package': 'Aimeos.Shop'
16 | '@controller': 'Account'
17 | '@action': 'index'
18 | '@format': 'html'
19 | 'fav_action': ''
20 | 'fav_id': ''
21 | 'd_name': ''
22 | appendExceedingArguments: true
23 |
24 | -
25 | name: 'Account watched products'
26 | uriPattern: '/watch(/{wat_action}/{wat_id}/{d_name})'
27 | defaults:
28 | '@package': 'Aimeos.Shop'
29 | '@controller': 'Account'
30 | '@action': 'index'
31 | '@format': 'html'
32 | 'wat_action': ''
33 | 'wat_id': ''
34 | 'd_name': ''
35 | appendExceedingArguments: true
36 |
37 | -
38 | name: 'Account index page'
39 | uriPattern: ''
40 | defaults:
41 | '@package': 'Aimeos.Shop'
42 | '@controller': 'Account'
43 | '@action': 'index'
44 | '@format': 'html'
45 | appendExceedingArguments: true
46 |
--------------------------------------------------------------------------------
/Tests/Unit/Base/I18nTest.php:
--------------------------------------------------------------------------------
1 | object = new \Aimeos\Shop\Base\I18n();
16 |
17 | $this->inject( $this->object, 'aimeos', $aimeos );
18 | }
19 |
20 |
21 | /**
22 | * @test
23 | */
24 | public function get()
25 | {
26 | $settings = array(
27 | 'i18n' => array( 'de' => array( 'test' => 1 ) ),
28 | 'flow' => array( 'apc' => array( 'enable' => true ) ),
29 | );
30 | $this->object->injectSettings( $settings );
31 |
32 | $list = $this->object->get( array( 'de', 'en' ) );
33 |
34 | $this->assertInternalType( 'array', $list );
35 | $this->assertArrayHasKey( 'de', $list );
36 | $this->assertArrayHasKey( 'en', $list );
37 | $this->assertInstanceOf( '\\Aimeos\\MW\\Translation\\Iface', $list['de'] );
38 | $this->assertInstanceOf( '\\Aimeos\\MW\\Translation\\Iface', $list['en'] );
39 | }
40 |
41 |
42 | /**
43 | * @test
44 | */
45 | public function injectSettings()
46 | {
47 | $this->object->injectSettings( array( 'test' ) );
48 |
49 | $this->assertEquals( array( 'test' ), \PHPUnit\Framework\Assert::readAttribute( $this->object, 'settings' ) );
50 | }
51 | }
--------------------------------------------------------------------------------
/Tests/Unit/Base/ConfigTest.php:
--------------------------------------------------------------------------------
1 | object = new \Aimeos\Shop\Base\Config();
15 |
16 | $aimeos = new \Aimeos\Shop\Base\Aimeos();
17 |
18 | $resource = array(
19 | 'host' => '127.0.0.1',
20 | 'dbname' => 'flow',
21 | 'user' => 'root',
22 | 'password' => '',
23 | );
24 |
25 | $settings = array(
26 | 'backend' => array( 'test' => 1 ),
27 | 'frontend' => array( 'test' => 0 ),
28 | );
29 |
30 | $this->inject( $this->object, 'aimeos', $aimeos );
31 | $this->inject( $this->object, 'resource', $resource );
32 | $this->inject( $this->object, 'settings', $settings );
33 | }
34 |
35 |
36 | /**
37 | * @test
38 | */
39 | public function getFrontend()
40 | {
41 | $config = $this->object->get();
42 |
43 | $this->assertInstanceOf( '\Aimeos\MW\Config\Iface', $config );
44 | $this->assertEquals( 0, $config->get( 'test', -1 ) );
45 | }
46 |
47 |
48 | /**
49 | * @test
50 | */
51 | public function getBackend()
52 | {
53 | $config = $this->object->get( 'backend' );
54 |
55 | $this->assertInstanceOf( '\Aimeos\MW\Config\Iface', $config );
56 | $this->assertEquals( 1, $config->get( 'test', -1 ) );
57 | }
58 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/ViewHelper/BlockViewHelper.php:
--------------------------------------------------------------------------------
1 | registerArgument( 'name', 'string', 'Name of the content block' );
34 | }
35 |
36 |
37 | /**
38 | * Adds the rendered Fluid section to the Aimeos block view helper
39 | */
40 | public function render()
41 | {
42 | $iface = '\Aimeos\MW\View\Iface';
43 | $view = $this->templateVariableContainer->get( '_aimeos_view' );
44 |
45 | if( !is_object( $view ) || !( $view instanceof $iface ) ) {
46 | throw new Exception( 'Aimeos view object is missing' );
47 | }
48 |
49 | if( !isset( $this->arguments['name'] ) ) {
50 | throw new Exception( 'Attribute "name" missing for Aimeos translate view helper' );
51 | }
52 |
53 | $view->block()->set( $this->arguments['name'], $this->renderChildren() );
54 | }
55 | }
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/media/pswp.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Flow/AimeosTypeConverter.php:
--------------------------------------------------------------------------------
1 | registerArgument( 'key', 'string', 'Configuration key, e.g. client/html/catalog/lists/basket-add' );
34 | $this->registerArgument( 'default', 'mixed', 'Value if no configuration for the given key was found', false );
35 | }
36 |
37 |
38 | /**
39 | * Returns the configuration value for the given key
40 | *
41 | * @return mixed Configuration value
42 | */
43 | public function render()
44 | {
45 | $iface = '\Aimeos\MW\View\Iface';
46 | $view = $this->templateVariableContainer->get( '_aimeos_view' );
47 |
48 | if( !is_object( $view ) || !( $view instanceof $iface ) ) {
49 | throw new Exception( 'Aimeos view object is missing' );
50 | }
51 |
52 | if( !isset( $this->arguments['key'] ) ) {
53 | throw new Exception( 'Attribute "key" missing for Aimeos translate view helper' );
54 | }
55 |
56 | $key = $this->arguments['key'];
57 | $default = ( isset( $this->arguments['default'] ) ? $this->arguments['default'] : null );
58 |
59 | return $view->config( $key, $default );
60 | }
61 | }
--------------------------------------------------------------------------------
/Configuration/Routes.Jsonadm.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'REST JSON Admin GET'
3 | uriPattern: '/{resource}'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Jsonadm'
7 | '@action': 'get'
8 | '@format': 'html'
9 | httpMethods: ['GET']
10 | appendExceedingArguments: true
11 |
12 | -
13 | name: 'REST JSON Admin DELETE'
14 | uriPattern: '/{resource}'
15 | defaults:
16 | '@package': 'Aimeos.Shop'
17 | '@controller': 'Jsonadm'
18 | '@action': 'delete'
19 | '@format': 'html'
20 | httpMethods: ['DELETE']
21 | appendExceedingArguments: true
22 |
23 | -
24 | name: 'REST JSON Admin PATCH'
25 | uriPattern: '/{resource}'
26 | defaults:
27 | '@package': 'Aimeos.Shop'
28 | '@controller': 'Jsonadm'
29 | '@action': 'patch'
30 | '@format': 'html'
31 | httpMethods: ['PATCH']
32 | appendExceedingArguments: true
33 |
34 | -
35 | name: 'REST JSON Admin POST'
36 | uriPattern: '/{resource}'
37 | defaults:
38 | '@package': 'Aimeos.Shop'
39 | '@controller': 'Jsonadm'
40 | '@action': 'post'
41 | '@format': 'html'
42 | httpMethods: ['POST']
43 | appendExceedingArguments: true
44 |
45 | -
46 | name: 'REST JSON Admin PUT'
47 | uriPattern: '/{resource}'
48 | defaults:
49 | '@package': 'Aimeos.Shop'
50 | '@controller': 'Jsonadm'
51 | '@action': 'put'
52 | '@format': 'html'
53 | httpMethods: ['PUT']
54 | appendExceedingArguments: true
55 |
56 | -
57 | name: 'REST JSON Admin OPTIONS'
58 | uriPattern: '(/{resource})'
59 | defaults:
60 | '@package': 'Aimeos.Shop'
61 | '@controller': 'Jsonadm'
62 | '@action': 'options'
63 | '@format': 'html'
64 | 'resource': ''
65 | httpMethods: ['OPTIONS']
66 | appendExceedingArguments: true
67 |
--------------------------------------------------------------------------------
/Configuration/Routes.Jsonapi.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'REST JSON frontend GET'
3 | uriPattern: '/{resource}'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Jsonapi'
7 | '@action': 'get'
8 | '@format': 'html'
9 | httpMethods: ['GET']
10 | appendExceedingArguments: true
11 |
12 | -
13 | name: 'REST JSON frontend DELETE'
14 | uriPattern: '/{resource}'
15 | defaults:
16 | '@package': 'Aimeos.Shop'
17 | '@controller': 'Jsonapi'
18 | '@action': 'delete'
19 | '@format': 'html'
20 | httpMethods: ['DELETE']
21 | appendExceedingArguments: true
22 |
23 | -
24 | name: 'REST JSON frontend PATCH'
25 | uriPattern: '/{resource}'
26 | defaults:
27 | '@package': 'Aimeos.Shop'
28 | '@controller': 'Jsonapi'
29 | '@action': 'patch'
30 | '@format': 'html'
31 | httpMethods: ['PATCH']
32 | appendExceedingArguments: true
33 |
34 | -
35 | name: 'REST JSON frontend POST'
36 | uriPattern: '/{resource}'
37 | defaults:
38 | '@package': 'Aimeos.Shop'
39 | '@controller': 'Jsonapi'
40 | '@action': 'post'
41 | '@format': 'html'
42 | httpMethods: ['POST']
43 | appendExceedingArguments: true
44 |
45 | -
46 | name: 'REST JSON frontend PUT'
47 | uriPattern: '/{resource}'
48 | defaults:
49 | '@package': 'Aimeos.Shop'
50 | '@controller': 'Jsonapi'
51 | '@action': 'put'
52 | '@format': 'html'
53 | httpMethods: ['PUT']
54 | appendExceedingArguments: true
55 |
56 | -
57 | name: 'REST JSON frontend OPTIONS'
58 | uriPattern: '(/{resource})'
59 | defaults:
60 | '@package': 'Aimeos.Shop'
61 | '@controller': 'Jsonapi'
62 | '@action': 'options'
63 | '@format': 'html'
64 | 'resource': ''
65 | httpMethods: ['OPTIONS']
66 | appendExceedingArguments: true
67 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Base/Aimeos.php:
--------------------------------------------------------------------------------
1 | aimeos === null )
44 | {
45 | $extDirs = ( isset( $this->settings['flow']['extdir'] ) ? (array) $this->settings['flow']['extdir'] : array() );
46 | $this->aimeos = new \Aimeos\Bootstrap( $extDirs, false );
47 | }
48 |
49 | return $this->aimeos;
50 | }
51 |
52 |
53 | /**
54 | * Returns the version of the Aimeos package
55 | *
56 | * @return string Version string
57 | */
58 | public function getVersion()
59 | {
60 | if( ( $content = @file_get_contents( FLOW_PATH_ROOT . 'composer.lock' ) ) !== false
61 | && ( $content = json_decode( $content, true ) ) !== null && isset( $content['packages'] )
62 | ) {
63 | foreach( (array) $content['packages'] as $item )
64 | {
65 | if( $item['name'] === 'aimeos/aimeos-flow' ) {
66 | return $item['version'];
67 | }
68 | }
69 | }
70 | return '';
71 | }
72 |
73 |
74 | /**
75 | * Inject the settings
76 | *
77 | * @param array $settings
78 | * @return void
79 | */
80 | public function injectSettings( array $settings )
81 | {
82 | $this->settings = $settings;
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/Configuration/Routes.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'Admin index page'
3 | uriPattern: 'admin'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Admin'
7 | '@action': 'index'
8 | '@format': 'html'
9 | appendExceedingArguments: true
10 |
11 | -
12 | name: 'Jqadm'
13 | uriPattern: 'admin/{site}/jqadm'
14 | subRoutes:
15 | 'JqadmSubroutes':
16 | package: 'Aimeos.Shop'
17 | suffix: 'Jqadm'
18 |
19 | -
20 | name: 'Jsonadm'
21 | uriPattern: 'admin/{site}/jsonadm'
22 | subRoutes:
23 | 'JsonadmSubroutes':
24 | package: 'Aimeos.Shop'
25 | suffix: 'Jsonadm'
26 |
27 | -
28 | name: 'Jsonapi'
29 | uriPattern: 'jsonapi'
30 | subRoutes:
31 | 'JsonapiSubroutes':
32 | package: 'Aimeos.Shop'
33 | suffix: 'Jsonapi'
34 |
35 | -
36 | name: 'Account'
37 | uriPattern: 'myaccount'
38 | subRoutes:
39 | 'AccountSubroutes':
40 | package: 'Aimeos.Shop'
41 | suffix: 'Account'
42 |
43 | -
44 | name: 'Default'
45 | uriPattern: ''
46 | subRoutes:
47 | 'DefaultSubroutes':
48 | package: 'Aimeos.Shop'
49 | suffix: 'Default'
50 |
51 | -
52 | name: 'Update'
53 | uriPattern: ''
54 | subRoutes:
55 | 'UpdateSubroutes':
56 | package: 'Aimeos.Shop'
57 | suffix: 'Update'
58 |
59 |
60 | -
61 | name: 'Example terms and conditions page'
62 | uriPattern: 'terms'
63 | defaults:
64 | '@package': 'Aimeos.Shop'
65 | '@controller': 'Page'
66 | '@action': 'terms'
67 | '@format': 'html'
68 | appendExceedingArguments: true
69 |
70 | -
71 | name: 'Example privacy policy page'
72 | uriPattern: 'privacy'
73 | defaults:
74 | '@package': 'Aimeos.Shop'
75 | '@controller': 'Page'
76 | '@action': 'privacy'
77 | '@format': 'html'
78 | appendExceedingArguments: true
79 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "aimeos/aimeos-flow",
3 | "description": "Professional, full-featured and high performance Flow/NeosCMS e-commerce package for online shops and complex B2B projects",
4 | "keywords": ["aimeos", "flow", "neoscms", "e-commerce", "ecommerce", "B2B", "shop", "portal", "market place"],
5 | "homepage": "https://aimeos.org/Flow",
6 | "type": "typo3-flow-package",
7 | "license": "LGPL-3.0-or-later",
8 | "support": {
9 | "source": "https://github.com/aimeos/aimeos-flow",
10 | "issues": "https://github.com/aimeos/aimeos-flow/issues",
11 | "forum": "https://aimeos.org/help",
12 | "wiki": "https://aimeos.org/docs"
13 | },
14 | "minimum-stability": "dev",
15 | "prefer-stable": true,
16 | "require": {
17 | "neos/flow": "~4.0||~5.0",
18 | "neos/swiftmailer": "~6.0",
19 | "aimeos/aimeos-core": "dev-master",
20 | "aimeos/ai-swiftmailer": "dev-master",
21 | "aimeos/ai-gettext": "dev-master",
22 | "aimeos/ai-flow": "dev-master",
23 | "aimeos/ai-admin-jqadm": "dev-master",
24 | "aimeos/ai-admin-jsonadm": "dev-master",
25 | "aimeos/ai-client-jsonapi": "dev-master",
26 | "aimeos/ai-client-html": "dev-master",
27 | "aimeos/ai-controller-jobs": "dev-master",
28 | "zendframework/zend-diactoros": "~1.3"
29 | },
30 | "require-dev": {
31 | "php-coveralls/php-coveralls": "~2.0"
32 | },
33 | "autoload": {
34 | "psr-4": {
35 | "Aimeos\\Shop\\": "Classes/Aimeos/Shop",
36 | "Aimeos\\Flow\\": "Classes/Aimeos/Flow"
37 | }
38 | },
39 | "extra": {
40 | "installer-paths": {
41 | "Resources/Extensions/{$name}/": ["type:aimeos-extension"]
42 | }
43 | },
44 | "scripts": {
45 | "post-update-cmd": [
46 | "cp -r Resources/Extensions/ai-client-html/client/html/themes/* Resources/Public/themes/"
47 | ]
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/BasketController.php:
--------------------------------------------------------------------------------
1 | view->assign( 'output', $this->getOutput( 'basket/bulk' ) );
31 | }
32 |
33 |
34 | /**
35 | * Returns the output of the basket mini component
36 | *
37 | * @return string Rendered HTML for the body
38 | */
39 | public function miniComponentAction()
40 | {
41 | $this->view->assign( 'output', $this->getOutput( 'basket/mini' ) );
42 | $this->response->setHeader( 'Cache-Control', 'no-store' );
43 | }
44 |
45 |
46 | /**
47 | * Returns the output of the basket related component
48 | *
49 | * @return string Rendered HTML for the body
50 | */
51 | public function relatedComponentAction()
52 | {
53 | $this->view->assign( 'output', $this->getOutput( 'basket/related' ) );
54 | $this->response->setHeader( 'Cache-Control', 'no-store' );
55 | }
56 |
57 |
58 | /**
59 | * Returns the output of the basket standard component
60 | *
61 | * @return string Rendered HTML for the body
62 | */
63 | public function standardComponentAction()
64 | {
65 | $this->view->assign( 'output', $this->getOutput( 'basket/standard' ) );
66 | $this->response->setHeader( 'Cache-Control', 'no-store' );
67 | }
68 |
69 |
70 | /**
71 | * Content for MyAccount page
72 | *
73 | * @Flow\Session(autoStart = TRUE)
74 | */
75 | public function indexAction()
76 | {
77 | $this->view->assignMultiple( $this->get( 'basket-index' ) );
78 | $this->response->setHeader( 'Cache-Control', 'no-store' );
79 | }
80 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/AbstractController.php:
--------------------------------------------------------------------------------
1 | aimeos->get()->getCustomPaths( 'client/html/templates' );
57 | $context = $this->context->get( $this->request );
58 | $langid = $context->getLocale()->getLanguageId();
59 | $view = $this->viewContainer->create( $context, $this->uriBuilder, $tmplPaths, $this->request, $langid );
60 |
61 | $client = \Aimeos\Client\Html::create( $context, $clientName );
62 | $client->setView( $view );
63 | $client->process();
64 |
65 | $this->view->assign( 'aimeos_component_header', (string) $client->getHeader() );
66 |
67 | return $client->getBody();
68 | }
69 |
70 |
71 | /**
72 | * Returns the body and header output for the given page name
73 | *
74 | * @param string $name Page name as defined in the Settings.yaml file
75 | */
76 | protected function get( $name )
77 | {
78 | return $this->shop->get( $this->request, $name );
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Base/I18n.php:
--------------------------------------------------------------------------------
1 | aimeos->get()->getI18nPaths();
51 |
52 | foreach( $languageIds as $langid )
53 | {
54 | if( !isset( $this->i18n[$langid] ) )
55 | {
56 | $i18n = new \Aimeos\MW\Translation\Gettext( $i18nPaths, $langid );
57 |
58 | $apc = (bool) ( isset( $this->settings['flow']['apc']['enable'] ) ? $this->settings['flow']['apc']['enable'] : false );
59 | $prefix = (string) ( isset( $this->settings['flow']['apc']['prefix'] ) ? $this->settings['flow']['apc']['prefix'] : 'flow:' );
60 |
61 | if( $apc === true ) {
62 | $i18n = new \Aimeos\MW\Translation\Decorator\APC( $i18n, $prefix );
63 | }
64 |
65 | if( isset( $this->settings['i18n'][$langid] ) ) {
66 | $i18n = new \Aimeos\MW\Translation\Decorator\Memory( $i18n, $this->settings['i18n'][$langid] );
67 | }
68 |
69 | $this->i18n[$langid] = $i18n;
70 | }
71 | }
72 |
73 | return $this->i18n;
74 | }
75 |
76 |
77 | /**
78 | * Inject the settings
79 | *
80 | * @param array $settings
81 | * @return void
82 | */
83 | public function injectSettings( array $settings )
84 | {
85 | $this->settings = $settings;
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/Configuration/Routes.Jqadm.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'JQAdm file request'
3 | uriPattern: '/file/{type}'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Jqadm'
7 | '@action': 'file'
8 | appendExceedingArguments: true
9 |
10 | -
11 | name: 'JQAdm copy'
12 | uriPattern: '/copy/{resource}'
13 | defaults:
14 | '@package': 'Aimeos.Shop'
15 | '@controller': 'Jqadm'
16 | '@action': 'copy'
17 | '@format': 'html'
18 | httpMethods: ['GET', 'POST']
19 | appendExceedingArguments: true
20 |
21 | -
22 | name: 'JQAdm create'
23 | uriPattern: '/create/{resource}'
24 | defaults:
25 | '@package': 'Aimeos.Shop'
26 | '@controller': 'Jqadm'
27 | '@action': 'create'
28 | '@format': 'html'
29 | httpMethods: ['GET', 'POST']
30 | appendExceedingArguments: true
31 |
32 | -
33 | name: 'JQAdm delete'
34 | uriPattern: '/delete/{resource}'
35 | defaults:
36 | '@package': 'Aimeos.Shop'
37 | '@controller': 'Jqadm'
38 | '@action': 'delete'
39 | '@format': 'html'
40 | httpMethods: ['GET', 'POST']
41 | appendExceedingArguments: true
42 |
43 | -
44 | name: 'JQAdm export'
45 | uriPattern: '/export/{resource}'
46 | defaults:
47 | '@package': 'Aimeos.Shop'
48 | '@controller': 'Jqadm'
49 | '@action': 'export'
50 | '@format': 'html'
51 | httpMethods: ['GET']
52 | appendExceedingArguments: true
53 |
54 | -
55 | name: 'JQAdm get'
56 | uriPattern: '/get/{resource}'
57 | defaults:
58 | '@package': 'Aimeos.Shop'
59 | '@controller': 'Jqadm'
60 | '@action': 'get'
61 | '@format': 'html'
62 | httpMethods: ['GET']
63 | appendExceedingArguments: true
64 |
65 | -
66 | name: 'JQAdm save'
67 | uriPattern: '/save/{resource}'
68 | defaults:
69 | '@package': 'Aimeos.Shop'
70 | '@controller': 'Jqadm'
71 | '@action': 'save'
72 | '@format': 'html'
73 | httpMethods: ['POST']
74 | appendExceedingArguments: true
75 |
76 | -
77 | name: 'JQAdm search'
78 | uriPattern: '/search/{resource}'
79 | defaults:
80 | '@package': 'Aimeos.Shop'
81 | '@controller': 'Jqadm'
82 | '@action': 'search'
83 | '@format': 'html'
84 | httpMethods: ['GET', 'POST']
85 | appendExceedingArguments: true
86 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Base/Config.php:
--------------------------------------------------------------------------------
1 | settings['resource']['db']['host'] = $this->resource['host'];
51 | $this->settings['resource']['db']['database'] = $this->resource['dbname'];
52 | $this->settings['resource']['db']['username'] = $this->resource['user'];
53 | $this->settings['resource']['db']['password'] = $this->resource['password'];
54 |
55 | $configPaths = $this->aimeos->get()->getConfigPaths();
56 | $config = new \Aimeos\MW\Config\PHPArray( array(), $configPaths );
57 |
58 | $apc = (bool) ( isset( $this->settings['flow']['apc']['enable'] ) ? $this->settings['flow']['apc']['enable'] : false );
59 | $prefix = (string) ( isset( $this->settings['flow']['apc']['prefix'] ) ? $this->settings['flow']['apc']['prefix'] : 'flow:' );
60 |
61 | if( $apc === true ) {
62 | $config = new \Aimeos\MW\Config\Decorator\APC( $config, $prefix );
63 | }
64 |
65 | $config = new \Aimeos\MW\Config\Decorator\Memory( $config, $this->settings );
66 |
67 | if( isset( $this->settings[$type] ) ) {
68 | $config = new \Aimeos\MW\Config\Decorator\Memory( $config, $this->settings[$type] );
69 | }
70 |
71 | return $config;
72 | }
73 |
74 |
75 | /**
76 | * Inject the settings
77 | *
78 | * @param array $settings
79 | * @return void
80 | */
81 | public function injectSettings( array $settings )
82 | {
83 | $this->settings = $settings;
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/Resources/Private/Layouts/Default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Aimeos shop
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/.travis.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -ev
4 |
5 | cat composer.json | sed 's/^\}$/,\
6 | "minimum-stability": "dev",\
7 | "prefer-stable": true,\
8 | "extra": {\
9 | "installer-paths": {\
10 | "Packages\/Extensions\/{$name}\/": ["type:aimeos-extension"]\
11 | }\
12 | }\
13 | }/' > composer.json.new
14 | mv composer.json.new composer.json
15 |
16 | composer require aimeos/aimeos-flow:dev-master
17 | rm -rf Packages/Application/Aimeos.Shop
18 | mv ../aimeos-flow Packages/Application/Aimeos.Shop
19 | composer dump-autoload
20 |
21 | mysql -e "CREATE DATABASE flow; GRANT ALL ON flow.* TO 'aimeos'@'127.0.0.1' IDENTIFIED BY 'aimeos'"
22 |
23 | printf "
24 | Neos:
25 | Flow:
26 | persistence:
27 | backendOptions:
28 | host: '127.0.0.1'
29 | dbname: 'flow'
30 | user: 'aimeos'
31 | password: 'aimeos'
32 | http:
33 | baseUri: http://aimeos.org/
34 | Aimeos:
35 | Shop:
36 | flow:
37 | disableSites: 0
38 | " > Configuration/Testing/Settings.yaml
39 |
40 | printf "
41 | -
42 | name: 'Aimeos Extadm'
43 | uriPattern: '{site}/extadm'
44 | subRoutes:
45 | ExtadmShopRoutes:
46 | package: 'Aimeos.Shop'
47 | suffix: 'Extadm'
48 | -
49 | name: 'Aimeos Jqadm'
50 | uriPattern: '{site}/jqadm'
51 | subRoutes:
52 | JqadmShopRoutes:
53 | package: 'Aimeos.Shop'
54 | suffix: 'Jqadm'
55 | -
56 | name: 'Aimeos Jsonadm'
57 | uriPattern: '{site}/jsonadm'
58 | subRoutes:
59 | JsonadmShopRoutes:
60 | package: 'Aimeos.Shop'
61 | suffix: 'Jsonadm'
62 | -
63 | name: 'Aimeos Jsonapi'
64 | uriPattern: '{site}/jsonapi'
65 | subRoutes:
66 | JsonapiShopRoutes:
67 | package: 'Aimeos.Shop'
68 | suffix: 'Jsonapi'
69 | -
70 | name: 'Aimeos Account'
71 | uriPattern: '{site}/myaccount'
72 | subRoutes:
73 | AccountShopRoutes:
74 | package: 'Aimeos.Shop'
75 | suffix: 'Account'
76 | -
77 | name: 'Default'
78 | uriPattern: '{site}'
79 | subRoutes:
80 | 'DefaultSubroutes':
81 | package: 'Aimeos.Shop'
82 | suffix: 'Default'
83 | -
84 | name: 'Update'
85 | uriPattern: '{site}'
86 | subRoutes:
87 | 'UpdateSubroutes':
88 | package: 'Aimeos.Shop'
89 | suffix: 'Update'
90 | " > Configuration/Routes.yaml
91 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/CheckoutController.php:
--------------------------------------------------------------------------------
1 | view->assign( 'output', $this->getOutput( 'checkout/confirm' ) );
31 | $this->response->setHeader( 'Cache-Control', 'no-store' );
32 | }
33 |
34 |
35 | /**
36 | * Returns the output of the checkout standard component
37 | *
38 | * @return string Rendered HTML for the body
39 | */
40 | public function standardComponentAction()
41 | {
42 | $this->view->assign( 'output', $this->getOutput( 'checkout/standard' ) );
43 | $this->response->setHeader( 'Cache-Control', 'no-store' );
44 | }
45 |
46 |
47 | /**
48 | * Returns the output of the checkout update component
49 | *
50 | * @return string Rendered HTML for the body
51 | */
52 | public function updateComponentAction()
53 | {
54 | $this->view->assign( 'output', $this->getOutput( 'checkout/update' ) );
55 | $this->response->setHeader( 'Cache-Control', 'no-store' );
56 | }
57 |
58 |
59 | /**
60 | * Content for checkout standard page
61 | *
62 | * @Flow\Session(autoStart = TRUE)
63 | */
64 | public function indexAction()
65 | {
66 | $this->view->assignMultiple( $this->get( 'checkout-index' ) );
67 | $this->response->setHeader( 'Cache-Control', 'no-store' );
68 | }
69 |
70 |
71 | /**
72 | * Content for checkout confirm page
73 | *
74 | * @Flow\Session(autoStart = TRUE)
75 | */
76 | public function confirmAction()
77 | {
78 | $this->view->assignMultiple( $this->get( 'checkout-confirm' ) );
79 | $this->response->setHeader( 'Cache-Control', 'no-store' );
80 | }
81 |
82 |
83 | /**
84 | * Returns the view for the order update page.
85 | *
86 | * @return Response Response object containing the generated output
87 | */
88 | public function updateAction()
89 | {
90 | $this->view->assignMultiple( $this->get( 'checkout-update' ) );
91 | $this->response->setHeader( 'Cache-Control', 'no-store' );
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/Tests/Unit/Base/PageTest.php:
--------------------------------------------------------------------------------
1 | object = new \Aimeos\Shop\Base\Shop();
15 |
16 | $aimeos = new \Aimeos\Shop\Base\Aimeos();
17 |
18 | $uriBuilder = $this->getMockBuilder( '\Neos\Flow\Mvc\Routing\UriBuilder' )
19 | ->disableOriginalConstructor()
20 | ->getMock();
21 |
22 | $this->inject( $this->object, 'aimeos', $aimeos );
23 | $this->inject( $this->object, 'uriBuilder', $uriBuilder );
24 | }
25 |
26 |
27 | /**
28 | * @test
29 | */
30 | public function get()
31 | {
32 | $view = $this->getMockBuilder( '\Aimeos\Shop\Base\View' )
33 | ->setMethods( array( 'create' ) )
34 | ->disableOriginalConstructor()
35 | ->getMock();
36 |
37 | $mwView = new \Aimeos\MW\View\Standard();
38 |
39 | $view->expects( $this->once() )->method( 'create' )
40 | ->will( $this->returnValue( $mwView ) );
41 |
42 | $this->inject( $this->object, 'view', $view );
43 |
44 |
45 | $context = $this->getMockBuilder( '\Aimeos\Shop\Base\Context' )
46 | ->setMethods( array( 'get' ) )
47 | ->disableOriginalConstructor()
48 | ->getMock();
49 |
50 | $ctx = new \Aimeos\MShop\Context\Item\Standard();
51 | $ctx->setConfig( new \Aimeos\MW\Config\PHPArray() );
52 | $ctx->setLocale( new \Aimeos\MShop\Locale\Item\Standard( array( 'langid' => 'de' ) ) );
53 |
54 | $context->expects( $this->once() )->method( 'get' )
55 | ->will( $this->returnValue( $ctx ) );
56 |
57 | $this->inject( $this->object, 'context', $context );
58 |
59 |
60 | $settings = array(
61 | 'flow' => array( 'cache' => array( 'name' => 'None' ) ),
62 | 'page' => array(),
63 | );
64 | $this->inject( $this->object, 'settings', $settings );
65 |
66 |
67 | $request = $this->getMockBuilder( '\Neos\Flow\Mvc\ActionRequest' )
68 | ->setMethods( array( 'getArguments' ) )
69 | ->disableOriginalConstructor()
70 | ->getMock();
71 |
72 |
73 | $result = $this->object->get( $request, 'catalog/list' );
74 |
75 | $this->assertInternalType( 'array', $result );
76 | $this->assertArrayHasKey( 'aibody', $result );
77 | $this->assertArrayHasKey( 'aiheader', $result );
78 | }
79 |
80 |
81 | /**
82 | * @test
83 | */
84 | public function injectSettings()
85 | {
86 | $this->object->injectSettings( array( 'test' ) );
87 |
88 | $this->assertEquals( array( 'test' ), \PHPUnit\Framework\Assert::readAttribute( $this->object, 'settings' ) );
89 | }
90 | }
--------------------------------------------------------------------------------
/Tests/Unit/Base/ViewTest.php:
--------------------------------------------------------------------------------
1 | object = new \Aimeos\Shop\Base\View();
20 |
21 | $this->inject( $i18n, 'aimeos', $aimeos );
22 | $this->inject( $this->object, 'i18n', $i18n );
23 | $this->inject( $this->object, 'view', $view );
24 | $this->inject( $this->object, 'security', $security );
25 | }
26 |
27 |
28 | /**
29 | * @test
30 | */
31 | public function create()
32 | {
33 | $context = new \Aimeos\MShop\Context\Item\Standard();
34 | $context->setConfig( new \Aimeos\MW\Config\PHPArray() );
35 | $context->setSession( new \Aimeos\MW\Session\None() );
36 |
37 | $uriBuilder = $this->getMockBuilder('\Neos\Flow\Mvc\Routing\UriBuilder')
38 | ->disableOriginalConstructor()
39 | ->getMock();
40 |
41 | $view = $this->object->create( $context, $uriBuilder, array() );
42 |
43 | $this->assertInstanceOf( '\Aimeos\MW\View\Iface', $view );
44 | }
45 |
46 |
47 | /**
48 | * @test
49 | */
50 | public function createWithRequest()
51 | {
52 | $context = new \Aimeos\MShop\Context\Item\Standard();
53 | $context->setConfig( new \Aimeos\MW\Config\PHPArray() );
54 | $context->setSession( new \Aimeos\MW\Session\None() );
55 |
56 | $uriBuilder = $this->getMockBuilder( '\Neos\Flow\Mvc\Routing\UriBuilder' )
57 | ->disableOriginalConstructor()
58 | ->getMock();
59 |
60 | $httpRequest = new \Neos\Flow\Http\Request( array(), array(), array(), array() );
61 |
62 | $request = $this->getMockBuilder( '\Neos\Flow\Mvc\ActionRequest' )
63 | ->setMethods( array( 'getArguments', 'getControllerActionName', 'getHttpRequest' ) )
64 | ->disableOriginalConstructor()
65 | ->getMock();
66 |
67 | $request->expects( $this->exactly( 2 ) )->method( 'getArguments' )
68 | ->will( $this->returnValue( array( 'site' => 'unittest', 'locale' => 'de', 'currency' => 'EUR' ) ) );
69 |
70 | $request->expects( $this->once() )->method( 'getControllerActionName' )
71 | ->will( $this->returnValue( 'list' ) );
72 |
73 | $request->expects( $this->once() )->method( 'getHttpRequest' )
74 | ->will( $this->returnValue( $httpRequest ) );
75 |
76 | $view = $this->object->create( $context, $uriBuilder, array(), $request, 'de' );
77 |
78 | $this->assertInstanceOf( '\Aimeos\MW\View\Iface', $view );
79 | }
80 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Base/Locale.php:
--------------------------------------------------------------------------------
1 | locale === null )
46 | {
47 | $params = $request->getArguments();
48 |
49 | $site = ( isset( $params['site'] ) ? $params['site'] : 'default' );
50 | $lang = ( isset( $params['locale'] ) ? $params['locale'] : '' );
51 | $currency = ( isset( $params['currency'] ) ? $params['currency'] : '' );
52 |
53 | $disableSites = (bool) ( isset( $this->settings['flow']['disableSites'] ) ? $this->settings['flow']['disableSites'] : true );
54 |
55 | $localeManager = \Aimeos\MShop::create( $context, 'locale' );
56 | $this->locale = $localeManager->bootstrap( $site, $lang, $currency, $disableSites );
57 | }
58 |
59 | return $this->locale;
60 | }
61 |
62 |
63 | /**
64 | * Returns the locale item for the current request
65 | *
66 | * @param \Aimeos\MShop\Context\Item\Iface $context Context object
67 | * @param string $site Unique site code
68 | * @return \Aimeos\MShop\Locale\Item\Iface Locale item object
69 | */
70 | public function getBackend( \Aimeos\MShop\Context\Item\Iface $context, $site )
71 | {
72 | $localeManager = \Aimeos\MShop::create( $context, 'locale' );
73 |
74 | try {
75 | $localeItem = $localeManager->bootstrap( $site, '', '', false, null, true );
76 | } catch( \Aimeos\MShop\Exception $e ) {
77 | $localeItem = $localeManager->createItem();
78 | }
79 |
80 | return $localeItem->setCurrencyId( null )->setLanguageId( null );
81 | }
82 |
83 |
84 | /**
85 | * Inject the settings
86 | *
87 | * @param array $settings
88 | * @return void
89 | */
90 | public function injectSettings( array $settings )
91 | {
92 | $this->settings = $settings;
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/ViewHelper/TranslateViewHelper.php:
--------------------------------------------------------------------------------
1 | registerArgument( 'singular', 'string', 'Singular form of the text to translate' );
34 | $this->registerArgument( 'plural', 'string', 'Plural form of the text, used if $number is greater than one', false );
35 | $this->registerArgument( 'number', 'integer', 'Amount of things relevant for the plural form', false );
36 | $this->registerArgument( 'escape', 'boolean', 'If translated string should be escaped', false );
37 | $this->registerArgument( 'domain', 'string', 'Translation domain from core or an extension', false );
38 | $this->registerArgument( 'arguments', 'array', 'Arguments to be replaced in the resulting string', false );
39 | }
40 |
41 |
42 | /**
43 | * Returns the translated string for the given phrase
44 | *
45 | * @return mixed Translated string
46 | */
47 | public function render()
48 | {
49 | $iface = '\Aimeos\MW\View\Iface';
50 | $view = $this->templateVariableContainer->get( '_aimeos_view' );
51 |
52 | if( !is_object( $view ) || !( $view instanceof $iface ) ) {
53 | throw new Exception( 'Aimeos view object is missing' );
54 | }
55 |
56 | if( !isset( $this->arguments['singular'] ) ) {
57 | throw new Exception( 'Attribute "singular" missing for Aimeos translate view helper' );
58 | }
59 |
60 | $singular = $this->arguments['singular'];
61 | $plural = ( isset( $this->arguments['plural'] ) ? $this->arguments['plural'] : '' );
62 | $number = ( isset( $this->arguments['number'] ) ? $this->arguments['number'] : 1 );
63 | $escape = ( isset( $this->arguments['escape'] ) ? $this->arguments['escape'] : true );
64 | $domain = ( isset( $this->arguments['domain'] ) ? $this->arguments['domain'] : 'client' );
65 | $values = ( isset( $this->arguments['arguments'] ) ? $this->arguments['arguments'] : array() );
66 |
67 | $string = vsprintf( $view->translate( $domain, $singular, $plural, $number ), (array) $values );
68 |
69 | if( $escape === false ) {
70 | return $string;
71 | }
72 |
73 | return $view->encoder()->html( $string );
74 | }
75 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Base/Shop.php:
--------------------------------------------------------------------------------
1 | uriBuilder->setRequest( $request );
65 |
66 | $tmplPaths = $this->aimeos->get()->getCustomPaths( 'client/html/templates' );
67 | $pagesConfig = $this->settings['page'];
68 | $result = array( 'aibody' => array(), 'aiheader' => array() );
69 |
70 | $context = $this->context->get( $request );
71 | $langid = $context->getLocale()->getLanguageId();
72 | $view = $this->view->create( $context, $this->uriBuilder, $tmplPaths, $request, $langid );
73 | $context->setView( $view );
74 |
75 | if( isset( $pagesConfig[$pageName] ) )
76 | {
77 | foreach( (array) $pagesConfig[$pageName] as $clientName )
78 | {
79 | $client = \Aimeos\Client\Html::create( $context, $clientName );
80 | $client->setView( clone $view );
81 | $client->process();
82 |
83 | $varName = str_replace( '/', '_', $clientName );
84 |
85 | $result['aibody'][$varName] = $client->getBody();
86 | $result['aiheader'][$varName] = $client->getHeader();
87 | }
88 | }
89 |
90 | return $result;
91 | }
92 |
93 |
94 | /**
95 | * Inject the settings
96 | *
97 | * @param array $settings
98 | * @return void
99 | */
100 | public function injectSettings( array $settings )
101 | {
102 | $this->settings = $settings;
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/Configuration/Routes.Default.yaml:
--------------------------------------------------------------------------------
1 | -
2 | name: 'Basket page'
3 | uriPattern: 'basket'
4 | defaults:
5 | '@package': 'Aimeos.Shop'
6 | '@controller': 'Basket'
7 | '@action': 'index'
8 | '@format': 'html'
9 | appendExceedingArguments: true
10 |
11 | -
12 | name: 'Catalog count XHR'
13 | uriPattern: 'count'
14 | defaults:
15 | '@package': 'Aimeos.Shop'
16 | '@controller': 'Catalog'
17 | '@action': 'count'
18 | '@format': 'html'
19 | appendExceedingArguments: true
20 |
21 | -
22 | name: 'Catalog detail page'
23 | uriPattern: 'd/{d_name}(/{d_pos})'
24 | defaults:
25 | '@package': 'Aimeos.Shop'
26 | '@controller': 'Catalog'
27 | '@action': 'detail'
28 | '@format': 'html'
29 | 'd_pos': '0'
30 | appendExceedingArguments: true
31 |
32 | -
33 | name: 'Catalog list page'
34 | uriPattern: 'list'
35 | defaults:
36 | '@package': 'Aimeos.Shop'
37 | '@controller': 'Catalog'
38 | '@action': 'list'
39 | '@format': 'html'
40 | appendExceedingArguments: true
41 |
42 | -
43 | name: 'Catalog session pinned products'
44 | uriPattern: 'd/pin/{pin_action}/{pin_id}(/{d_name})'
45 | defaults:
46 | '@package': 'Aimeos.Shop'
47 | '@controller': 'Catalog'
48 | '@action': 'detail'
49 | '@format': 'html'
50 | 'd_name': ''
51 | appendExceedingArguments: true
52 |
53 | -
54 | name: 'Catalog stock XHR'
55 | uriPattern: 'stock'
56 | defaults:
57 | '@package': 'Aimeos.Shop'
58 | '@controller': 'Catalog'
59 | '@action': 'stock'
60 | '@format': 'html'
61 | appendExceedingArguments: true
62 |
63 | -
64 | name: 'Catalog suggest XHR'
65 | uriPattern: 'suggest'
66 | defaults:
67 | '@package': 'Aimeos.Shop'
68 | '@controller': 'Catalog'
69 | '@action': 'suggest'
70 | '@format': 'html'
71 | appendExceedingArguments: true
72 |
73 | -
74 | name: 'Catalog tree page'
75 | uriPattern: 'c/{f_name}/{f_catid}'
76 | defaults:
77 | '@package': 'Aimeos.Shop'
78 | '@controller': 'Catalog'
79 | '@action': 'tree'
80 | '@format': 'html'
81 | appendExceedingArguments: true
82 |
83 | -
84 | name: 'Checkout page'
85 | uriPattern: 'checkout(/{c_step})'
86 | defaults:
87 | '@package': 'Aimeos.Shop'
88 | '@controller': 'Checkout'
89 | '@action': 'index'
90 | '@format': 'html'
91 | 'c_step': ''
92 | appendExceedingArguments: true
93 |
94 | -
95 | name: 'Checkout confirm page'
96 | uriPattern: 'confirm(/{code})'
97 | defaults:
98 | '@package': 'Aimeos.Shop'
99 | '@controller': 'Checkout'
100 | '@action': 'confirm'
101 | '@format': 'html'
102 | 'code': ''
103 | appendExceedingArguments: true
104 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/AccountController.php:
--------------------------------------------------------------------------------
1 | view->assign( 'output', $this->getOutput( 'account/favorite' ) );
31 | }
32 |
33 |
34 | /**
35 | * Returns the output of the account history component
36 | *
37 | * @return string Rendered HTML for the body
38 | */
39 | public function historyComponentAction()
40 | {
41 | $this->view->assign( 'output', $this->getOutput( 'account/history' ) );
42 | }
43 |
44 |
45 | /**
46 | * Returns the output of the account profile component
47 | *
48 | * @return string Rendered HTML for the body
49 | */
50 | public function profileComponentAction()
51 | {
52 | $this->view->assign( 'output', $this->getOutput( 'account/profile' ) );
53 | }
54 |
55 |
56 | /**
57 | * Returns the output of the account watch component
58 | *
59 | * @return string Rendered HTML for the body
60 | */
61 | public function watchComponentAction()
62 | {
63 | $this->view->assign( 'output', $this->getOutput( 'account/watch' ) );
64 | }
65 |
66 |
67 | /**
68 | * Content for MyAccount page
69 | *
70 | * @Flow\Session(autoStart = TRUE)
71 | */
72 | public function indexAction()
73 | {
74 | $this->view->assignMultiple( $this->get( 'account-index' ) );
75 | }
76 |
77 |
78 | /**
79 | * Content for MyAccount download page
80 | *
81 | * @Flow\Session(autoStart = TRUE)
82 | */
83 | public function downloadAction()
84 | {
85 | $context = $this->context->get( $this->request );
86 | $langid = $context->getLocale()->getLanguageId();
87 |
88 | $view = $this->viewContainer->create( $context, $this->uriBuilder, array(), $this->request, $langid );
89 | $context->setView( $view );
90 |
91 | $client = \Aimeos\Client\Html::create( $context, 'account/download' );
92 | $client->setView( $view );
93 | $client->process();
94 |
95 | $response = $view->response();
96 | $this->response->setStatus( $response->getStatusCode() );
97 |
98 | foreach( $response->getHeaders() as $key => $value ) {
99 | $this->response->setHeader( $key, $value );
100 | }
101 |
102 | return $this->response;
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/Tests/Unit/Controller/BasketControllerTest.php:
--------------------------------------------------------------------------------
1 | object = $this->getMockBuilder( '\Aimeos\Shop\Controller\BasketController' )
17 | ->setMethods( array( 'getOutput', 'get' ) )
18 | ->disableOriginalConstructor()
19 | ->getMock();
20 |
21 | $this->view = $this->getMockBuilder( '\Neos\Flow\Mvc\View\JsonView' )
22 | ->disableOriginalConstructor()
23 | ->getMock();
24 |
25 | $this->response = $this->getMockBuilder( '\Neos\Flow\Http\Response' )
26 | ->disableOriginalConstructor()
27 | ->getMock();
28 |
29 | $this->inject( $this->object, 'view', $this->view );
30 | $this->inject( $this->object, 'response', $this->response );
31 | }
32 |
33 |
34 | /**
35 | * @test
36 | */
37 | public function indexAction()
38 | {
39 | $expected = array( 'aibody' => 'body', 'aiheader' => 'header' );
40 |
41 | $this->object->expects( $this->once() )->method( 'get' )
42 | ->will( $this->returnValue( $expected ) );
43 |
44 | $this->view->expects( $this->once() )->method( 'assignMultiple' )
45 | ->with( $this->equalTo( $expected ) );
46 |
47 | $this->response->expects( $this->once() )->method( 'setHeader' );
48 |
49 | $this->object->indexAction();
50 | }
51 |
52 |
53 | /**
54 | * @test
55 | */
56 | public function miniComponentAction()
57 | {
58 | $this->object->expects( $this->once() )->method( 'getOutput' )
59 | ->will( $this->returnValue( 'body' ) );
60 |
61 | $this->view->expects( $this->once() )->method( 'assign' )
62 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
63 |
64 | $this->response->expects( $this->once() )->method( 'setHeader' );
65 |
66 | $this->object->miniComponentAction();
67 | }
68 |
69 |
70 | /**
71 | * @test
72 | */
73 | public function relatedComponentAction()
74 | {
75 | $this->object->expects( $this->once() )->method( 'getOutput' )
76 | ->will( $this->returnValue( 'body' ) );
77 |
78 | $this->view->expects( $this->once() )->method( 'assign' )
79 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
80 |
81 | $this->response->expects( $this->once() )->method( 'setHeader' );
82 |
83 | $this->object->relatedComponentAction();
84 | }
85 |
86 |
87 | /**
88 | * @test
89 | */
90 | public function standardComponentAction()
91 | {
92 | $this->object->expects( $this->once() )->method( 'getOutput' )
93 | ->will( $this->returnValue( 'body' ) );
94 |
95 | $this->view->expects( $this->once() )->method( 'assign' )
96 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
97 |
98 | $this->response->expects( $this->once() )->method( 'setHeader' );
99 |
100 | $this->object->standardComponentAction();
101 | }
102 | }
--------------------------------------------------------------------------------
/Resources/Public/themes/elegance/email.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Shared CSS between website and e-mails
3 | *
4 | * @license LGPLv3, http://opensource.org/licenses/LGPL-3.0
5 | * @copyright Aimeos (aimeos.org), 2014
6 | */
7 |
8 | a {
9 | color: #B0A060;
10 | }
11 |
12 | .logo img {
13 | max-width: 300px;
14 | margin: auto;
15 | }
16 |
17 |
18 | li.attr-item {
19 | list-style: none;
20 | padding: 0;
21 | margin: 0;
22 | }
23 |
24 |
25 | /* Account creation */
26 |
27 | .account-login .btn-primary tr {
28 | background: #ba9a5a;
29 | color: #ffffff;
30 | }
31 |
32 |
33 | /* Common summary */
34 | .common-summary .item {
35 | vertical-align: top;
36 | }
37 |
38 | .common-summary .content {
39 | padding: 0.5em;
40 | margin: 10px;
41 | }
42 |
43 | .common-summary .item h3 {
44 | border-bottom: solid 1px #B0A060;
45 | padding: 0.5em;
46 | margin: 10px;
47 | }
48 |
49 | .common-summary .item h4 {
50 | vertical-align: middle;
51 | display: inline-block;
52 | font-size: 1em;
53 | margin: 0.5em 0;
54 | padding: 0;
55 | color: #555;
56 | }
57 |
58 | .common-summary .item li {
59 | vertical-align: top;
60 | padding: 0;
61 | }
62 |
63 | .common-summary .item .name {
64 | padding: 0.25em 0;
65 | display: block;
66 | color: #555;
67 | }
68 |
69 | .common-summary .item .value {
70 | display: block;
71 | }
72 |
73 | .common-summary .item .attr-list {
74 | list-style: none;
75 | padding: 0;
76 | margin: 0;
77 | margin-bottom: 0.5;
78 | }
79 |
80 | .basket {
81 | padding: 10px !important;
82 | }
83 |
84 | .basket th,
85 | .basket td {
86 | vertical-align: middle;
87 | padding: 0.5em;
88 | }
89 |
90 | .basket .header {
91 | font-weight: bold;
92 | background-color: #F0F0F0;
93 | border-bottom: 1px solid #D0D0D0;
94 | color: #555;
95 | }
96 |
97 | .basket .body {
98 | border-bottom: 1px solid #D0D0D0;
99 | }
100 |
101 | .basket th.label {
102 | text-align: left;
103 | }
104 |
105 | .basket td.quantity {
106 | white-space: nowrap;
107 | text-align: center;
108 | }
109 |
110 | .basket td.price {
111 | text-align: right;
112 | white-space: nowrap;
113 | }
114 |
115 | .basket .product .product-image {
116 | max-height: 150px;
117 | }
118 |
119 | .basket .product .product-name {
120 | margin: 0.5em 0;
121 | display: block;
122 | }
123 |
124 | .basket .product .code,
125 | .basket .product .timeframe {
126 | margin: 0.5em;
127 | }
128 |
129 | .basket .product .attr-list {
130 | vertical-align: top;
131 | color: #555;
132 | margin: 0.5em;
133 | padding: 0;
134 | }
135 |
136 | .basket .product li.attr-item {
137 | display: inline;
138 | }
139 |
140 | .basket .product li.attr-item:not(:last-of-type) .value:after {
141 | content: ",";
142 | }
143 |
144 | .basket .footer {
145 | vertical-align: bottom;
146 | }
147 |
148 | .basket .subtotal {
149 | font-weight: bold;
150 | color: #555;
151 | }
152 |
153 | .basket .total {
154 | border-top: 1px solid #D0D0D0;
155 | background-color: #F0F0F0;
156 | font-weight: bold;
157 | color: #555;
158 | }
159 |
--------------------------------------------------------------------------------
/Tests/Unit/Controller/AccountControllerTest.php:
--------------------------------------------------------------------------------
1 | object = $this->getMockBuilder( '\Aimeos\Shop\Controller\AccountController' )
17 | ->setMethods( array( 'getOutput', 'get' ) )
18 | ->disableOriginalConstructor()
19 | ->getMock();
20 |
21 | $this->view = $this->getMockBuilder( '\Neos\Flow\Mvc\View\JsonView' )
22 | ->disableOriginalConstructor()
23 | ->getMock();
24 |
25 | $this->response = $this->getMockBuilder( '\Neos\Flow\Http\Response' )
26 | ->disableOriginalConstructor()
27 | ->getMock();
28 |
29 | $this->inject( $this->object, 'view', $this->view );
30 | $this->inject( $this->object, 'response', $this->response );
31 | }
32 |
33 |
34 | /**
35 | * @test
36 | */
37 | public function indexAction()
38 | {
39 | $expected = array( 'aibody' => 'body', 'aiheader' => 'header' );
40 |
41 | $this->object->expects( $this->once() )->method( 'get' )
42 | ->will( $this->returnValue( $expected ) );
43 |
44 | $this->view->expects( $this->once() )->method( 'assignMultiple' )
45 | ->with( $this->equalTo( $expected ) );
46 |
47 | $this->object->indexAction();
48 | }
49 |
50 |
51 | /**
52 | * @test
53 | */
54 | public function favoriteComponentAction()
55 | {
56 | $this->object->expects( $this->once() )->method( 'getOutput' )
57 | ->will( $this->returnValue( 'body' ) );
58 |
59 | $this->view->expects( $this->once() )->method( 'assign' )
60 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
61 |
62 | $this->object->favoriteComponentAction();
63 | }
64 |
65 |
66 | /**
67 | * @test
68 | */
69 | public function historyComponentAction()
70 | {
71 | $this->object->expects( $this->once() )->method( 'getOutput' )
72 | ->will( $this->returnValue( 'body' ) );
73 |
74 | $this->view->expects( $this->once() )->method( 'assign' )
75 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
76 |
77 | $this->object->historyComponentAction();
78 | }
79 |
80 |
81 | /**
82 | * @test
83 | */
84 | public function profileComponentAction()
85 | {
86 | $this->object->expects( $this->once() )->method( 'getOutput' )
87 | ->will( $this->returnValue( 'body' ) );
88 |
89 | $this->view->expects( $this->once() )->method( 'assign' )
90 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
91 |
92 | $this->object->profileComponentAction();
93 | }
94 |
95 |
96 | /**
97 | * @test
98 | */
99 | public function watchComponentAction()
100 | {
101 | $this->object->expects( $this->once() )->method( 'getOutput' )
102 | ->will( $this->returnValue( 'body' ) );
103 |
104 | $this->view->expects( $this->once() )->method( 'assign' )
105 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
106 |
107 | $this->object->watchComponentAction();
108 | }
109 | }
--------------------------------------------------------------------------------
/Tests/Functional/Controller/JsonapiControllerTest.php:
--------------------------------------------------------------------------------
1 | browser->request( 'http://localhost/unittest/jsonapi', 'OPTIONS' );
13 | $json = json_decode( $response->getContent(), true );
14 |
15 | $this->assertNotNull( $json );
16 | $this->assertEquals( 200, $response->getStatusCode() );
17 | $this->assertArrayHasKey( 'resources', $json['meta'] );
18 | $this->assertGreaterThan( 1, count( $json['meta']['resources'] ) );
19 | }
20 |
21 |
22 | public function testGetAction()
23 | {
24 | $params = ['filter' => ['f_search' => 'Cafe Noire Cap']];
25 | $response = $this->browser->request( 'http://localhost/unittest/jsonapi/product', 'GET', $params );
26 | $json = json_decode( $response->getContent(), true );
27 |
28 | $this->assertNotNull( $json );
29 | $this->assertEquals( 200, $response->getStatusCode() );
30 | $this->assertEquals( 2, $json['meta']['total'] );
31 | $this->assertEquals( 2, count( $json['data'] ) );
32 | $this->assertArrayHasKey( 'id', $json['data'][0] );
33 | $this->assertEquals( 'CNC', $json['data'][0]['attributes']['product.code'] );
34 |
35 | $id = $json['data'][0]['id'];
36 |
37 |
38 | $response = $this->browser->request( 'http://localhost/unittest/jsonapi/product', 'GET', ['id' => $id] );
39 | $json = json_decode( $response->getContent(), true );
40 |
41 | $this->assertNotNull( $json );
42 | $this->assertEquals( 200, $response->getStatusCode() );
43 | $this->assertEquals( 1, $json['meta']['total'] );
44 | $this->assertArrayHasKey( 'id', $json['data'] );
45 | $this->assertEquals( 'CNC', $json['data']['attributes']['product.code'] );
46 | }
47 |
48 |
49 | /*
50 | * @Flow\Session(autoStart = TRUE)
51 | */
52 | public function testPostAction()
53 | {
54 | // get CNC product
55 | $params = ['filter' => ['f_search' => 'Cafe Noire Cap', 'f_listtype' => 'unittype19']];
56 | $response = $this->browser->request( 'http://localhost/unittest/jsonapi/product', 'GET', $params );
57 | $json = json_decode( $response->getContent(), true );
58 | $this->assertEquals( 'CNC', $json['data'][0]['attributes']['product.code'] );
59 |
60 | // add CNC product to basket
61 | $params = ['id' => 'default', 'related' => 'product'];
62 | $content = json_encode( ['data' => ['attributes' => ['product.id' => $json['data'][0]['id']]]] );
63 | $response = $this->browser->request( 'http://localhost/unittest/jsonapi/basket', 'POST', $params, [], [], $content );
64 | $json = json_decode( $response->getContent(), true );
65 |
66 | $this->assertEquals( 201, $response->getStatusCode() );
67 | $this->assertEquals( 'CNC', $json['included'][0]['attributes']['order.base.product.prodcode'] );
68 | }
69 |
70 |
71 | public function testPutAction()
72 | {
73 | $response = $this->browser->request( 'http://localhost/unittest/jsonapi/basket', 'PUT' );
74 | $json = json_decode( $response->getContent(), true );
75 | $this->assertArrayHasKey( 'errors', $json );
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/Configuration/NodeTypes.yaml:
--------------------------------------------------------------------------------
1 | 'Aimeos.Shop:Plugin':
2 | superTypes: ['Neos.Neos:Plugin']
3 | ui:
4 | label: 'Aimeos web shop'
5 | group: 'plugins'
6 | options:
7 | pluginViews:
8 | 'AccountFavorite':
9 | label: 'Aimeos Account Favorite'
10 | controllerActions:
11 | 'Aimeos\Shop\Controller\AccountController': ['favoriteComponent']
12 | 'AccountHistory':
13 | label: 'Aimeos Account History'
14 | controllerActions:
15 | 'Aimeos\Shop\Controller\AccountController': ['historyComponent']
16 | 'AccountWatch':
17 | label: 'Aimeos Account Watch'
18 | controllerActions:
19 | 'Aimeos\Shop\Controller\AccountController': ['watchComponent']
20 |
21 | 'BasketMini':
22 | label: 'Aimeos Basket Small'
23 | controllerActions:
24 | 'Aimeos\Shop\Controller\BasketController': ['miniComponent']
25 | 'BasketRelated':
26 | label: 'Aimeos Basket Related'
27 | controllerActions:
28 | 'Aimeos\Shop\Controller\BasketController': ['relatedComponent']
29 | 'BasketStandard':
30 | label: 'Aimeos Basket Standard'
31 | controllerActions:
32 | 'Aimeos\Shop\Controller\BasketController': ['standardComponent']
33 |
34 | 'CatalogCount':
35 | label: 'Aimeos Catalog Count JSON'
36 | controllerActions:
37 | 'Aimeos\Shop\Controller\CatalogController': ['countComponent']
38 | 'CatalogDetail':
39 | label: 'Aimeos Catalog Detail'
40 | controllerActions:
41 | 'Aimeos\Shop\Controller\CatalogController': ['detailComponent']
42 | 'CatalogFilter':
43 | label: 'Aimeos Catalog Filter'
44 | controllerActions:
45 | 'Aimeos\Shop\Controller\CatalogController': ['filterComponent']
46 | 'CatalogList':
47 | label: 'Aimeos Catalog List'
48 | controllerActions:
49 | 'Aimeos\Shop\Controller\CatalogController': ['listComponent']
50 | 'CatalogSession':
51 | label: 'Aimeos Catalog Session'
52 | controllerActions:
53 | 'Aimeos\Shop\Controller\CatalogController': ['sessionComponent']
54 | 'CatalogStage':
55 | label: 'Aimeos Catalog Stage'
56 | controllerActions:
57 | 'Aimeos\Shop\Controller\CatalogController': ['stageComponent']
58 | 'CatalogStock':
59 | label: 'Aimeos Catalog Stock JS'
60 | controllerActions:
61 | 'Aimeos\Shop\Controller\CatalogController': ['stockComponent']
62 | 'CatalogSuggest':
63 | label: 'Aimeos Catalog Suggest JSON'
64 | controllerActions:
65 | 'Aimeos\Shop\Controller\CatalogController': ['suggestComponent']
66 |
67 | 'CheckoutConfirm':
68 | label: 'Aimeos Checkout Confirm'
69 | controllerActions:
70 | 'Aimeos\Shop\Controller\CheckoutController': ['confirmComponent']
71 | 'CheckoutStandard':
72 | label: 'Aimeos Checkout Standard'
73 | controllerActions:
74 | 'Aimeos\Shop\Controller\CheckoutController': ['standardComponent']
75 | 'CheckoutUpdate':
76 | label: 'Aimeos Checkout Update'
77 | controllerActions:
78 | 'Aimeos\Shop\Controller\CheckoutController': ['updateComponent']
79 |
80 | 'LocaleSelect':
81 | label: 'Aimeos Locale Selector'
82 | controllerActions:
83 | 'Aimeos\Shop\Controller\LocaleController': ['selectComponent']
84 |
--------------------------------------------------------------------------------
/Tests/Functional/Controller/JqadmControllerTest.php:
--------------------------------------------------------------------------------
1 | browser->request( 'http://localhost/unittest/jqadm/file/css', 'GET' );
13 |
14 | $this->assertEquals( 200, $response->getStatusCode() );
15 | $this->assertContains( '.aimeos', $response->getContent() );
16 | }
17 |
18 |
19 | public function testFileActionJs()
20 | {
21 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/file/js', 'GET' );
22 |
23 | $this->assertEquals( 200, $response->getStatusCode() );
24 | $this->assertContains( 'Aimeos = {', $response->getContent() );
25 | }
26 |
27 |
28 | /*
29 | * @Flow\Session(autoStart = TRUE)
30 | */
31 | public function testCopyAction()
32 | {
33 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/copy/product?id=0', 'GET' );
34 |
35 | $this->assertEquals( 200, $response->getStatusCode() );
36 | $this->assertContains( 'item-product', $response->getContent() );
37 | }
38 |
39 |
40 | /*
41 | * @Flow\Session(autoStart = TRUE)
42 | */
43 | public function testCreateAction()
44 | {
45 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/create/product', 'GET' );
46 |
47 | $this->assertEquals( 200, $response->getStatusCode() );
48 | $this->assertContains( 'item-product', $response->getContent() );
49 | }
50 |
51 |
52 | /*
53 | * @Flow\Session(autoStart = TRUE)
54 | */
55 | public function testDeleteAction()
56 | {
57 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/delete/product?id=0', 'GET' );
58 |
59 | $this->assertEquals( 302, $response->getStatusCode() );
60 | }
61 |
62 |
63 | /*
64 | * @Flow\Session(autoStart = TRUE)
65 | */
66 | public function testExportAction()
67 | {
68 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/export/order', 'GET' );
69 |
70 | $this->assertEquals( 200, $response->getStatusCode() );
71 | $this->assertContains( 'list-items', $response->getContent() );
72 | }
73 |
74 |
75 | /*
76 | * @Flow\Session(autoStart = TRUE)
77 | */
78 | public function testGetAction()
79 | {
80 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/get/product?id=0', 'GET' );
81 |
82 | $this->assertEquals( 200, $response->getStatusCode() );
83 | $this->assertContains( 'item-product', $response->getContent() );
84 | }
85 |
86 |
87 | /*
88 | * @Flow\Session(autoStart = TRUE)
89 | */
90 | public function testSaveAction()
91 | {
92 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/save/product', 'POST' );
93 |
94 | $this->assertEquals( 200, $response->getStatusCode() );
95 | $this->assertContains( 'item-product', $response->getContent() );
96 | }
97 |
98 |
99 | /*
100 | * @Flow\Session(autoStart = TRUE)
101 | */
102 | public function testSearchAction()
103 | {
104 | $response = $this->browser->request( 'http://localhost/unittest/jqadm/search/product', 'GET' );
105 |
106 | $this->assertEquals( 200, $response->getStatusCode() );
107 | $this->assertContains( 'list-items', $response->getContent() );
108 | }
109 |
110 |
111 | public function testSearchActionSite()
112 | {
113 | $response = $this->browser->request( 'http://localhost/invalid/jqadm/search/product', 'GET' );
114 |
115 | $this->assertEquals( 500, $response->getStatusCode() );
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/Resources/Private/Templates/Jqadm/Index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Aimeos administration interface
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 | {content}
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Tests/Unit/Controller/CheckoutControllerTest.php:
--------------------------------------------------------------------------------
1 | object = $this->getMockBuilder( '\Aimeos\Shop\Controller\CheckoutController' )
17 | ->setMethods( array( 'getOutput', 'get' ) )
18 | ->disableOriginalConstructor()
19 | ->getMock();
20 |
21 | $this->view = $this->getMockBuilder( '\Neos\Flow\Mvc\View\JsonView' )
22 | ->disableOriginalConstructor()
23 | ->getMock();
24 |
25 | $this->response = $this->getMockBuilder( '\Neos\Flow\Http\Response' )
26 | ->disableOriginalConstructor()
27 | ->getMock();
28 |
29 | $this->inject( $this->object, 'view', $this->view );
30 | $this->inject( $this->object, 'response', $this->response );
31 | }
32 |
33 |
34 | /**
35 | * @test
36 | */
37 | public function indexAction()
38 | {
39 | $expected = array( 'aibody' => 'body', 'aiheader' => 'header' );
40 |
41 | $this->object->expects( $this->once() )->method( 'get' )
42 | ->will( $this->returnValue( $expected ) );
43 |
44 | $this->view->expects( $this->once() )->method( 'assignMultiple' )
45 | ->with( $this->equalTo( $expected ) );
46 |
47 | $this->response->expects( $this->once() )->method( 'setHeader' );
48 |
49 | $this->object->indexAction();
50 | }
51 |
52 |
53 | /**
54 | * @test
55 | */
56 | public function confirmAction()
57 | {
58 | $expected = array( 'aibody' => 'body', 'aiheader' => 'header' );
59 |
60 | $this->object->expects( $this->once() )->method( 'get' )
61 | ->will( $this->returnValue( $expected ) );
62 |
63 | $this->view->expects( $this->once() )->method( 'assignMultiple' )
64 | ->with( $this->equalTo( $expected ) );
65 |
66 | $this->response->expects( $this->once() )->method( 'setHeader' );
67 |
68 | $this->object->confirmAction();
69 | }
70 |
71 |
72 | /**
73 | * @test
74 | */
75 | public function updateAction()
76 | {
77 | $expected = array( 'aibody' => 'body', 'aiheader' => 'header' );
78 |
79 | $this->object->expects( $this->once() )->method( 'get' )
80 | ->will( $this->returnValue( $expected ) );
81 |
82 | $this->view->expects( $this->once() )->method( 'assignMultiple' )
83 | ->with( $this->equalTo( $expected ) );
84 |
85 | $this->response->expects( $this->once() )->method( 'setHeader' );
86 |
87 | $this->object->updateAction();
88 | }
89 |
90 |
91 | /**
92 | * @test
93 | */
94 | public function confirmComponentAction()
95 | {
96 | $this->object->expects( $this->once() )->method( 'getOutput' )
97 | ->will( $this->returnValue( 'body' ) );
98 |
99 | $this->view->expects( $this->once() )->method( 'assign' )
100 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
101 |
102 | $this->response->expects( $this->once() )->method( 'setHeader' );
103 |
104 | $this->object->confirmComponentAction();
105 | }
106 |
107 |
108 | /**
109 | * @test
110 | */
111 | public function standardComponentAction()
112 | {
113 | $this->object->expects( $this->once() )->method( 'getOutput' )
114 | ->will( $this->returnValue( 'body' ) );
115 |
116 | $this->view->expects( $this->once() )->method( 'assign' )
117 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
118 |
119 | $this->response->expects( $this->once() )->method( 'setHeader' );
120 |
121 | $this->object->standardComponentAction();
122 | }
123 |
124 |
125 | /**
126 | * @test
127 | */
128 | public function updateComponentAction()
129 | {
130 | $this->object->expects( $this->once() )->method( 'getOutput' )
131 | ->will( $this->returnValue( 'body' ) );
132 |
133 | $this->view->expects( $this->once() )->method( 'assign' )
134 | ->with( $this->equalTo( 'output' ), $this->equalTo( 'body' ) );
135 |
136 | $this->response->expects( $this->once() )->method( 'setHeader' );
137 |
138 | $this->object->updateComponentAction();
139 | }
140 | }
--------------------------------------------------------------------------------
/Configuration/Settings.yaml:
--------------------------------------------------------------------------------
1 | Aimeos:
2 | Shop:
3 | flow:
4 | apc:
5 | enable: false
6 | prefix: 'flow:'
7 | # cache:
8 | # name: None
9 | # prefix: myshop
10 | extdir: "%FLOW_PATH_PACKAGES%Extensions"
11 | uploaddir: /
12 |
13 | page:
14 | account-index: ['account/profile','account/subscription','account/history','account/favorite','account/watch','basket/mini','catalog/session']
15 | basket-index: ['basket/bulk', 'basket/standard','basket/related']
16 | catalog-count: ['catalog/count']
17 | catalog-detail: ['basket/mini','catalog/stage','catalog/detail','catalog/session']
18 | catalog-list: ['basket/mini','catalog/filter','catalog/lists']
19 | catalog-stock: ['catalog/stock']
20 | catalog-suggest: ['catalog/suggest']
21 | catalog-tree: ['basket/mini','catalog/filter','catalog/stage','catalog/lists']
22 | checkout-confirm: ['checkout/confirm']
23 | checkout-index: ['checkout/standard']
24 | checkout-update: ['checkout/update']
25 |
26 | resource:
27 | db:
28 | adapter: mysql
29 | stmt: ["SET SESSION sort_buffer_size=2097144; SET NAMES 'utf8'; SET SESSION sql_mode='ANSI'"]
30 | host:
31 | port:
32 | database:
33 | username:
34 | password:
35 | limit: 3
36 | opt-persistent: 0
37 | fs:
38 | adapter: Standard
39 | basedir: "%FLOW_PATH_WEB%"
40 | tempdir: "%FLOW_PATH_DATA%Temporary"
41 | baseurl: "/"
42 | fs-admin:
43 | adapter: Standard
44 | basedir: "%FLOW_PATH_WEB%Uploads"
45 | tempdir: "%FLOW_PATH_DATA%Temporary"
46 | fs-import:
47 | adapter: Standard
48 | basedir: "%FLOW_PATH_DATA%Import"
49 | tempdir: "%FLOW_PATH_DATA%Temporary"
50 | fs-secure:
51 | adapter: Standard
52 | basedir: "%FLOW_PATH_DATA%Persistent/Secure"
53 | tempdir: "%FLOW_PATH_DATA%Temporary"
54 | mq:
55 | adapter: Standard
56 | db: db
57 |
58 | admin:
59 | jsonadm:
60 | url:
61 | config:
62 | absoluteUri: true
63 | options:
64 | config:
65 | absoluteUri: true
66 |
67 | client:
68 | html:
69 | account:
70 | index:
71 | url:
72 | action: index
73 | subscription:
74 | url:
75 | action: index
76 | favorite:
77 | url:
78 | action: index
79 | watch:
80 | url:
81 | action: index
82 | download:
83 | url:
84 | error:
85 | action: index
86 | checkout:
87 | standard:
88 | summary:
89 | option:
90 | terms:
91 | url:
92 | controller: Page
93 | action: terms
94 | cancel:
95 | url:
96 | controller: Page
97 | action: terms
98 | privacy:
99 | url:
100 | controller: Page
101 | action: privacy
102 | jsonapi:
103 | url:
104 | config:
105 | absoluteUri: true
106 |
107 | controller:
108 | common:
109 | media:
110 | standard:
111 | # Mime icon related settings
112 | mimeicon:
113 | # Directory where icons for the mime types stored. Must be relative to the path in "basedir"
114 | directory: _Resources/Static/Packages/Aimeos.Shop/mimeicons
115 | # File extension of mime type icons
116 | extension: .png
117 |
118 | i18n:
119 |
120 | madmin:
121 |
122 | mshop:
123 | index:
124 | manager:
125 | attribute:
126 | name: MySQL
127 | catalog:
128 | name: MySQL
129 | price:
130 | name: MySQL
131 | supplier:
132 | name: MySQL
133 | text:
134 | name: MySQL
135 |
--------------------------------------------------------------------------------
/Tests/Unit/Controller/AbstractControllerTest.php:
--------------------------------------------------------------------------------
1 | object = $this->getMockBuilder( '\Aimeos\Shop\Controller\AbstractController' )
16 | ->disableOriginalConstructor()
17 | ->getMock();
18 |
19 | $this->view = $this->getMockBuilder( '\Neos\Flow\Mvc\View\JsonView' )
20 | ->setMethods( array( 'assign' ) )
21 | ->disableOriginalConstructor()
22 | ->getMock();
23 |
24 | $this->inject( $this->object, 'view', $this->view );
25 |
26 | $request = $this->getMockBuilder( '\Neos\Flow\Mvc\ActionRequest' )
27 | ->disableOriginalConstructor()
28 | ->getMock();
29 |
30 | $this->inject( $this->object, 'request', $request );
31 | }
32 |
33 |
34 | /**
35 | * @test
36 | */
37 | public function getOutput()
38 | {
39 | $aimeos = new \Aimeos\Shop\Base\Aimeos();
40 | $this->inject( $this->object, 'aimeos', $aimeos );
41 |
42 |
43 | $context = $this->getMockBuilder( '\Aimeos\Shop\Base\Context' )
44 | ->setMethods( array( 'get' ) )
45 | ->disableOriginalConstructor()
46 | ->getMock();
47 |
48 | $ctx = new \Aimeos\MShop\Context\Item\Standard();
49 | $ctx->setConfig( new \Aimeos\MW\Config\PHPArray() );
50 | $ctx->setLocale( new \Aimeos\MShop\Locale\Item\Standard( array( 'langid' => 'de' ) ) );
51 |
52 | $context->expects( $this->once() )->method( 'get' )
53 | ->will( $this->returnValue( $ctx ) );
54 |
55 | $this->inject( $this->object, 'context', $context );
56 |
57 |
58 | $viewContainer = $this->getMockBuilder( '\Aimeos\Shop\Base\View' )
59 | ->setMethods( array( 'create' ) )
60 | ->disableOriginalConstructor()
61 | ->getMock();
62 |
63 | $mwView = new \Aimeos\MW\View\Standard();
64 |
65 | $viewContainer->expects( $this->once() )->method( 'create' )
66 | ->will( $this->returnValue( $mwView ) );
67 |
68 | $this->inject( $this->object, 'viewContainer', $viewContainer );
69 |
70 |
71 | $uriBuilder = $this->getMockBuilder( '\Neos\Flow\Mvc\Routing\UriBuilder' )
72 | ->disableOriginalConstructor()
73 | ->getMock();
74 |
75 | $this->inject( $this->object, 'uriBuilder', $uriBuilder );
76 |
77 |
78 | $client = $this->getMockBuilder( '\Aimeos\Client\Html\Catalog\Lists\Standard' )
79 | ->setMethods( array( 'getBody', 'getHeader', 'process') )
80 | ->disableOriginalConstructor()
81 | ->getMock();
82 |
83 | $client->expects( $this->once() )->method( 'getBody' )
84 | ->will( $this->returnValue( 'body' ) );
85 |
86 | $client->expects( $this->once() )->method( 'getHeader' )
87 | ->will( $this->returnValue( 'header' ) );
88 |
89 | $client->expects( $this->once() )->method( 'process' );
90 |
91 | \Aimeos\Client\Html\Catalog\Lists\Factory::injectClient( '\Aimeos\Client\Html\Catalog\Lists\Standard', $client );
92 |
93 |
94 | $this->view->expects( $this->once() )->method( 'assign' )
95 | ->with( $this->equalTo( 'aimeos_component_header' ), $this->equalTo( 'header' ) );
96 |
97 |
98 | $class = new \ReflectionClass( '\Aimeos\Shop\Controller\AbstractController' );
99 | $method = $class->getMethod( 'getOutput' );
100 | $method->setAccessible( true );
101 |
102 |
103 | $result = $method->invokeArgs( $this->object, array( 'catalog/lists' ) );
104 |
105 | $this->assertEquals( 'body', $result );
106 | }
107 |
108 |
109 | /**
110 | * @test
111 | */
112 | public function get()
113 | {
114 | $expected = array( 'aibody' => 'body', 'aiheader' => 'header' );
115 |
116 | $shop = $this->getMockBuilder( '\Aimeos\Shop\Base\Shop' )
117 | ->setMethods( array( 'get' ) )
118 | ->disableOriginalConstructor()
119 | ->getMock();
120 |
121 | $this->inject( $this->object, 'shop', $shop );
122 |
123 | $shop->expects( $this->once() )->method( 'get' )
124 | ->will( $this->returnValue( $expected ) );
125 |
126 |
127 | $class = new \ReflectionClass( '\Aimeos\Shop\Controller\AbstractController' );
128 | $method = $class->getMethod( 'get' );
129 | $method->setAccessible( true );
130 |
131 |
132 | $result = $method->invokeArgs( $this->object, array( 'test' ) );
133 |
134 | $this->assertEquals( $expected, $result );
135 | }
136 | }
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/CatalogController.php:
--------------------------------------------------------------------------------
1 | view->assign( 'output', $this->getOutput( 'catalog/count' ) );
31 | $this->response->setHeader( 'Content-Type', 'application/javascript' );
32 | }
33 |
34 |
35 | /**
36 | * Returns the output of the catalog detail component
37 | *
38 | * @return string Rendered HTML for the body
39 | */
40 | public function detailComponentAction()
41 | {
42 | $this->view->assign( 'output', $this->getOutput( 'catalog/detail' ) );
43 | }
44 |
45 |
46 | /**
47 | * Returns the output of the catalog filter component
48 | *
49 | * @return string Rendered HTML for the body
50 | */
51 | public function filterComponentAction()
52 | {
53 | $this->view->assign( 'output', $this->getOutput( 'catalog/filter' ) );
54 | }
55 |
56 |
57 | /**
58 | * Returns the output of the catalog list component
59 | *
60 | * @return string Rendered HTML for the body
61 | */
62 | public function listComponentAction()
63 | {
64 | $this->view->assign( 'output', $this->getOutput( 'catalog/lists' ) );
65 | }
66 |
67 |
68 | /**
69 | * Returns the output of the catalog session component
70 | *
71 | * @return string Rendered HTML for the body
72 | */
73 | public function sessionComponentAction()
74 | {
75 | $this->view->assign( 'output', $this->getOutput( 'catalog/session' ) );
76 | }
77 |
78 |
79 | /**
80 | * Returns the output of the catalog stage component
81 | *
82 | * @return string Rendered HTML for the body
83 | */
84 | public function stageComponentAction()
85 | {
86 | $this->view->assign( 'output', $this->getOutput( 'catalog/stage' ) );
87 | }
88 |
89 |
90 | /**
91 | * Returns the output of the catalog stock component
92 | *
93 | * @return string Rendered HTML for the body
94 | */
95 | public function stockComponentAction()
96 | {
97 | $this->view->assign( 'output', $this->getOutput( 'catalog/stock' ) );
98 | $this->response->setHeader( 'Content-Type', 'application/javascript' );
99 | }
100 |
101 |
102 | /**
103 | * Returns the output of the catalog suggest component
104 | *
105 | * @return string Rendered HTML for the body
106 | */
107 | public function suggestComponentAction()
108 | {
109 | $this->view->assign( 'output', $this->getOutput( 'catalog/suggest' ) );
110 | $this->response->setHeader( 'Content-Type', 'application/json' );
111 | }
112 |
113 |
114 | /**
115 | * Renders the catalog counts.
116 | */
117 | public function countAction()
118 | {
119 | $this->view->assignMultiple( $this->get( 'catalog-count' ) );
120 | $this->response->setHeader( 'Content-Type', 'application/javascript' );
121 | $this->response->setHeader( 'Cache-Control', 'max-age=300' );
122 | }
123 |
124 |
125 | /**
126 | * Content for catalog detail page
127 | *
128 | * @Flow\Session(autoStart = TRUE)
129 | */
130 | public function detailAction()
131 | {
132 | $this->view->assignMultiple( $this->get( 'catalog-detail' ) );
133 | $this->response->setHeader( 'Cache-Control', 'max-age=10' );
134 | }
135 |
136 |
137 | /**
138 | * Content for catalog list page
139 | *
140 | * @Flow\Session(autoStart = TRUE)
141 | */
142 | public function listAction()
143 | {
144 | $this->view->assignMultiple( $this->get( 'catalog-list' ) );
145 | $this->response->setHeader( 'Cache-Control', 'max-age=10' );
146 | }
147 |
148 |
149 | /**
150 | * Renders the catalog stock section.
151 | */
152 | public function stockAction()
153 | {
154 | $this->view->assignMultiple( $this->get( 'catalog-stock' ) );
155 | $this->response->setHeader( 'Content-Type', 'application/javascript' );
156 | $this->response->setHeader( 'Cache-Control', 'max-age=30' );
157 | }
158 |
159 |
160 | /**
161 | * Renders a list of product names in JSON format.
162 | */
163 | public function suggestAction()
164 | {
165 | $this->view->assignMultiple( $this->get( 'catalog-suggest' ) );
166 | $this->response->setHeader( 'Content-Type', 'application/json' );
167 | $this->response->setHeader( 'Cache-Control', 'max-age=300' );
168 | }
169 |
170 |
171 | /**
172 | * Content for catalog tree page
173 | *
174 | * @Flow\Session(autoStart = TRUE)
175 | */
176 | public function treeAction()
177 | {
178 | $this->view->assignMultiple( $this->get( 'catalog-tree' ) );
179 | $this->response->setHeader( 'Cache-Control', 'max-age=10' );
180 | }
181 | }
182 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # Aimeos Flow/Neos package
6 |
7 | [](https://travis-ci.org/aimeos/aimeos-flow)
8 | [](https://scrutinizer-ci.com/g/aimeos/aimeos-flow/?branch=master)
9 |
10 | :star: Star us on GitHub — it helps!
11 |
12 | [Aimeos](https://aimeos.org/Flow) is THE professional, full-featured and
13 | high performance e-commerce package for Flow/NeosCMS! You can install it in your
14 | existing Flow application within 5 minutes and can adapt, extend, overwrite
15 | and customize anything to your needs.
16 |
17 | [](http://flow.demo.aimeos.org/)
18 |
19 | ## Table of content
20 |
21 | - [Installation](#installation)
22 | - [Setup](#setup)
23 | - [Hints](#hints)
24 | - [License](#license)
25 | - [Links](#links)
26 |
27 | ## Installation
28 |
29 | This document is for the latest Aimeos Flow **2019.10 release and later**.
30 |
31 | - LTS release: 2019.10
32 |
33 | The Aimeos Flow/Neos web shop package is a composer based library that can be
34 | installed easiest by using [Composer](https://getcomposer.org):
35 |
36 | `composer create-project neos/flow-base-distribution myshop`
37 |
38 | Make sure that the **database is set up and it is configured**. If you want to
39 | use a database server other than MySQL, please have a look into the article about
40 | [supported database servers](https://aimeos.org/docs/Developers/Library/Database_support)
41 | and their specific configuration.
42 |
43 | Neos has a nice setup page for this when opening the `/setup` URL of your installation.
44 | For Flow, this is done in your `Configuration/Settings.yaml` file and must
45 | at least include these settings:
46 |
47 | ```yaml
48 | Neos:
49 | Flow:
50 | persistence:
51 | backendOptions:
52 | host: ''
53 | dbname: ''
54 | user: ''
55 | password: ''
56 | ```
57 |
58 | **Important:** The configuration file format requires each additional indention
59 | to be two spaces. Not more, not less and no tabs at all! Otherwise, you will get
60 | an error about an invalid configuration file format.
61 |
62 | Then add these lines to your `composer.json` of your Flow/Neos project:
63 |
64 | ```
65 | "extra": {
66 | "installer-paths": {
67 | "Packages/Extensions/{$name}/": ["type:aimeos-extension"]
68 | }
69 | },
70 | "prefer-stable": true,
71 | "minimum-stability": "dev",
72 | "require": {
73 | "aimeos/aimeos-flow": "~2019.10",
74 | ...
75 | },
76 | ```
77 |
78 | Afterwards, install the Aimeos shop package using
79 |
80 | `composer update`
81 |
82 | ## Setup
83 |
84 | To create all required tables and to add the demo data, you need to execute a
85 | Flow console command in the base directory of your Flow application:
86 |
87 | `./flow aimeos:setup --option=setup/default/demo:1`
88 |
89 | In a production environment or if you don't want that the demo data gets
90 | installed, leave out the `--option=setup/default/demo:1` option.
91 |
92 | For **Flow only** you need to import the routes from the Aimeos web shop
93 | package into your `Configuration/Routes.yaml` nice looking URLs. Insert the lines
94 | below to the **beginning** of the Routes.yaml file:
95 |
96 | ```yaml
97 | -
98 | name: 'Aimeos'
99 | uriPattern: 'shop/'
100 | subRoutes:
101 | AimeosShopRoutes:
102 | package: 'Aimeos.Shop'
103 | ```
104 |
105 | It's important to import the routes from the Aimeos web shop package before the
106 | `FlowSubroutes` lines. If you add it afterwards, the default Flow routes will
107 | match first and you will get an error that the requested package/action wasn't
108 | found.
109 |
110 | Now Flow would basically know which controller/action it shall execute. But with
111 | Neos, one additional step is needed:
112 |
113 | Add the following **PrivilegeTarget** to `Configuration/Policy.yaml`
114 |
115 | ```yaml
116 | privilegeTargets:
117 | Neos\Flow\Security\Authorization\Privilege\Method\MethodPrivilege:
118 | 'MyShop:AllActions':
119 | matcher: 'method(Aimeos\Shop\Controller\(.*)Controller->(.*)Action())'
120 |
121 | roles:
122 | 'Neos.Flow:Everybody':
123 | privileges:
124 | -
125 | privilegeTarget: 'MyShop:AllActions'
126 | permission: GRANT
127 | ```
128 |
129 | The above will grant access to **all** Aimeos Controller/Actions pairs, for
130 | **everyone** - probably not what you want. Please refine to your needs!
131 |
132 | Then, you should be able to call the catalog list page in your browser using
133 |
134 | ```http:///shop/list```
135 |
136 | For the administration interface you have to setup authenticaton first and log
137 | in before you will be able to get into the shop management interface:
138 |
139 | ```http:///shop/admin```
140 |
141 | ## Hints
142 |
143 | To simplify development, you should configure to use no content cache. You can
144 | do this in the `Configuration/Settings.yaml` file of your Flow/Neos application
145 | by adding these lines at the bottom:
146 |
147 | ```yaml
148 | Aimeos:
149 | Shop:
150 | flow:
151 | cache:
152 | name: None
153 | ```
154 |
155 | ## License
156 |
157 | The Aimeos Flow/Neos package is licensed under the terms of the LGPLv3 license
158 | and is available for free.
159 |
160 | ## Links
161 |
162 | * [Web site](https://aimeos.org/Flow)
163 | * [Documentation](https://aimeos.org/docs/Flow)
164 | * [Forum](https://aimeos.org/help)
165 | * [Issue tracker](https://github.com/aimeos/aimeos-flow/issues)
166 | * [Composer packages](https://packagist.org/packages/aimeos/aimeos-flow)
167 | * [Source code](https://github.com/aimeos/aimeos-flow)
168 |
--------------------------------------------------------------------------------
/Classes/Aimeos/Shop/Controller/JsonapiController.php:
--------------------------------------------------------------------------------
1 | createClient( $resource );
54 | $psrResponse = $client->delete( $this->getPsrRequest(), new Response() );
55 |
56 | return $this->setPsrResponse( $psrResponse );
57 | }
58 |
59 |
60 | /**
61 | * Returns the requested resource object or list of resource objects
62 | *
63 | * @param string Resource location, e.g. "customer"
64 | * @return string Response message content
65 | */
66 | public function getAction( $resource )
67 | {
68 | $client = $this->createClient( $resource );
69 | $psrResponse = $client->get( $this->getPsrRequest(), new Response() );
70 |
71 | return $this->setPsrResponse( $psrResponse );
72 | }
73 |
74 |
75 | /**
76 | * Updates a resource object or a list of resource objects
77 | *
78 | * @param string Resource location, e.g. "customer"
79 | * @return string Response message content
80 | * @Flow\Session(autoStart = TRUE)
81 | */
82 | public function patchAction( $resource )
83 | {
84 | $client = $this->createClient( $resource );
85 | $psrResponse = $client->patch( $this->getPsrRequest(), new Response() );
86 |
87 | return $this->setPsrResponse( $psrResponse );
88 | }
89 |
90 |
91 | /**
92 | * Creates a new resource object or a list of resource objects
93 | *
94 | * @param string Resource location, e.g. "customer"
95 | * @return string Response message content
96 | * @Flow\Session(autoStart = TRUE)
97 | */
98 | public function postAction( $resource )
99 | {
100 | $client = $this->createClient( $resource );
101 | $psrResponse = $client->post( $this->getPsrRequest(), new Response() );
102 |
103 | return $this->setPsrResponse( $psrResponse );
104 | }
105 |
106 |
107 | /**
108 | * Creates or updates a single resource object
109 | *
110 | * @param string Resource location, e.g. "customer"
111 | * @return string Response message content
112 | * @Flow\Session(autoStart = TRUE)
113 | */
114 | public function putAction( $resource )
115 | {
116 | $client = $this->createClient( $resource );
117 | $psrResponse = $client->put( $this->getPsrRequest(), new Response() );
118 |
119 | return $this->setPsrResponse( $psrResponse );
120 | }
121 |
122 |
123 | /**
124 | * Returns the available HTTP verbs and the resource URLs
125 | *
126 | * @param string $resource Resource location, e.g. "product"
127 | * @return string Response message content
128 | */
129 | public function optionsAction( $resource = '' )
130 | {
131 | $client = $this->createClient( $resource );
132 | $psrResponse = $client->options( $this->getPsrRequest(), new Response() );
133 |
134 | return $this->setPsrResponse( $psrResponse );
135 | }
136 |
137 |
138 | /**
139 | * Returns the resource controller
140 | *
141 | * @param string Resource location, e.g. "customer"
142 | * @return \Aimeos\Client\JsonApi\Iface JsonApi client
143 | */
144 | protected function createClient( $resource )
145 | {
146 | $related = '';
147 | $tmplPaths = $this->aimeos->get()->getCustomPaths( 'client/jsonapi/templates' );
148 |
149 | if( $this->request->hasArgument( 'related' ) ) {
150 | $related = $this->request->getArgument( 'related' );
151 | }
152 |
153 | $context = $this->context->get( $this->request );
154 | $langid = $context->getLocale()->getLanguageId();
155 |
156 | $view =$this->viewContainer->create( $context, $this->uriBuilder, $tmplPaths, $this->request, $langid );
157 | $context->setView( $view );
158 |
159 | return \Aimeos\Client\JsonApi::create( $context, $resource . '/' . $related );
160 | }
161 |
162 |
163 | /**
164 | * Returns a PSR-7 request object for the current request
165 | *
166 | * @return \Psr\Http\Message\ServerRequestInterface PSR-7 request object
167 | */
168 | protected function getPsrRequest()
169 | {
170 | $psrRequest = new \Zend\Diactoros\ServerRequest();
171 | $flowRequest = $this->request->getHttpRequest();
172 |
173 | try {
174 | $resource = $flowRequest->getContent( true );
175 | } catch( \Neos\Flow\Http\Exception $exception ) {
176 | $resource = fopen( 'php://temp', 'rw' );
177 | fwrite( $resource, $flowRequest->getContent() );
178 | }
179 |
180 | $psrRequest = $psrRequest->withBody( new \Zend\Diactoros\Stream( $resource ) );
181 |
182 | foreach( $flowRequest->getHeaders()->getAll() as $headerName => $headerValues ) {
183 | $psrRequest = $psrRequest->withHeader( $headerName, $headerValues );
184 | }
185 |
186 | return $psrRequest;
187 | }
188 |
189 |
190 | /**
191 | * Set the response data from a PSR-7 response object
192 | *
193 | * @param \Psr\Http\Message\ResponseInterface $response PSR-7 response object
194 | * @return string Response message content
195 | */
196 | protected function setPsrResponse( \Psr\Http\Message\ResponseInterface $response )
197 | {
198 | $this->response->setStatus( $response->getStatusCode() );
199 |
200 | foreach( $response->getHeaders() as $key => $value ) {
201 | $this->response->setHeader( $key, $value );
202 | }
203 |
204 | return (string) $response->getBody();
205 | }
206 | }
207 |
--------------------------------------------------------------------------------