This topic is locked
[SOLVED]

 Please Explain this piece of Code Snippet

2/26/2011 2:20:23 PM
PHPRunner General questions
L
LarryM author

I took this from the manual.

I'm just trying to learn how to use Code Snippets.

I'm only showing the part that's giving me trouble.

On my Customer list page Edit Screen, I placed the following code snippet on the detail line.

(I'm using PHPRunner 5.3 and Microsoft Access for this database.)
global $dal, $strTableName;
if ($_SESSION[$strTableName."_masterkey1"])


// This test always returns false. How can I make it true?
My 1st Question: Do I need to set $strTableName to something like table "Customer" or should it already initialized to the List page Customer Table?

My 2nd Question: Is _masterkey1 supposed to be substituted with my own key name like "CustomerNumber" or is it some kind of global substitute for my key already set for the current Session?
The manual only says to replace table name in the example. It doesn't say anything about $strTableName or "_masterkey1".
ANY help appreciated!

Admin 2/26/2011

global keyword means you refer to the variable defined earlier. $strTableName is defined for each table page and you don't need to do anything else.
Make sure you apply this code to one of details page. This code is correct howeever it only makes sense when you access one of details table pages and master record was selected.

E
electromotive 2/27/2011



I took this from the manual.

I'm just trying to learn how to use Code Snippets.

I'm only showing the part that's giving me trouble.

On my Customer list page Edit Screen, I placed the following code snippet on the detail line.

(I'm using PHPRunner 5.3 and Microsoft Access for this database.)
global $dal, $strTableName;
if ($_SESSION[$strTableName."_masterkey1"])


// This test always returns false. How can I make it true?
My 1st Question: Do I need to set $strTableName to something like table "Customer" or should it already initialized to the List page Customer Table?

My 2nd Question: Is _masterkey1 supposed to be substituted with my own key name like "CustomerNumber" or is it some kind of global substitute for my key already set for the current Session?
The manual only says to replace table name in the example. It doesn't say anything about $strTableName or "_masterkey1".
ANY help appreciated!



$strTableName will always be defined as the table you are editing. You could just say $_SESSION["mytable_masterkey1"], however when you reused this code snippet for other tables, you'll have to change your statement. Using $strTableName makes this part of the snippet reusable.
From the manual, $_SESSION[$strTableName."_masterkey1"] refers to the "Master table foreign key values".
$_SESSION[$strTableName."_masterkey1"] will be defined if the table in this edit is being accessed as a detail table. So the if statement is saying - are you editing a detail table (via a detail link)? (Or directly editing the table.) There may be more than one master table in your schema. $_SESSION[$strTableName."_mastertable"], if defined, says which master is in effect.
If the table in this edit will never be a detail table, then it will always be false and you don't need to use this.

L
LarryM author 2/28/2011



$strTableName will always be defined as the table you are editing. You could just say $_SESSION["mytable_masterkey1"], however when you reused this code snippet for other tables, you'll have to change your statement. Using $strTableName makes this part of the snippet reusable.
From the manual, $_SESSION[$strTableName."_masterkey1"] refers to the "Master table foreign key values".
$_SESSION[$strTableName."_masterkey1"] will be defined if the table in this edit is being accessed as a detail table. So the if statement is saying - are you editing a detail table (via a detail link)? (Or directly editing the table.) There may be more than one master table in your schema. $_SESSION[$strTableName."_mastertable"], if defined, says which master is in effect.
If the table in this edit will never be a detail table, then it will always be false and you don't need to use this.


Thanks very much for your explanation. I'm starting to catch on a little BUT how does one go about finding out what values are set where? It would be so much simpler if I could see this. The manual doesn't give much help, at least I haven't found, that tells what variables I can use to access things except for the short code sippits. For example, I'm working in the Edit Screen on of a List page of My customer table. Say I want to retrieve the key of the current record being listed so that I can access another table to list some detail underneath the current Customer record line. How can I retrieve that key? (in a code snippet) I've tried $Data["CUSTOMERNUMBER"], $Values["CUSTOMERNUMER"]. Nothing seems to work. I even tried printing the $_SESSION["USERID"] thinking that would surely be initialized, but it wasn't. I did finally figure out from the manual that I could set USERID in the after login event. I know once I catch on to where stuff is set, I can figure out the rest. Do I look in the actual code to find this info? Can you tell me what area? Thanks!

Admin 2/28/2011

You cannot access key values from code snippet.
You can have better luck explaining what exactly you trying to achieve and what page is that?

E
electromotive 3/1/2011



Thanks very much for your explanation. I'm starting to catch on a little BUT how does one go about finding out what values are set where? It would be so much simpler if I could see this. The manual doesn't give much help, at least I haven't found, that tells what variables I can use to access things except for the short code sippits. For example, I'm working in the Edit Screen on of a List page of My customer table. Say I want to retrieve the key of the current record being listed so that I can access another table to list some detail underneath the current Customer record line. How can I retrieve that key? (in a code snippet) I've tried $Data["CUSTOMERNUMBER"], $Values["CUSTOMERNUMER"]. Nothing seems to work. I even tried printing the $_SESSION["USERID"] thinking that would surely be initialized, but it wasn't. I did finally figure out from the manual that I could set USERID in the after login event. I know once I catch on to where stuff is set, I can figure out the rest. Do I look in the actual code to find this info? Can you tell me what area? Thanks!



My reading is that the developer has to draw the line someplace at providing detailed documentation for programmers, balancing the resources they have, the market for the product, what they charge for the product, etc.
The primary market for the product is for generating database applications which do the basic operations without any programming, that's creating records, reading records, updating records and deleting records. This is a complex code generator which generates license-free code for all elements required for web-based operation, supporting multiple browsers, and a range of different servers. IMHO Its the best product in this market segment. Its not an application development/programming framework like ADF, CodeIgniter, RoR, ASP.net, etc. Nor is it a CMS.
Starting down the path of customization, programming, coding in this environment requires a good working knowledge of HTML, CSS, PHP/ASP, SQL & Javascript, as well some familiarity with the concepts of template languages/scripting, as well as good understanding of how the web-based client/server environment works, AJAX, what code gets executed where, what the scope of variables are, etc., etc.
They cannot possibly teach all these things to novices, but there thousands of experienced web programmers around who fully understand all these things and more.
While a novice may get away with adding the occasional snippet, such as changing inputs to upper or lower case, once they start accessing keys and tables directly in SQL, maintaining their own referential integrity, then they are left to their own devices. There is what you'd call a hurdle. If you know how to find out the answers to your questions, then you probably have most of the knowledge you need to add code in this environment.
Looking at/reading the generated PHP code as well as leaving breadcrumbs, dumping arrays, etc., will help a lot in working out where and when application variables are set. You'll find out that its not all that mysterious. You have access to and can read all the generated code, peruse the function/method libraries.

L
LarryM author 3/2/2011

I would like to inform you that I am not a complete novice. I have been programming for many years. I am pretty new to and learning PHP, Java Script, CSS, JQuery, and web programming, (need to add AJAX soon) but I am very accustomed to working with queries, keys, pointers, APIs, other DLL objects, etc in 'C' and various versions of BASIC, 'Power Basic, Access Basic and a few other languages now outdated languages.
I have a major double entry accounting application I wrote that has earned me a living for many years. I own Sunset Software Publishing, Inc. and have managed eight programmers at one time before starting my own company at SunsetSoftwarePublishing.com. I get a little ruffled when someone starts telling me what a Global variable is, but I guess you didn't know I already knew that.
I have always just figured things out for myself because I hate asking questions, but this time, I thought I would attempt to speed things up by asking where a few pre-set variables were initialized. Why have a code snippet in the record list section if you can't access the recordset variables and why wouldn't that information be useful in the manual? I'm guessing that you are cloning the recordset variables in your events code to make them available.
Yes, I can dig it out of the code and I guess I will. I am currently president of 2 companies and owner of one sole proprietorship which keeps me pretty busy so I was hoping to save some time. Before I bought the product I stated my concern that it might be lacking some documentation and the reply was, to paraphrase, 'I guess you have not seen all the web help available'.
I wish someone had told me I shouldn't attempt to use phpRunner for serious development. Actually, I think it is a great product and a wonderful launching off point for further development, but don't expect me to be happy just developing Add/change/delete/List routines. I could have wrote my own version of phpRunner as I have wrote compliers and code generators before using 'C' and 'YACC', Yet Another Compiler Compiler, (for you newbies) and written my own ISAM in 'C' before but why re-invent the wheel, especially when I don't have time.
I stated my intentions during the free trial of converting my accounting application, a public administrators accounting system, sold and supported nationally, to the web hoping to develop SAAS hosted in the cloud. I asked if PHPRunner was capable of doing that. The reply I got was "I can't tell you how long that would take since I don't know your application". I guess he didn't read the question very closely. That is all to typical in today's society so I didn't bother asking again.
I also want to develop all-in-house software for my Cosmetology school, SeymourBeautyAcademy.edu. I have a good start thanks to PHPRunner! I am developing an appointment book that interfaces to inventory and sales receipts, a Customer database, a project managment system, leads tracker, events calendar, student records system, management-instructors work flow system, and policy tracking system to name a few! I want my appointment book to be able to look up the students speed at say, giving a Hair texture treatment, or permanent color and allocate time to the customer accordingly, then transfer to the sales journal for end of day sales receipts. I want the grade system to notify me when a student's grades are falling, I want the leads tracker to remind me when to re-call a potential student. I want this system to be on line since I am never at the same location.
So hopefully you can see why I'm trying to get a heads-up on a few little things. If I'm out of bounds, I'm sorry. I know phpRunner is very reasonably priced for what it does! That's why I bought the Enterprise version, and I would highly recommend it! It does seem a little bit more than a system for novices though. I mean, just to use some of the features, one is probably going to have to know quite a bit about Appache or Unix, MYSQL, PHP, and a few other goodies. My apologies for sounding like a total newbie. I thought that approach might get me better answers without trying to sound like a know-it all. I have a lot to learn about web programming. Thanks for taking the time to read my rant. I don't want to get started on the wrong foot with you all because I will need you!

E
electromotive 3/2/2011

Sorry about pitching my response too general, I was just thinking more about the dozens of others that will be reading this thread over the coming year. So please substitute my references to novice with "PHPR Newbie" <img src='https://asprunner.com/forums/file.php?topicimage=1&fieldname=reply&id=56838&image=1&table=forumreplies' class='bbc_emoticon' alt=':)' />
You are right in that this is not a turnkey drop-in solution for non-programmers. But it's about as close to that as you can get for web-based database applications. Considerable knowledge is required to setup and maintain the environment, as well as to design the database, layout the forms, etc. It generates code in probably one of the most complex environments there is (cross platforms). But PHPR works brilliantly saving lots of time for straightforward applications.
But as soon as you need to crack-it wideopen and get into serious coding, then you have to weigh-off the pros & cons of using a code generator vs. coding it up from scratch using a framework & jquery, etc. Either way there is learn-up involved the more you need to do. With PHPR it starts off real easy, but the more you want to extend and customize the harder it gets. With a framework, it starts off quite steep, but once you get there then extending gets easier and easier. Newbies (not novices <img src='https://asprunner.com/forums/file.php?topicimage=1&fieldname=reply&id=56838&image=2&table=forumreplies' class='bbc_emoticon' alt=':)' /> will want to try and understand where this transition occurs. A real benefit of PHPR is you get to develop and prototype access rules to the database very early on, even if in some cases its short on special features you'll ultimately need for custom real-world applications.
I too would like to see the book - "Customizing PHPR - The Complete Guide with Examples", and will go on record that I will make a serious contribution to this 400-700ppg volume.

L
LarryM author 3/2/2011

Agreed, I am a PHPR Newbie, and if you get that book put together, I'll put in my order now for the first copy! I would say it should bring about $125.00++ per copy! By the way, they could pull in some extra cash by putting out a printed copy of the current manual which should bring about $50.00 per copy. How about a poll? How many would buy a really good programmers manual for PHPR?
I think PHPR is a slick enough product to be considered by serious programmers, IF, they make the inner workings more understandable. Just look at Drupal, they appear to be doing okay. I've already purchased 3 of their books.

Admin 3/3/2011

If you need to access fields content on the List page set 'View as' type of one of those fields to 'Custom'. You can access any field value as $data["FieldName"]. Here are code samples: http://xlinesoft.com/phprunner/docs/_view_as__settings_custom.htm
Another thing - PHP is a case-sensitive language. $_SESSION["UserID"] is correct while $_SESSION["USERID"] is not.

L
LarryM author 3/3/2011

THANK YOU ! This is what I was looking for!

E
electromotive 3/5/2011



Agreed, I am a PHPR Newbie, and if you get that book put together, I'll put in my order now for the first copy! I would say it should bring about $125.00++ per copy! By the way, they could pull in some extra cash by putting out a printed copy of the current manual which should bring about $50.00 per copy. How about a poll? How many would buy a really good programmers manual for PHPR?
I think PHPR is a slick enough product to be considered by serious programmers, IF, they make the inner workings more understandable. Just look at Drupal, they appear to be doing okay. I've already purchased 3 of their books.



There's a couple of other dimensions to exposing the inner workings.
First, is that ASPR/PHRR is a proprietary product, not like the open source world we've come to know and love. This a competitive environment, with several other products playing in this market. I would understand if there is some reluctance to disclose inner workings, but this of course has to be balanced against being fit for purpose and usability. Every 6 months or so, the developers ask their customers to state their foremost requirements for extensions and new features. The more we contribute to that process, the more we are likely to get.
Second, the product evolves and grows year to year, and some thought is given on how to extend the core features while not leaving many behind. The more customization there is outside the established mechanisms, the harder it will be to upgrade to/follow the new versions of the product, or even to be able to regenerate the forms and code. There are probably a few users who have customized so much they can no longer follow new releases, just using new releases for new projects. That's a bad place to be. So as soon as you start modifying the generated HTML and PHP files, you are really on your own and you would be better off using a framework and coding from scratch.
I believe the goal is try and kept custom programming to a minimum. While some custom programming is unavoidable at the moment, I can see a time (in my dreams) when custom coding of HTML, CSS, ASP/PHP and JavaScript will largely be unnecessary, even for rather comprehensive applications.

Admin 3/6/2011

LarryM, electro rick,
can you shed some light on what "Customizing PHPR - The Complete Guide with Examples" should cover?

Is that a repackage of existing manual and tutorials or something totally new? Any practical examples or books we can check?

E
electromotive 3/6/2011



LarryM, electro rick,
can you shed some light on what "Customizing PHPR - The Complete Guide with Examples" should cover?

Is that a repackage of existing manual and tutorials or something totally new? Any practical examples or books we can check?



Hi. LarryM (above) suggested in the first instance that a repackage of the existing manual (complete with tutorials) would be a good place to start.
I am in the middle of customizing a project to support a mix of regular browsers and mobile browsers. But when I get some pressure off I'd like to offer a draft (at least a starting point) ToC for what might be included in a complete guide.
But maybe the guts would be four major sections. First basic section is a description of what the web environment is - the databases, servers, workstations/browsers, DOM, the languages involved HTML, PHP/ASP, CSS, SQL, JavaScript, what code runs where, what each is for. The differences between databases, why you care, the differences between browsers and why you should care, the differences between windows and linux servers, how to get lost in your DOM, etc. Then what ASPR/PHPR is - how it works, what it does, what/where the files are, what they do. Then building applications, how to start the design process, creating new databases, building applications from existing databases, master/details and other types of relationships and database structures, validations, using the themes, creating your own themes, import/export, handling multimedia, foreign languages, multiple languages, custom labels, security levels, linking logons/security to AD or a CMS, coupling your generated code into other environments (sessions, cookies, etc), using custom icons, creating your own links. How to/best practices for managing large projects with scores/hundreds of tables, and the spaghetti diagram of cross linkages, how to encode/maintain your relationship schema into ASPR/PHPR, when to use the DB's foreign keys and views vs foreign keys and views within ASPR/PHPR, ways to partition the project so that 2 or more developers can work on them, how to document and peer review designs and coding, how to extract the internal SQL, PHP, JavaScript (for documentation and review), how to find fields in the label editor when there's literally thousands of fields in seeming random order, etc, etc. How to improve performance when you have monster tables, slow networks and high transaction rates. How to avoid problems when doing lookups into very large tables. Why/how you might change the timer for the details popup preview. What changes to the environmental variables in the Windows/Linux servers (Apache, SQL, etc) you might need to do, and how to do that. How to update live systems, the issues and possible solutions. How to setup/handle the database on a different server. For developers practicing Model-View-Controller (MVC), database abstraction, and other common paradigms/strategies, how they might practice that. In short, everything about using the hundreds of features built into ASPR/PHPR, except the customizing and programming. Start from the manual/tutorials and increase in detail and depth by a factor of 4.
Second section would be all the small/minor customizations you could do, the tiny code snippets that anyone can do pretty safely, cut and paste. Events, custom validations, regular expressions, how to maintain basic referential integrity (not leaving orphans) & uphold your database rules, how to anticipate runtime DB errors and how to avoid them, the DAL when and how to use it, the built-in session variables (what they are, lots of examples on how to use them), coding practices such as traps & tricks of mixing SQL, PHP and JavaScript in events, using nested quotes and quote escaping, when to addslashes, when/how to jump around/redirect between pages programmatically, when/why/how to use JavaScript to change pages and how to pass parameters, how to dynamically create content on a page, why when how you can do that, why when how to dynamically refresh pages, dynamically generating emails & other external events, using templates and template language. Step through event by event, when events get triggered and when they don't, what the scope/context is at each event, the template variables available, what they do, how to use them. All the individual how-to's - how to dynamically control whether to display the master table at the top of a list, how to go back from add/edit to the same place in a big list, how to tell what search/filter is in effect, how to dynamically turn on/off edit/add/delete buttons based on record state, how to dynamically apply colors or emphasis to fields, how to auto-tab, set focus, how to dynamically make fields read-only or hide them, etc, etc. Customizing limitations when using inline adds/edits. This section describes all the individual customization/programming mechanisms available. Also shows changes/evolution between ASPR/PHPR versions, how this affected customization and programming, the new features, new approaches. At least a chapter on testing and debugging techniques for SQL, ASP/PHP, HTML, JavaScript, CSS, etc., what third party development/debugging tools are commonly used and how.
The third section I'd like to see is application focused, to take each of the existing sample projects (templates) such as Cars, Classified, Events, Jobs, PayPal, RealEstate, Vacation, etc, which to some small extent have been customized, and show how starting from a blank page, show how these applications are designed and how the customizations were done. The schema, the layout of the pages, how to add the dynamically created helper search/filter list on the left side of list page, etc. These are basic, but at least show the process and how to create custom search strings/filters, modify HTML, how to test the code. Also show what, if any, maintenance would be required in updating these from 5.2 to 5.3 (and to 6.x). Maybe one chapter devoted to each application. Call this section "samples of customized projects'. Structure the chapters to walk through step by step so that you'd end up with a working/tested application. Then how to create your own templates, why and how.
And then follow this with the fourth section, a more extensive customization guide with examples, maybe not of whole projects, but whole parts. How to create your own pages and workflows which are not directly derived from tables using the same style, applications which are not entirely database centric, examples of many of the typical corporate, commercial, industrial, scientific, or social networking applications. All the advanced topics. How to design and setup dynamic multi-table views, adds/updates. Using JQuery, AJAX, custom CSS, integrating with other applications, binding your own php scripts & sharing session & variables, accessing the DB from your own scripts through the same connection, how to blend two or more projects, accessing other databases (and other types), templates for displaying lists of data returned from other databases in same style, accessing data on other servers (server-server), sharing common code amongst multiple events, when/how to differ bulk updates/deletes to batch, how to invoke windows/linux schedulers, why/how to save user context/state across multiple sessions, generating your own PDFs for creating printable labels/forms, creating mobile friendly applications, examples of how to make grid lists which keep the column headers stationary and allow continuous scrolling, and lots of the neat Web 2.0 widgets. How to do these necessary things in a way which is maintainable and as future-proof as can be.

Admin 3/10/2011

electro rick,
wow, I'm really impressed. I really like the way you think.
I have a few thoughts about this.
Writing this kind of book will require a real writer. Someone with technical experience, someone who can explain things the way most people would understand.
Another thing - in web development world everything changes fast. PHPRunner changes fast. Its inevitable that some chapters become obsolete or need to be updated once PHPRunner 6 is released. This means some additional work on the way. It also needs to stay in sync with the manual, tutorials and other materials.
I'm thinking about some kind of online book or well-structured wiki that everyone can edit and extend. It would make sense to create the initial set of charters/pages so people can start pasting stuff from the manual, forums, articles, blog etc. This way we can involve as many bright minds as possible and always have up to date guide.
Does this make any sense?

E
electromotive 3/12/2011



electro rick,
wow, I'm really impressed. I really like the way you think.
I have a few thoughts about this.
Writing this kind of book will require a real writer. Someone with technical experience, someone who can explain things the way most people would understand.
Another thing - in web development world everything changes fast. PHPRunner changes fast. Its inevitable that some chapters become obsolete or need to be updated once PHPRunner 6 is released. This means some additional work on the way. It also needs to stay in sync with the manual, tutorials and other materials.
I'm thinking about some kind of online book or well-structured wiki that everyone can edit and extend. It would make sense to create the initial set of charters/pages so people can start pasting stuff from the manual, forums, articles, blog etc. This way we can involve as many bright minds as possible and always have up to date guide.
Does this make any sense?



Yep. I completely agree, been thinking about this. A printed book is immediately obsolete, to a degree. But look at the bibles that have been done in the past, for Access, Delphi, ASP.Net, etc. I'm staggered at the number of dotNet books available on Amazon. What impresses me is just how fast some of these books come out for new versions. But for this an eBook could make more sense. It probably comes down to what the authors want to do, whether its an independent publication, collaborative, or done by xlinesoft or developers.
It would require a small team of advanced contributors to put together a cooperative online version of the documentation, a repository, possibly Wiki based, but personally I like to see the repository built/based on an ASPR/PHPR generated application. Immediately this is of value, even just if its only 10% there at the start.
Could just start by documenting how a/the wiki-like documentation repository is designed and constructed. Make the evolving project available to license holders. Document its evolution to 6.x. Include just about every how-to into the project. A living multi-media document, with links to video-clips like in the current tutorials.
If "we" can make ASPR/PHPR easier to use for a wider audience of developers, by providing more comprehensive documentation and working examples, then we have here the possibility to extend the usage/application of ASPR/PHPR an order of magnitude, IMHO.
As a secondary benefit, those customizations which are popular but complicated (like creating custom search strings) can be targeted by the developers for simplification, helping provide a bit of a roadmap.

D
dicksdo 4/14/2011

I read this thread following Sergey's emailed newsletter and as a potential customer for a printed PHP/ASP Runner book please permit me to make a few non technical observations.

I too am a PHP/ASP Runner newbie though I have been playing with the application on and off since version 4 of PHP Runner, though I now use the current versions.

I disagree with some of the comments I have hitherto read because where I see PHP/ASP Runner in the market is as a turnkey solution where the templates can be modified without too much difficulty to meet end user needs. As we have seen it previously described "The primary market for the product is for generating database applications which do the basic operations without any programming" The PHP/ASP Runner product does this well and has just been getting better and better.
However, as I do regard PHP/ASP Runner as a turnkey solution, especially for newbies, most often there is a demand for some basic handholding. This is clearly a time consuming overhead if the same or similar questions or challenges are repeated/experienced by multiple customers.
For example for many newbies one of the biggest early challenges is simply deployment, not on one's own server but more often than not on a shared server service, so any user manual needs to cover such aspects. Whilst it can be argued that such a need is not a strictly classified application development need, it is a need for some customers who purchased the product.
Let me give you an example if I may. I also use WebAssist extensions with Adobe Dreamweaver and I find their tutorials with accompanying printable notes invaluable. The first time I deployed a PHP MySQL database into a website hosted on a shared "1and1" server, the WebAssist tutorials walked me through the process and potentially saved me hours of agony. Those tutorials did cover all the aspects of the WebAssist database deployment including working with MySQL.
Another need, as you may be considering 'e-books', is that you cannot beat printed paper for making margin notes. My bookshelves are loaded with various books that the original vendors did not produce. These third party books I find useful and often come with an 'e-book' on disk. I rarely look at the disk, unless it involves tutorials to work through, though I do find it useful to copy and paste code in provided examples so as to avoid typos
Considering my own background as a customer, I don't spend all day working with PHP and ASP databases, I don't spend all day working with PHP code and nor do I spend all day building web sites. I am now 65 years old, a retired senior manager of a global technical business and pass my time as an amateur who does unpaid voluntary technical work for a number of charities and, in that capacity often need to go back and read my margin notes to see what I did previously to make something work. As I mentioned, I see the PHP Runner application as a turnkey solution. I don't want to develop something from the ground up but I do want to modify the templates to meet my own particular need. So far I have managed to do that with PHP/ASP Runner, though the learning curve has been, and continues to be, steep so I would have loved a step by step pictorial guide to save me time.
Last point about 'e-books' is that whilst they are searchable you never read them from cover to cover, whereas I do (eventually) work through the chapters of printed books. Even if I do not fully understand the chapter content I at least know that it exists so that as my skills develop and the 'penny drops' I know where to turn to in the book to find a solution.
My final point is about longevity of a printed book. Yes they do sometimes need replacing when new versions of an application appear, but there is market for the new versions and the old versions side by side. For instance I still use Adobe Dreamweaver in CS 4 (not 5) and I only upgrade every couple of versions yet I bought my last CS4 book just a couple of months ago. I can understand that at some point you have to stick a peg in the ground to develop a book and maybe one way to start is to take what you already have (or are working on for the next release) and get a really good editor to pull it together into a workable volume. There must be many folk like me who really do want a step by step manual on how to use, modify and deploy the PHP/ASP Runner output onto a variety of platforms. As you can tell, we really do need the help from the experts; by definition 'experts' know more than us and we are used to paying for help from experts, so paying for a book is paying the experts <img src='https://asprunner.com/forums/file.php?topicimage=1&fieldname=reply&id=57636&image=1&table=forumreplies' class='bbc_emoticon' alt=':)' />
Bottom line I suppose is that if you are a professional developer or database architect you are perhaps less likely to opt for a turnkey solution. On the other hand if you are an amateur you are most likely to opt for a turnkey solution and, by that definition, more likely to benefit most from a step by step tutorial focused guide.
Hope my thoughts are helpful in setting out your goals, objectives and target audience for any book produced.

Best wishes to all

Don

E
electromotive 4/16/2011

One of the things I really liked about many of the large PHP open source projects like Drupal and Coppermine, is that you could get your project running using just configuration, and then extend it using the extensive developer and third-party contributed plug-ins or add-on libraries which extended core functionality. They come with installation scripts, been deployed in just about every environment. Rarely any actual coding required, don't need to know what PHP, CSS or Javascript is in order to use these packages.
For more information about plugins Google "PHP Plugin Systems" and "Open source PHP content management systems".
Now its quite clear how/why developers contribute to open source projects.
What I'm fuzzy about is how/why third party developers would/should contribute to proprietary projects. But there are many precedents. There are lots of proprietary software packages which provide well defined plug-in interface, and then whole communities appear providing both free and paid-for plug-ins. Photoshop is a well known example. To encourage high quality plugins, a protection mechanism is built-in to allow licensing of addons. A real break-through comes when a "store" is available to act as a repository and royalty collection service for the developers. To get their "apps" into the store, developers need to comply with certain standards.
On a whole different level is the smartphone environments and all the free and licensed apps you can get to extend/customize the functionality of these phones (what's most relevant here maybe the business model for encouraging third parties).

P
procheck 4/18/2011

Here's my 2 cents. We're obviously dealing with people of varying experiences. I come from a mainframe world where nothing is easy and the manuals are worse. IBM will give you all the reference you can read but no examples. That's my impression of Wiki's. Too many links to this and that and you have an unusable manual because you can get so deep in the links that you don't know where you started or some real "good ones" that have you running around in circles.
I purchased PHPRunner because I didn't want to deal with the endless security issues that Runner automatically takes care of. The endless validations that I don't need to do. Maybe Runner started out as a CRUD application, but like it or not, I think you've developed something that will require you to think about experienced and novice programmers alike. There's no going back now. You're the victim of your own success!
My favorite books have always been SAMS. Easy to ready, good explanations with real life step by step examples. This forum has many good examples but they're not always easy to find and you can spend too much time searching and you end up with less time to develop. Plus sometimes the info you find is outdated. Many people use XAMP, WAMP etc.. but the SAMS books helped me set up Apache step by step and I was also able to configure it. So now when I have a problem, I know where to look.
You're almost looking at two manuals here. A novice one which explains the obvious. What seems obvious to one person is not obvious to the next. I'm sure I've made Jane shake her head from time to time. Then an advanced manual with the wealth of examples found in this forum. Due the the language barriers, sometimes the questions are not easy to understand or it goes back & forth for a stretch so the answers become unusable to the casual viewer. Sometimes I'm very amazed that Sergey & Jane can even give the correct answer when I didn't even understand the question. These could be properly formatted as part of the manual. Examples, examples, examples. Sometimes what seems like the same situation requires a bit different code but this can take hours to discover. I realize that there cannot be examples for everything but the more the better.
Everyone has had unique problems which they've had to overcome. People could submit properly formatted(same format) examples explaining the problem and a detailed explanation of the fix with screen prints. I think the how-to videos were fantastic and a great example of what I'm talking about. I don't mean that everyone needs to create a video but an html document which identifys one thing and shows you how to do it by example.
Custom programming support is always available but this is something I would only use in a bind to complete something. If possible I would like to see something where instead of just receiving some completed custom code, I would like to learn how to do it instead. If I don't understand it then I can't support it. This is being done to an extent already but sometimes even a bit more detailed explanation is required. That I would pay for. Sometimes it's just an explanation about how something works.
And last. There is no such thing as a simple application. It only takes one person to ask "Why can't I do that? I can do it on the other site." All of a sudden you're knee deep in custom coding and this is usually when your knowledge doesn't match the requirements. This is the normal cycle of programming. Applications will get become more difficult, not easier over time and for many people the buck stops with them.
It's not an easy task to create a good manual.
Al

K
kenlyle 4/29/2011

Maybe the answer is a PHPR project based on the Members and Store templates. It should be possible for authors to sell subscriptions to their works...seems to solve a lot of the issues, and to serve as a way to push those two templates forward, as well as useful as a tutorial, if the actual development decisions are documented.
Best,

Ken