38

The Joomla! CMS is the product you likely know and use. It's the Content Management System which powers many sites. Usually when talking about Joomla!, we just mean the CMS. Official site: http://www.joomla.org/ The Joomla! Platform is the old underlying code which powers the CMS. It used to be a separated project but was merged back into the CMS. The ...


9

This is the only resource I could find that had report that are updated daily: http://w3techs.com/technologies/details/cm-joomla/all/all It also shows the percentages of different versions used too which comes in handy. Unfortunately this only refers to the CMS, not the framework. All other resources I found are blog posts that are over a year old and as ...


8

There are also these: http://trends.builtwith.com/cms http://trends.builtwith.com/cms/Joomla! The change in market share is considerable when the results are filtered to the top 1 million, top 100k and top 10k websites, especially with Drupal. Given that a free WordPress website can be created in seconds, and this is not something that can currently be ...


8

From my experience: About Joomla framework I tried to build a simple RESTful API for integrated authentication based on Joomla framework. It's fairly complex, quite different than the current Joomla API. Also, current source code can't be copy-pasted, and libraries may return unexpected results (being executed in a different environment). I'm going to wait ...


7

@Bakual did a good job of explaining it, but I just wanted to add that a big purpose of the Framework is to improve practices for everyone who develops extensions for the CMS. It follows modern practices and makes it easier to write clean, testable code. I say this from the standpoint as a big proponent of the Framework (I've contributed heavily) and from ...


6

com_api is definitely a good way to build REST services for your site if the extension itself is not based on FOF/RAD. However be careful with a few gotchas if you plan to create a separate Joomla instance only for the API Domain specific stuff (Eg: If you are supporting user registration, then the welcome email would include a link to the API subdomain). ...


6

I finally found what seems to be the "correct" way to do this. Even if I used sendHeaders, the additional Content-Type was being added and that got returned as it was added later. I followed through the code and AbstractWebApplication.php sets the headers with this line: // Send the content-type header. $this->setHeader('Content-Type', $this->...


6

I'd suggest not using the Framework. Its going to take you a long time to understand, as there is very little implementation orientated documents, there are few people using it so your chance of support is low etc. Sometimes its worth investing time to understand a new technology. If that's your aim then pick a framework that is being actively developed and ...


5

There isn't a lot of documentation on this, however each individual framework package has it's own "Getting Started" section so you can see how it's used: https://github.com/joomla-framework The only documentation Wiki I could find were the following: https://docs.joomla.org/Framework:Getting_Started https://docs.joomla.org/Framework:Creating_a_Stand-...


5

You have to be careful with any of the reported data below and see it as data relative to that source data. No web service knows exactly the make up of the internet by cms or any technology as all the services crawl or sample the content base on meta tags or ways sites report in their code. Some people remove these and some sites are put up and then left. ...


5

This question is impossible to answer conclusively, but I think that it is worthwhile to take a stab at some of the most common pieces that could trip you up in porting code over (and there will be quite a few). Before getting in to specifics, all of this could be considered a hack, depending on your point of view. The CMS and Framework are very different ...


4

Tutorials Creating a Stand-alone Application, from Joomla! Documentation How to develop a web app with Joomla framework, by escope.cz Project examples David Hurley has created a sample app running on the Framework, called Joomla! Framework Sample Application.


4

define( '_JEXEC', 1 ); define( 'DS', DIRECTORY_SEPARATOR ); define('JPATH_BASE',str_replace(basename(dirname(__FILE__)),"",dirname(__FILE__))); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); $mainframe = JFactory::getApplication('site'); $config = ...


4

The CMS provides a lot of chrome, features and functionality that are not in platform (eg. control panel, user management, etc.). The Framework includes all the underlying structure including database functions, string manipulations, etc. but it isn't a CMS. (According to the Framework project, the Joomla CMS will be refactored to use the Framework ...


4

I finally worked it out. I needed to create a session and assign it to the app before getFormToken would work. So first I use the Joomla session: use Joomla\Session\Session; Then create the session, set it and get the form token: $session = Session::getInstance('none'); $this->app->setSession($session); $token = $this->app->getFormToken(); ...


3

All these fields are optional. ordering - the ordering of your items in the table which can be used to display items in defined order state - the state of your item. For example in CMS it is: -2 for trashed, 0 for unpublished, 1 for published and 2 for archived items. checked_out - stores the user_id who currently is editing an item. Useful when you do not ...


3

Took a little digging but I see the issue https://github.com/joomla-framework/application/blob/master/src/AbstractWebApplication.php If you look at the setHeader function it does not actually set the header yet, it only gets it "ready" So what you need to do is simple $this->app->setHeader('Content-Type', 'application/json', true)->sendHeaders();...


3

Ahhhh! OK so the plugin does work perfect but I used an item id in the hook name for cached file so for 60 menu items you end-up with 60 cached css and js where there is no need for them. Changing hook name to just count the bytes of exploded css or js files arrays and this way determine if there is difference , makes this plugin fly!


2

I've pushed a working CRUD example on the intermediate branch of Michael's fork https://github.com/mbabker/framework-app/tree/intermediate You can clone it, and run $ php composer.phar install from the clone's location to install the framework. The above command should take care of creating the configuration file for you. Worst case you can manually ...


2

The filter fields list is a configuration option for ordering purposes, it's a white list of field names that are permitted for usage in queries, so apparently you can use a.field1 for instance as query specific. So in your view, you write something like this: <?php echo JHtml::_('grid.sort', 'COM_MYCOMPONENT_NAME', 'name', $listDirn, $listOrder); ?> ...


2

The problem is that you have installed it in the subfolder. In case Bootstrap is not working you should copy css, js and img folders from /vendor/twbs/docs.


2

I'm not sure that this will solve your problem, but it does answer your question in that you referenced libraries/joomla/log/log.php. Per Using JLog, and the JLog Class Reference, only the component, output file, priority, and format can be specified, but nothing else - no exclusions. Also, this applies to adding a jLog to your code, unless you're ...


2

Green marked functions are public ones. Orange are protected. Private methods are red. 1) Look at the filter buttons in the left hand side. Maybe some functions do not appear according to how these are set. 2) You have, as I said, filters above the left-handed list of functions. These you can use to filter out inherited methods (by clicking down the "...


2

I had the same issue once and I solved with with a lot of trial and error. You're going to really struggle doing this without composer though, so I strongly suggest using it. You'll firstly need to install Composer. The Joomla framework packages can be found here and have been separated so they're easier to maintain and allows you to fetch whichever you ...


1

You are probably best looking at com_menu and studying how core Joomla does it. For deleting and adding entire menus, you can see the relevant functions at \administrator\components\com_menus\models\menu.php. Here there is a function called delete, to which you pass an array of menu IDs, and it deletes them one at a time in a foreach loop. It's well ...


1

You can disable it commenting line 510, components/com_users/models/registration.php. // Send the registration email. // $return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $data['email'], $emailSubject, $emailBody); NOTE: This is a core hack. It has to be re-implemented in every Joomla update.


1

The Model is not intended to save anything (I am not talking about model cache), because that is a job for session. That is why model very often uses User State to retrieve some data form the session, for example the states of different filters.


1

I guess the code $session = Session::getInstance('none', $options); creates a new instance. But what you need is to get the session that is active, try to use $session =& JFactory::getSession(); I have not tried out but I know. Please let me know the results. Thanks


1

The following site seems to be an excellent resource for guidelines on how to build a RESTful JSON API: http://jsonapi.org/ For what it's worth, I am also launching an API product for Joomla 3.4.x called cAPI http://getcapi.org. The primary differentiator here is that I staked my routing framework on Slim micro-framework. This allows me to incorporate an ...


1

My two cents: For a customer I needed to access the contents of his joomla site from a smartphone app. The contents were placed in com_content so initially I used obRSS feeds. Then I found jBackend on JED and tried it. It is available here http://www.selfget.com/products/jbackend.html The code seems very clean and it supports RESTful requests and JSON ...


Only top voted, non community-wiki answers of a minimum length are eligible