PHP Application Generator

PHsPeed is a PHP generator, RAD and Case development tool for PHP applications. It makes use of PDO for database independence, bootstrap for mobile application, jquery/ajax for responsiveness.
Before posting a new issue, please look at the (closed) items to see if the issue has already been posted and/or might be fixed. Always use the latest released version.On every release, we close the issues that are fixed in that release, which makes them invisible for the current view. So all items that are shown as fixed are not (yet) released!

IDCategoryTask TypeSeveritySummaryStatusProgressOpenedLast Edited
351Backend / CoreEnhancementLowspdbtable component error on method forcefilterClosed
22.09.202122.09.2021 Task Description

The following code is generating an error

    public function forceFilter($filter, $append=false) {
      if(!append) {
      } else {
         $this->setFilter($fltr.' '.$filter);

Runtime error: [Use of undefined constant append - assumed ‘append’ (this will throw an Error in a future version of PHP)]

it needs to be changed to if(!$append)

350ComponentsBug ReportLowdbagenda component not filtering information properlyClosed
14.09.202124.09.2021 Task Description

even tho the assigned datatable is filtered, the dbagenda shows all of the table’s content.


349IDEBug ReportLowRemoving items from the chart series crashes the ideFixed
04.09.202104.09.2021 Task Description

See title

348PHP LibrariesBug ReportLowDBChart serie freezes application when there are no rec...Fixed
04.09.202104.09.2021 Task Description

When the database result set has no results then the application gives an error.

347Backend / CoreBug ReportLowchange theme component not working since last hotfixFixed
24.08.202128.08.2021 Task Description

the change theme component is not working anymore, this since the last hotfix to the spform component.

346Backend / CoreEnhancementLowUnable to delete Tab in Tabs componentClosed
20.08.202120.08.2021 Task Description

while modifying a Tabs componen and selecting a tab to delete, it is deleted from the list, but the save isn’t saved.

345Backend / CoreEnhancementLowdbgrid column properties On wish list
19.08.202119.08.2021 Task Description

when you create a dbgrid and select a column from the available datafields, the field gets set by default as a cDbField, but is lacking many of the cDbField properties such as:

- lookupfilter
- lookupslave
- modaltarget
- formcommand.

which forces you to create a new field for the look up data, for example to display a departments description instead of the id in the table.


344Backend / CoreEnhancementLowuploader component upload directoryClosed
18.08.202118.08.2021 Task Description

trying to set the upload dir at run time is not working, the following is the example code

function upload_1_onCreate($app)

 $this->uploaddir='./mypath/' . $index . '/';


where $index is a global variable.

The uploader ignores that setting and uploads in the predefined folder, this has been tried also in the onbeforerender, onafterrender and other methods.


343IDEEnhancementLowApply Font awesome in image selectorClosed
17.08.202117.08.2021 Task Description

It is now possible to select a font awesome image when you open up the image selector. This way it is way more easy to add awesome icons into grids for example.

342Backend / CoreBug ReportLowCloud connector as used in a link does only filter onceFixed
17.08.202117.08.2021 Task Description

Corrected. Don’t forget to set the cache property to false of the detail dataset.

341IDEBug ReportHighViews are not reported correctlyClosed
08.08.202113.09.2021 Task Description

The database metadata driver does not report views correctly. Sometimes views are reported as a regular table, sometimes ignored…

340Backend / CoreEnhancementLowdbimage component imagefolder property not being applie...Waiting on Customer
03.08.202113.08.2021 Task Description

the dbimage component has an editable property called imagefolder where you are supposed to be able to modify the path where the component looks for the image selected in the property picture. Althoug, when the component is rendered the imagefolder property is ignored and another property called picturefolder is used to render it.

339Backend / CoreEnhancementLowmoving rows into a different order does not work.Fixed
31.07.202109.08.2021 Task Description

I added a new row and column plus an area object to the column. I moved the row lower on the component tree and it keeps snapping back to the top of the tree. I did a drag and drop of the row lower in the design and still it snaps to the top of the page.

338Backend / CoreEnhancementLowFunction to clean projectfile cleans too muchFixed
11.07.202111.07.2021 Task Description

The function removes sections that should be preserved, like localization and global variables

337Backend / CoreBug ReportLowDBCalender does not have the required propertyFixed
09.07.202109.07.2021 Task Description


336Backend / CoreEnhancementLowFix for sync issuesFixed
09.07.202109.07.2021 Task Description

The IDE now detects if a form design is out of sync and protects the original from being overwritten.

335IDEEnhancementLowImproved localizationClosed
09.07.202109.07.2021 Task Description

The localization module has additional functionality and now detects more fieldtypes.

334IDEEnhancementLowImproved version controlClosed
09.07.202109.07.2021 Task Description

The list of backupfiles now contains additional date/time information and a longer dropdown for better overview

333Backend / CoreBug ReportLowTranslation file is not found if using shared librariesFixed
06.07.202106.07.2021 Task Description

If you use shared libraries then multilangual files are not found.

332Backend / CoreBug ReportLowRuntime error when DBSimpleQuery SQL Sentence includes ...Fixed
24.06.202124.06.2021 Task Description

<p></p>STEPS To reproduce:

Put a cDBSimpleQuery in any form. Set the SQL property to any query containing a constant string, like this:

select ‘X’ as hilera

Run the form.

Error message
tonguearse error: syntax error, unexpected ‘X’ (T_STRING) in C:PHsPeedxampphtdocsgestionit_libstest2_dbsquery_1.php on line 12

The generated file looks like this:

class test2_dbsquery_1 extends spdbsimplequery {

 public function __construct($app, $form) {
    $this->sql='select 'X' as hilera';


This does not happens if I use a cDBQuery, because the assignment to the sql property is enclosed in double quotes:
(taken from another, cDBQuery component generated file)

… $this→selectSQL=”select pkCasa,nombreCasa,’X’ as hilera “.

331PHP GeneratorBug ReportLowevents in carrusel components are being generated pass ...Fixed
21.06.202122.06.2021 Task Description

after generating code in the onbeforerender event of the carrusel component, the generated code looks like

class index_carousel_1 extends spcarousel {

public function __construct($app, $form) {
   parent::__construct('index_carousel_1', $form);
   if (is_a($form,'spform')) {
   $this->addCarouselItem('item_1','_libs/images/interior-shot-of-cafe-with-chairs-near-the-bar-with-wooden-tables.jpg','','filter: blur(1px) brightness(100%);','primary','none');
   if (is_a($form,'spform')) {


function onBeforeRender($app){
  global $mail;
  global $userpicture;
  global $username;
  global $userid;
  global $logeado;
    echo 'onbeforerender';

notice the function onbeforerender appears after the ?> resulting in the code being shown as plain txt in the html response of the server.

330IDEBug ReportLowEvent code is created in the current open file, not the...Fixed
15.06.202115.06.2021 Task Description

Hi, I’m using PHsPeed 1.3.0 B9 - x64, PHP 7.4.5, standard, included, XAMPP server

When viewing or editing any given PHP file (say I open one of the generated objects PHP file, or even a PHP from the PHsPeed runtime files), if I return to the Inspector TAB, select an object, and try to create or edit an existing event, the code for a new event handler is inserted in the open PHP file.

329IDEBug ReportLowAdditional spaces added to SQL Sentences that includes ...Fixed
15.06.202115.06.2021 Task Description

I’m using PHsPeed 1.3.0 B9 - x64, PHP 7.4.5, standard included XAMPP server.

When I set the SQL property of a cDBQuery or a cDBSimpleQuery to a query that contains the “⇐” sign, a space is introduced between the “<” and the “=”. If the query includes some function names like “trim”, a space is added between the function name and the first parenthesis.


Set the sql property of a cDBQuery or a cDBSimpleQuery to any of the following queries:

select if(1 ⇐ 2,’this universe’,’a parallel one’) as valor

select trim( ‘my string’ ) as hilera

328Backend / CoreEnhancementLowCrLf pairs will break (SQL) strings in propertiesFixed
07.06.202107.06.2021 Task Description

Added functionality to transfer SQL statements into a single string and back. It will not recover to the exact original layout as the CRLF pairs are not allowed in properties. So the system will prettify the statement.


SELECT concat('This is', 'a sample' ) as mycolumn, emp_no, sum ( salary ) AS sal, from_date, to_date  FROM salaries  GROUP BY emp_no, from_date WITH ROLLUP


SELECT concat ('This is',
      'a sample' ) as mycolumn,
       sum ( salary ) AS sal,
FROM salaries
GROUP BY emp_no,

And visa versa

327IDEEnhancementLowuploader component fails to generate upload buttonClosed
07.06.202109.08.2021 Task Description

sometimes when modifying the “localization/lcuploadstr” property of the uploader the upload button fails to be generated properly.

this is because for some reason while capturing the lcuploadstr property a “line jump” caracter is parsed malforming the javascript code as in the following example.

formData: {”component”:”editpropertyprfl_upload_1”},
uploadStr:”Encabezado ←——————————————————————– ERROR HERE
“,←—————————————————————————————- DOUBLE QUOTE IN THE NEXT LINE
var str=’‘;str=’file=’+files[0]+’&cmd=uploadimage&component=editpropertyprfl_dbimage_2’ ;
procbutton(str, ‘true’);

326PHP GeneratorEnhancementLowApplication crashes on ajax state when form has a field...Fixed
07.06.202117.06.2021 Task Description

follow these steps

- create a form with any number of fields
- select any field in the “fieldfocus” property of the form
- ejecute the application

Note.- no error is generated

325IDEBug ReportMediumI can't use a sentence using MySQL functions to calcula...Fixed
06.06.202106.06.2021 Task Description

I can’t use a sentence using MySQL functions to calculate some column in a DBQuery.

PHsPeed V1.3.0 B7 - x64, PHP 7.4.5

Steps to reproduce:
Just add a DBQuery and set the SQL property to

select concat(’This is’,’a sample’) as mycolumn

Then generate code and try to run the form. The field name ignores the alias, and is set to “concat(’This is”. I tried a variety of functions, like “if” or “curdate”, with same results.

Of course I could create a VIEW with the aliased column, but is not always feasible

324Backend / CoreImprovementLowuncheck the "or disable" checkbox while inserting a gri...Fixed
03.06.202104.06.2021 Task Description

follow these steps:

- right click on a form
- select the option “add grid” - make it 2 rows, 4 columns each
- since the option “assign the number of elements per column (sum should be 12), or disable” is checked
the generated grid will all have a size of 12 for every column.

- if the above option is not check then the generated columns get the calculated or typed in size.

- being the the case this is a request to set that value as uncheked by default.

323Backend / CoreEnhancementLowproperty canrunstandalone is being ignoredClosed
03.06.202109.08.2021 Task Description

follow these steps:

- create a new application
- notice that by default the “canrunstandalone” property is set to true
- execute the application (it will run)
- change the value of the property canrunstandalone to false
- execute the application ( it will redirect to the main application )
- change the value of the property back to true
- from that point on it wont run standalone it will always redirect to the main application

322Backend / CoreEnhancementLowwhen using the name "new" in an application generates e...Fixed
03.06.202104.06.2021 Task Description

since the generated code creates a statement similar to:

class new extends spapplication {

a syntax error is generated, this potentially be applicable to any other “reserved” word.

321Backend / CoreEnhancementLowChanging default application errorFixed
03.06.202104.06.2021 Task Description

in the project creation application, if the name of the default application does not have .php extension the application is generated properly but it wont run.

320IDEEnhancementLowerror while appending crud to an existent applicationFixed
03.06.202123.06.2021 Task Description

when using the crud generator to append any type of form (form, grid, grid-modal) the IDE generates a second application with the same name, being this a coppy of the original application whitout adding any new components

319IDEEnhancementLowModification to make projects more CVS / Git friendlyClosed
23.05.202123.05.2021 Task Description

If you want Git to maintain your project, then you only have to apply the subdirectory of the project. The project file is now also copied into the project folder for that reason.

318IDEEnhancementLowLoad project function extendedClosed
23.05.202123.05.2021 Task Description

The function now keeps track of the last 10 loaded projects for fast access. It also has a new function to store a project in the shortcuts tab. This is handy when you have more projects from different project folders loaded.

317ComponentsEnhancementLowChange message of dbgridClosed
23.05.202123.05.2021 Task Description

The standard load message of the dbgrid has been changed from text to a small rotating icon. There is a new property that disables the message.

316Backend / CoreBug ReportLowonprocesrow not triggeredFixed
22.05.202122.05.2021 Task Description

The event is not triggered, if you look into javascript there is an error that onselectall procedure is not found.

315Backend / CoreEnhancementLowQuerybuilder does not work in combination with grid-sea...Fixed
22.05.202122.05.2021 Task Description

It looks like that when you define fields as searchfields in the grid that it influences the query that is setup in the query builder component

314Backend / CoreEnhancementLowCannot maintain project foldersFixed
22.05.202122.05.2021 Task Description

I cannot add/delete project folders while saving or creating project

313Backend / CoreEnhancementLowglitch produced in dbnavigator by ajax execution of a ...Fixed
21.05.202122.05.2021 Task Description

- Create a form with dbnavigator
- add 2 field to test
- add a button to the form type button, add code to execute, for example changing the button text.
- run application
- click the button add of the dbnavigator
- once in edit mode, click the custom button.
- notice the code is executed but the dbnavigator state changes… instead of add mode goes to init mode.

312PHP GeneratorEnhancementLowdbimage class not being renderedFixed
21.05.202101.06.2021 Task Description

The class and the imgclass properties for the dbimage component are not being rendered

311Backend / CoreEnhancementLowCopy button class not generated.Fixed
05.05.202105.05.2021 Task Description


310IDEEnhancementLowReferencing elements on header/footer/side screens.Closed
25.04.202125.04.2021 Task Description

The use of $$ is descibed in the wiki. There are now 3 more prefixes that bind the variable to components of other modules:

$$h_ binds to header
$$f_ binds to footer
$$s_ binds to side

to access menu1 on the header you could write $$h_menu1→something
PHsPeed will locate the defined header and replace the $$h_ by the correct reference.

308IDEImprovementLowlabel properties for checkbox, listbox, wysiwygOn wish list
19.04.202124.04.2021 Task Description

label properties for background, typography, label color, etc not available in controls checkbox, listbox, wysiwyg, multiedit.

307Backend / CoreEnhancementLowAdding a building block with a form generates an errorFixed
13.04.202113.04.2021 Task Description

Although you create a new block, it generates the error that form_1 already exists (which it doesn’t)

306Backend / CoreBug ReportLowWhen adding a wizzard module to a block then when you u...Fixed
13.04.202113.04.2021 Task Description

In the wizzard you can add blocks to an application or a building block. In case of a building block you get an error if it contains a form.

305Backend / CoreEnhancementLowOverhaul menu Closed
09.04.202109.04.2021 Task Description

The menu component has got an overhaul. Although compatible to the current configuration, the code generation has been changed. It is now possible to add, delete and change menu items dynamically by code.

304Backend / CoreBug ReportLowaltermenuitem breaks codeFixed
07.04.202107.04.2021 Task Description

Calling altermenuitem terminates module. It lacks reference $this→

303Backend / CoreEnhancementLowheight and width properties not present in component cD...Fixed
06.04.202107.04.2021 Task Description

The list of cDBImage properties is missing height, width, max-height and max-width

302Backend / CoreEnhancementLowheight and width properties in image component not work...Fixed
06.04.202107.04.2021 Task Description

insert an image to a form
select the desired picture
set the height and width
as well as maxheight and maxwidth

notice how the html code is generated whitout semicolon making the styling code invalid.


<img src=”_libs/images/image.png” style=” width: 200px height: 200px max-width: 200px max-height: 200px” class=” float-none no” alt=”“>

301Backend / CoreEnhancementLowerror importing images to img component.Fixed
06.04.202107.04.2021 Task Description

insert an image component,
click in the button […] to the left of the picture property
click the option “select image from deploy” select the image and click ok
save the changes

notice how the picture properties now has a value similar to

which is injected in the html code failing to charge the image.

<img src=”_libs/images/image.png(alt=,width=0,height=0)” style=” width: 200px; height: 200px; max-width: 200px; max-height: 200px;” class=” float-none no” alt=”“>

Showing tasks 1 - 50 of 73 Page 1 of 21 - 2 -

Available keyboard shortcuts


Task Details

Task Editing