Hi bdx,
last year I tried to do the same thing but then I started working on ImEx extension (see links in the sign if you want to know more :D) so the project was put in standby.
here are my notes on that project:
target:
provide a frontend user interface to let users editing website's content "visually"
i. find a way to add html "classes" to content/module/page
e.g. a tl_content of type text with ID 42 will be rendered as:
Code:
<div class="ce_text fe_tl_content fe_tl_content_id_42 fe_tl_content_type_text">
....
</div>
this way will be extremely easy to write something that recognize that every content included into the "fe_tl_content_id_42" div is related to typolight/main.php?do=article&table=tl_content&act=edit&id=4 2
ii. find a method to alter the backend theme on-demand (e.g. through a GET/POST/COOKIE trigger) so you can dynamically change the backend e.g. typolight/main.php?do=article&table=tl_content&act=edit&id=4 2&be_theme=something
the first point can be achieved by adding simple php code to Content.php, Module.php and Form.php (I am sure i am missing some file but do not matter in this phase) that add the above classes only if there is a backend user logged in.
when I say is "extremely easy" I mean is "extremely easy" if you plan to use javascript else you have to play with some php xml parser or something similar and it could not to be so easy as writing javascript.
the second point can be achieved with small changes to Controller::getTheme method. This allows to open the backend into an iframe (e.g. lightbox) without mess up the website.
once the above points are satisfied the extension can extended to add some useful buttons like:
"add a new page into this", "edit the layout or current page", "add a new article into the current page" and so on ...
the best place where to put these buttons is (clearly) the "frontend preview" user interface.
please note that:
* the above points require (small IMHO) modifications to TYPOlight core so you need to open some ticket
* I can dedicate some of my spare time to this project (e.g. writing code) and I am happy to contribute to "design"
so if you want to "open tickets", follow them and release the extension under LGPL we can go on ...
hope this helps in some way
Bookmarks