Coder Social home page Coder Social logo

symphonycms / symphonycms Goto Github PK

View Code? Open in Web Editor NEW
543.0 62.0 212.0 17.7 MB

This is the official Symphony CMS repository.

Home Page: https://www.getsymphony.com

License: MIT License

JavaScript 7.24% PHP 89.50% CSS 2.41% Smarty 0.23% XSLT 0.02% TSQL 0.50% Shell 0.10%
symphony-cms php xslt xsl mysql-database cms cms-backend

symphonycms's Introduction

Symphony CMS

Minimum PHP Version Build Status Build status Build status
Code coverage PHPStan Scrutinizer Code Quality Maintainability
Join the chat at https://gitter.im/symphonycms/symphony-2 Licence FOSSA Status

Contents

Quick links

Overview

Symphony is a PHP & MySQL based CMS that utilises XML and XSLT as its core technologies. This repository represents version 3.0.0 and is considered stable.

Useful places:

Server requirements

  • PHP 5.6 or 7.0-7.3
  • PHP’s LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.7 or above is recommended
  • A webserver (known to be used with Apache, Litespeed, Nginx and Hiawatha)
  • Apache’s mod_rewrite module or equivalent
  • PHP’s built in json functions, which are enabled by default in PHP 5.2 and above; if they are missing, ensure PHP wasn’t compiled with --disable-json
  • PHP’s zlib module
  • PHP’s pdo_mysql module

Responsible Security Disclosure

Please follow the guideline for security bug disclosure.

symphonycms's People

Contributors

ahwayakchih avatar allen avatar andrewminton avatar andrrr avatar bauhouse avatar bernardodiasc avatar brendo avatar cd-jenkins-bot avatar chobohub avatar creativedutchmen avatar cz avatar davidoliver avatar designermonkey avatar fhamon avatar jensscherbl avatar jmanero avatar jonmifsud avatar kanduvisla avatar klaftertief avatar makenosound avatar michael-e avatar nickdunn avatar nils-werner avatar nilshoerrmann avatar nitriques avatar rainerborene avatar remie avatar simoneeconomo avatar tonyarnold avatar twiro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

symphonycms's Issues

Installing without workspace breaks Symphony

This is 2.2.1

I installed without the workspace. Every admin page I tried results in the error:

The page you requested, , does not exist.

Installing with the workspace works just fine.

Section called "Authors" breaks data source edit pages

Migrated from Symphony Issue 623

@ahwayakchih

When one of the sections is called "Authors", Data Source edit pages are broken.

"Parameter Output" and "XML Output" options show information related to a section, no matter which source is selected (section called "Authors" or System/Authors).

I found it on Symphony 2.2, did not test on 2.2.1 (did not have enough time, sorry). To reproduce:

  • Create section called "Authors" with "Author" field (as first field, but it may be irrelevant),
  • Create data source that should select authors (system/symphony, not from the new section you have just created),
  • (not sure if needed, but this how i found the bug) add filter by "First name" and "Last name" (i used the same parameter in both, because parameter was comma separated list of names),
  • (also not sure if needed) set required parameter,
  • "Parameter Output" and "XML Output" show options relevant to the "Section/Authors" and not "System/Authors".

Hope that helps :).

@brendo

Got it, this is down to Symphony's javascript and how it handles removing/displaying options on the Datasource Editor page.

Any clever ideas?

  • Renamed Authors to something more specific, Symphony Authors?
  • Reserve Sections (and Navigation) from Datasource names
  • Engineer the Javascript to be more robust, perhaps making use of data- attributes instead of the text.

@nilshoerrmann

This cannot really be solved in a nice way without rewriting the data source editor javascript. We have been talking about that while working on 2.2 and decided to leave the concept as is and wait for Symphony 3 to improve the editor.

It's still possible to setup the data source correctly when editing the file directly. So my vote would be to highlight this as a known bug but not fix it in the Symphony 2 branch.

@brendo

Fair enough, I had a go myself for the last 30 minutes and didn't come up with much luck.

Authors, while we might not use it often, would probably be a common section name in a Book/Publishing website.

A more common example of this problem could be a site using the name 'Navigation' as the same issue will occur. I know at work we prefix Navigation with System: Navigation, I was never aware of why, but this may very well be the reason.

@nilshoerrmann

One thing we should think about is using data attributes to handle the connection between the select box and the interface components that should be shown or hidden. This way we can make sure that there are no interferences between a custom section name and a default source without using silly long names for the system components.

Remove the local and gmt columns from the Date field

Look at removing the local and gmt columns. These columns at the moment seem to actually hinder the field due to the INT datalimits. This places a limit on the dates that can be used by the field, with the lower limit being December 1901.

What's interesting is that the full date is stored successfully in a VARCHAR as a complete datetime format, ie. 0800-06-15T00:00:00+10:00 and now due to the updates to the DateTimeObj class, it can handle parsing these string dates rather than the integer dates.

At the moment it looks the only benefit is the sorting can be done easily with INT.

It would be nice to move to DATETIME fields, but we then lose the timezone of the date saved, which I think is quite important (if anyone has any insight into this, please speak up!). Swapping to DATETIME will allow sorting to be natural and well, it just seems right that it uses the correct column type.

Probably not enough time for 2.2.2, but this should definitely be looked at thoroughly for 2.3.

Allow editing of the config from the backend

Extensions are starting to thrive in Symphony and often many allow slight configuration through the Preferences page. This makes it incredibly easy for users to quickly configure the extensions without having to delve into the configuration file (config.php).

In the Symphony 3 beta, we experimented with allowing the entire config to be edited in the backend. @bauhouse also has a nifty little extension, Configuration Settings which does the same thing but for Symphony 2.

I think it's a timesaving feature to be able to do this by the backend. For Symphony sites that are deployed on remote servers, sometimes gaining access to the direct configuration file for editing is time consuming/frustrating to change one setting.

We should definitely consider adding this.

Core Email API does not support a comma seperated addresses

Just updated a site to 2.2.2 (beta) and found that previous email sending code using Email Template Filter is broken. My email template builds the to_email field and results in three addresses:

However when the email is sent I receive an error:

Error sending email. The email address "[email protected], [email protected], [email protected]" is invalid.

Something is wrong somewhere. Dumping out $email at the point of sending, my recipients list:

array(1) {
  [0]=>
  string(86) "[email protected], [email protected], [email protected]"
}

Which suggests that some logic is missing to look for multiple recipients and split the string accordingly. Since General::sendEmail() used to support this, the refactoring of the method workings has broken backwards compatibility.

Can anyone advise a quick fix please? This is live on a site and in need of resolving :-/

Ta! :-)

(@michael-e, @brendo)

config.php line endings

I seem to be finding that config.php line endings are not being written in Unix style (\n). It's only a cosmetic thing, but consistency and code practice is a good thing.

Duplicate file upload when another entry has it attached already.

Migrated from Symphony Issue 608 (paraphrased heavily)

@ahwayakchih

When file name (instead of real file upload) is passed in POST, field could try to duplicate file if another entry already has this one attached. That would make entry duplication work with file uploads, and allow to create JavaScript that could switch between file upload and selecting file name (for example, user could decide if he/she wants to upload new file, or select existing one).

@brendo

User actions:

  1. File is uploaded and entry is saved.
  2. Another entry is created and a file of same name is uploaded and clashes
  3. Ask User, use this file, rename uploaded file or cancel

Use this file

Allow user to click on the image and open it in a new window to verify it's the same. This will duplicate the existing file and append a numerical suffix to the filename (-1, -2) etc. This is a common system used by operating systems so it should be relatively familiar to the user.

Rename uploaded file

Allows a user to rename the file they are uploading. This will need to trigger the same logic to repeat again to ensure the renamed name is still unique.

Cancel

The current behaviour

@eKoeS

Right, but my question is: what happens when there's a file clash? Is the entry already "saved" or not? If a green system message appears on top, then the user might think everything is okay and leave the page even if his/her action is still required by the upload field.

@brendo

The usual yellow message saying there was an error when saving, please see below would appear

Upload field limit/error logic is wrong

Maybe we have lost some code, somewhere?

Symphony's upload field will not render any errors like:

  • UPLOAD_ERR_INI_SIZE
  • UPLOAD_ERR_FORM_SIZE

If you send bigger files than allowed in your php.ini, it will silently break. Symphony's own upload limit is without effect.

Looking at the code it is a mystery to me how this should work at all. I don't find any code in Symphony which sets those constants.

Can anybody confirm this?

Investigate a way to get around an obscure use case using Dynamic Options in a Select box.

Migrated from Basecamp.

Semi related to SI547 in that the same error is thrown.

Basically if you have a Dynamic Options Select Box, when it is shown on the frontend there seems to be this case of the fetchAssociatedEntrySearchValue returning multiple values.

Not sure if the bug lies in that it shouldn’t return multiple values, or in that the entries table needs to be more flexible in the adding of table rows.

Parameters of prepareTableValue()

The standard prepareTableValue implementation hast two parameters, so the implementations of the core fields. But in content.publish.php the $entry_id gets passed as a third parameter. I'm using the entry ID in the 'prepareTableValue' function in my Image Cropper extension which caused a problem in combination with the Subsection Manager. (I'm using the entry ID to get the data from the related upload field to display a thumbnail of the cropped image.)

So I'm wondering if

  • it's considered as a bug and the $entry_id shouldn't get passed in content.publish.php (and I can't use it) or
  • it will stay there and it's safe to use $entry_id (with proper test).

Allow the backend URL to be changed

By default, Symphony is fixed to /symphony. It comes up from time to time where users would like to change this for whatever reason. In 2.2 a new constant, SYMPHONY_URL was introduced, and slowly the backend has been making the transition for all hardcoded /symphony to use the constant.

While perhaps not on the immediate cards for 2.3, some publicity needs to be raised about the SYMPHONY_URL constant, so extension developers can start to use this as well.

A future version of Symphony, perhaps a 2.3.x release, will allow users to select their own backend path at installation/via the config.

Blank Symphony admin if extension folder has '-' in name

Extensions are usually named knupska-static_section-1.5-10-g73d8136, but if you put it in Symphony, it will break everything. Admin pages show up blank.

Usually, we change the folder name to static_section, which works. However, some extensions like backend-language-switcher use dashes instead of underscores, which breaks Symphony.

Fresh copy of 2.2.1 on MAMP latest.

Update default Field implementations

When fixing #710, it's become obvious that the Field class has diverged from what Symphony is considered to the be 'standard' for fields these days, to the point where even the Core fields are having to extend the Field class to add support for basic functionality.

To be specific, the Field class currently assumes a default Field consists of a simple schema of id, entry_id and value. What seems to be considered more normal is id, entry_id,value and handle. The Core fields all have adhere to this 'updated' convention (with exception of Checkbox, Date and Upload), so they have to redefine methods simply to add support for handle. This sort of duplication is redundant IMO

  • createTable
  • processRawFieldData
  • buildDSRetrievalSQL

Where this could go wrong is current extensions that use on the simple schema of id, entry_id and value assumption, and rely on the current Field functionality (hence the 2.3 Milestone).

Thoughts on this? Does anyone know of any extensions where this is the case?

Update Installer/Updater

If a user chooses a language during installation this should be set as the system language in config.php. Furthermore the language extensions should be activated automatically.

Data Source filtering syntax

Continuing a discussion from issue #695:

@nilshoerrmann:

Well, we started on the premise "Only cosmetics!" ... When we start working on JSON integration we should also have a look at negation and filter options in general ("Field X is not of the value of {$y}").

@brendo:

That's more a field's responsibility to implement the filtering, unless your taking about having a better selector instead of 'mode: {value}' in which I guess it's related.

You're right. But in this case we should make sure that all core fields allow negations (e. g. not: {$title}). Furthermore it would be nice if we could improve variable replacements. Currently it's possible to do this, which represents a if not then statement:

{$title:my-default-title}

What about improving/extending this syntax:

{$title?my-default-value}

If $title exists, use my-default-value instead.
This would be helpful for cross field relations because I could us this syntax not only on the title field but also on a subtitle field.

Update REGEXP for better multibyte support in Managers

@allen has been working on improving Symphony's support with multibyte characters. At the moment all managers do not use unicode safe regexp when discovering their relevant objects. Unicode support is dependent on if PHP has been compiled with unicode support in PCRE. This stackoverflow thread has an elegant solution to determining this support.

Allow extensions to add their extension types to the about() function

It would be helpful to introduce extension types in the about() array:

'types' => array('Field');

These could be displayed as a separate column in the extension overview. If no type is given, Symphony could potentially extract it from the extension name (using : as delimiter), e. g. Field: Something will be displayed with "Something" as name and "Field" as type.

include_once() and require_once() performance

Migrated from Symphony Issue 655

@Phoque

It appears that include_once()'s and require_once()'s performance is pretty bad. They are being used all over Symphony's core, so maybe they could be replaced by a solution similar to the one from the article.

@brendo

The difference seems to be next to nothing for Symphony's purposes when I implemented a similar solution. I'm guessing it's because we are not doing it a million times.

Kaiuwe

My suggestion:

Kill all "require_once" and "include_once" and create an autoloader. Register this implementation

Examples (PHP 5.3):

Handle nonsense folders in /extensions/

I'm sure we discussed this just a few weeks ago but I cannot find the thread anymore: Leaving an empty folder inside /extensions/ will break the backend:

Could not find extension at location /Users/nilshoerrmann/Sites/Webseiten/form-und-emotion.de/extensions/test/extension.driver.php
/Users/nilshoerrmann/Sites/Webseiten/form-und-emotion.de/symphony/lib/toolkit/class.extensionmanager.php line 615

610         if(!isset(self::$_pool[$name])){
611             $classname = $this->__getClassName($name);
612             $path = $this->__getDriverPath($name);
613
614             if(!is_file($path)){
615                 throw new Exception(
616                     __('Could not find extension at location %s', array($path))
617                 );
618             }
619

In my eyes, Symphony should log this error silently as long we are not talking about an activated extension that is missing. Currently, you just have to add a nonsense folder (e. g. test) to break the backend.

Datetimeobj class buggy

From Symphony forum (Date Time Field):

I'm trying to store dates as dd/mm/yyyy - 01/07/2011, which I have specified in the config, yet the XML always displays

        <date timeline="1" type="exact">
            <start iso="2011-01-07T00:00:00+00:00" time="00:00" weekday="5" offset="+0000">2011-01-07</start>
        </date>

Is this right? If I have the ISO date format saved then why is my formatted date not what I specified in my config file?

This causes me a great problem as I've specified the date to be dd/mm/yyyy as this is how my data is that I'm trying to import, yet I can't import it as the date time field isn't reflecting the config setting correctly.

How can I go about changing this?

and:

So there seems to be a larger problem here. I input (via the calendar) 1st July 2011, formatted as dd/mm/yyyy as per config.php. When I hit save, it switches the day and month over, every time I subsequently hit save, it switches again.

The problem doesn't seem to be just this field though. The core date field is behaving odd too. The same happens, although it only switches the day and month round on the first save.

This is a class.datetimeobj.php bug @ line 135, so I'm logging it.

Need some new Parameter for Entrys

Hi,

I think some new Parameter for entrys was helpful .... the sections name was in templates hardcoded.

I miss someting like: item-path or item-section

sample:

now:
<a href="{$root}/articles/{title/@handle}/"><xsl:value-of select="title"/></a>

after:
<a href="{$root}/{item-section}/{title/@handle}/"><xsl:value-of select="title"/></a>
or
<a href="{item-path}/"><xsl:value-of select="title"/></a>

thx

Allow the Dynamic XML DS to support JSON

A lot, a lot, of API's these days expose their API as JSON, not XML (or in addition too). Symphony needs to keep with the times, so it should be able to read JSON just as it was XML. JSON, thankfully, has a strict syntax and there is a couple of classes floating around the forums (and the net) about transforming JSON to XML, so I don't think this would be too difficult to implement.

To be clear, the JSON would be read in and transformed to XML for use in XSLT.

Things to that need to be decided:

  • Do we bundle this into the Dynamic DS and rename it, or do we make a JSON Datasource? External DS, Remote DS spring to mind.
  • Does a user have to specify if it's JSON or XML? We should be able to read the Content-Type header and proceed appropriately
  • The interface might need a 'ping' ability so that it can determine if the URL is valid, and if it needs to display namespace information.
  • The XML Importer 'discover namespaces' feature is useful, and as namespaces scare the hell out of people, I think this feature should be implemented
  • Caching can be remain, but it should probably be exposed so you can see how long the cache has left and flush it (aka Cacheable Datasource)

/cc @nickdunn @allen @rowan-lewis @creativedutchmen @eKoEs @nilshoerrmann @czheng

Allow REGEX filtering to support AND/OR operations

As asked about on the forum:

@designermonkey:

I'm planning a project, and I'm thinking about what I can and can't do.

Taking into consideration the OR , operator and AND + operators for datasource filtering, can I use them in conjunction with regexp: filters?

For example

regexp:{$param1}, regexp:{$param2}, regexp:{$param3}

@brendo:

I don't think so, at least not in the Core fields. I'm not sure the origins of it, but it looks like the Core fields just checks the first $data passed to the buildDSRetrievalSQL function instead of all possible values.

These are other things that would trip it up:

{$param1}, regexp:{$param2} - This would start the OR logic, but the second value would be interpreted literally as regexp:{$param2}

regexp:{$param1}, {$param2} - This would ignore {$param2} as the logic checks the first item in the data array, which is regexp:{$param1} and assumes the rest is also regexp.

While it would complicate the logic a little to make it work, it should be possible from a developers perspective I would think. Can you file a bug?

Highlight the active navigation item in the backend

Migrated from Symphony, Issue 651

@johannahoerrmann

I somehow never noticed this before, but as I am working with very similar sections in a current project, I discovered that the current navigation item isn't highlighted in the dropdown menu.

Right now, the browser title bar is the only way I can actually see this information, so I have to combine that with the highlighted main navigation group to make sense of where the entry I am editing is located in the backend navigation structure. An idea to help the user understand where he actually is might be to add the navigation group to the browser title bar (somewhat mimicking a path / breadcrumb navigation), but I am completely open to how this issue might be effectively solved. Any ideas?

@eKoeS

I like the idea of breadcrumbs. What about this? (Not very pleasant, but perhaps functional) It's a pattern being already used by some extension developers.

@brendo

I don't mind that approach, it's simple and does the job! Probably doesn't need to be overengineered

Textareas are limited to 65,000 characters

Since Textareas are using MySQL's column type TEXT they're limited to 65,000 characters per row. That limit shouldn't be there and can easily be fixed: change the type to MEDIUMTEXT (16 MBytes per entry) or LONGTEXT (4GB per entry)

order articles by date

I have page /calendar/ and param date, urls looks like /calendar/year-month/ (/calendar/2011-05/) for example. Section with articles sorting by date field with date param from url. And it is perfectly work except 31 may. If param /2011-05/ i can see all articles except articles with date = 2011-05-31, if param /2011-05-31/ articles with this date is visible.

Memory overrun on deletion

While trying to delete 21298 entries from a section (via Section Editor index) the following error occurs:

Fatal error: Allowed memory size of 94371840 bytes exhausted (tried to allocate 517 bytes) in /Users/johnporter/Projects/Clients/OBP Resources/resources.openbookpublishers.com/symphony/lib/toolkit/class.mysql.php on line 438
Call Stack

Time Memory Function Location

1 0.0006 342608 {main}( ) ../index.php:0
2 0.0310 2265144 Administration->display( ) ../index.php:25
3 0.0310 2265788 Administration->__buildPage( ) ../class.administration.php:375
4 0.0634 5549220 AdministrationPage->build( ) ../class.administration.php:222
5 0.0786 5672312 AdministrationPage->action( ) ../class.administrationpage.php:242
6 0.0786 5672356 AdministrationPage->__switchboard( ) ../class.administrationpage.php:409
7 0.0786 5672452 contentBlueprintsSections->__actionIndex( ) ../class.administrationpage.php:440
8 3.0769 30623056 EntryManager->delete( ) ../content.blueprintssections.php:519
9 22.1240 92433752 EntryManager->fetch( ) ../class.entrymanager.php:244
10 22.1242 92435392 MySQL->fetch( ) ../class.entrymanager.php:349
11 22.1242 92435464 MySQL->query( ) ../class.mysql.php:604
12 22.1242 92436164 preg_replace ( ) ../class.mysql.php:438

"Ignore everything after this" marker in `config.php`

Migrated from Symphony Issue 577 and Basecamp.

@nils-werner

Sometimes I'd like my config.php file to be able to contain custom code that won't be overwritten when Administration::saveConfig is executed (it'll overwrite the whole file right?).

Usecase could be

  • config-values you want to share with your collegues while .gitignoreing config.php. Put them in config.share.php and include the file in your original config
  • custom actions, i.e. depending on the hostname used

@nickdunn

If you add your custom config in the same key/value pairs to config.php, do they still get overwritten?

Another option is to allow Symphony to auto-load config files config.*.php after the main configuration file, appending the additional values to the config array?

@brendo

So there's two things here, wanting to be able to include other files that include values (so they can be accessed from the Configuration class), and then the desire to have arbitrary PHP code.

Nick's idea for config.*.php would solve the first, with the caveat that these files could not be modified by Symphony (although this doesn't seem like an issue with the scenario you've used), instead they would be appended to the main config.php, which probably isn't desirable.

As for the second, well I guess if we are loading config.*.php in a readonly state, then your custom code could live in here. It wouldn't be available in Symphony, but only the $settings variable is added to the Configuration class.

@rainerborene

custom actions, i.e. depending on the hostname used

Interested point. We could create a file named environments.php in the manifest folder that contains specific config for each hostname used.

@designermonkey

Ok, so I’m back to developing a site in Symphony and Git and I’ve come across a stumbling block already.

I’ve grown accustomed to using a switch statement in PHP to store different database details dependant on which server the site is being run on.

With this in mind, I thought I’d start being clever about how my prefs were being stored in the Git repo, i.e. storing the entire config.php file so that the same preferences were being used across the development. The plan was to leave the default database settings in there (with no db name, username or password), and include a database.php file at the bottom, which would house the database connection details, inside this switch statement. This file would not be stored under the Git repo.

It works! Well, until someone changes the preferences that is, then the include is deleted from the file. Hmmm, damn.

I would have thought that the writing of configuration details would work like the .htaccess writing, whereby it reads the file, drops in/pulls out the respective bits as required, then writes the whole file back. It seems that it isn’t doing this.

Can we change this so that my use case can be a working solution? Would it be difficult to do?

@nils-werner

There are two solutions currently being thought about:

  1. Introduce a marker in the file that prevents Symphony from overwriting everything that follows it. I.e.
    $settings = array(
    ###### ADMIN ######
       'admin' => array(
           'max_upload_size' => '5242880',
       ),
       ########
       ...
    );
    ###### SYMPHONY_END ######
    // I can add whatever I want. Yay!
    $settings['database'] = array(...);
  1. Make Symphony load several config files automatically, following a certain naming convention. I.e. config.php first, then *.config.php, sorted alphabetically.

The first approach follows the “code by configuration”-concept, the second one the “code by convention”-concept (like most of the rest of Symphony). Both solutions would be backwards-compatible but would fail in different situations: The first one will simply be ignored and overwritten (your changes are gone once you hit “Save” in the preferences pane). The second one would not be overwritten but all extra-files would simply have no effect.

@rainerborene

Can we change this so that my use case can be a working solution? Would it be difficult to do?

It wouldn’t be difficult to do such thing. I’ve been discussing this functionality with Brendan here, and this feature will come in the next version of Symphony (2.2.2).

Instead of using markers in config.php I think a simple read-only file called environments.php can solve this problem. Actually the second situation Nils mentioned would not fail because extra configuration files will be useful for distributing extension configurations, and they have to be considered as normal configuration files like config.php.

JSON Page type

Seems fitting that with JSON Datasource support, we allow out of the box a way to output JSON directly (as we do with XML)

I see this working identically to creating an XML page, it's just that the XML is run through a XML to JSON convertor when viewed on the frontend.

There is a IETF draft that specifies how XML should be converted to JSON, so perhaps that can be a starting point for that conversion, otherwise we can look at how it's being done elsewhere in the web world.

/cc @nickdunn @allen @czheng @rowan-lewis

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.