Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by rick

  1. // after your loop if( array_key_exists( 'fieldname', $input->post ) ) { // add yes stuff to email } else { // add no stuff to email } or if( is_null( $form->getChildByName( 'fieldname' ) ) { // add no stuff to email } else { // add yes stuff to email }
  2. @neophronYou already know this, I'm just thinkin' out loud. There are three ways to present a segmented data entry interface: 1) A single form with all data fields displayed and editable at one time on the same page. Data is visually isolated usually by framing. 2) A single form with multiple sections (ie, viewable tabs or steps). For example, step 1 could be personal info (name, address, etc.), step 2 could be product customization, and step 3 could be payment information. Having data segmented like this implies a sequential entry method where the user must progress in order. 3) Separate forms for each section (obviously uniquely named) on the same page. Forms are again visually framed. This is random in that the user may complete none or more sections (forms) in any order. Personally, I don't care for this method. I only included it because it can be done (not that it should be done). You say the 'designer' wants the form displayed in the uikit switcher. This sounds to me like they want the second option as they believe the data to be segmented and sequential. I believe Ryan has (or is working on) the Pro Forms module which handles a sequential method rather than coding it yourself. I remember seeing that topic from Ryan but I do not remember the status. Maybe someone can educate me of that status. The first two presentation options are standard practice but depends entirely on the type of information you are trying to obtain and how you as the programmer want the user to perform. For example, an academic test application might be better suited for the sequential method. Since the user should be logged in prior to accessing the form(s) you already have the 'account' information to which the form data belongs. Saving the data from whichever presentation method is easily done to that account via ajax and/or a normal submit function. <Off Topic> I put designer in quotes above because it takes me back many years when I did instructional design work. It is not the designer's job to state how the interface should function. That is determined by you and the SME (subject matter expert). Now if that designer is also the SME, then you're good to go. Otherwise, you should provide the designer with the guidelines to create the necessary interface based off your needs analysis. </Off Topic> Anyway, I hope all this blabberin' helps you some way.
  3. Have you tried the actual path rather than docroot?
  4. No. If both sites are now functional, then your hosting doesn't need special treatment.
  5. As long as your virtual hosts file points each domain to the proper doc root, you should not have any issues moving domain2 over to the domain1 host and run it in a sub dir. I do this many times with clients. You may also need to update domain2 htaccess and config.
  6. Probably the easiest method would be having their clients each with their own page, and each report is it's own child page. One template for the client pages and one template for the pdf pages. You can add the necessary fields to the pdf template to facilitate searching. Personally, I shy away from building intelligence into a naming conventions. You might have your client person(s) doing the uploading select the client then select the pdf file, and enter any other necessary data associated with that report. If your client already has a data system from which the reports are generated at a specific interval, then you might tap into that workflow. You might also consider using the created user ids for access control. Your client has clients (customers). Each customer would be a user in the system. That customer user id is used for their page and subsequent report page. Now you can use the logged in user to determine which pages are accessible. Just some thoughts out loud.
  7. When pages are automatically sorted on a field, the move option is still enabled. Attempting to move one of those pages results in the following error: Your sort was not saved because these pages are automatically sorted by 'fieldname' PW .179 PHP 7.4 Personally, I think the move option should be removed when a field sort is defined, rather than just catching this exception.
  8. Make sure that your from address is the same as your user (login) address, and that you have the dns records defined as netcarver stated. On a similar note, I don't use mailinabox, rather an old squirrel mail install for linuxdude. It is a pita running your own mail server by keeping up with the spammers. And you will have spammers.
  9. Can you edit the topic as solved so others know this is the place for answers to similar issues.
  10. From your segment... $p->of(false); // output formatting should be off prior to editing page data. $p->singleImage->add($remoteUrl); //grab the image. $p->save(); $p->of(false); // page save resets output formatting, so turn it off again. $image = $p->singleImage->first(); //load up image that was just saved. $newFilename = $parentName . '-' . $childName . '.' . strtolower($image->ext()); $p->singleImage->rename($image, $newFilename); $p->save(); //save changes to page.
  11. Do you have output formatting off prior to working with the page data? It's not shown in your snippet, so I'm asking if it was included above the code segment you posted.
  12. I doubt it is an email server issue or wiremail issue. The logs show one email sent but yet you receive two. Correct? What email client are you using and do you have any rules defined for that email address?
  13. Exactly. That is the crux of the problem here. It's not any different than the other module developers here selling pro versions. Unscrupulous people will always find a way to circumvent licensing. The best you can do is trust the customer to honor your license models. You save the license id, transaction id, or whatever id for future reference. It could be in a database or a spreadsheet so that any inquiries from a customer can be checked against that database for validity.
  14. Basically, the simplest solution, for example, is to use something similar to paypal's 'buy now' buttons; one for each license type. It really doesn't matter about a specific license ID unless you want to identify a particular user when they request support, etc., and then you can pass a unique ID which is returned with the transaction confirmation. In this example, you don't need to mess with any type of license key entry in your module; The customer just downloads the module from an email link. You insert the 'transaction id' in the email for their records that you can compare with your database entry at some future date. I know my replies seem somewhat 'negative' toward a viable solution and I apologize for that. On a positive note, one method I used many years ago was to keep certain 'key' functions on the server. The program would pass the license key and specific data to be processed on the server. If the license was valid, then the result was returned to the program for further processing. Again, this requires a 'phone home' procedure, which most people, including myself, don't really like.
  15. That is a question I've been working on since the mid 90s. There is no simple solution when dealing with publicly viewable code. Generating a unique key is straightforward (eg, GUID, etc.). Validating the key requires a 'phone home' procedure, whether you do it on install or every time the code is executed is a choice to make. The problem lies with controlling the source code execution based on that validation. It is not possible to accomplish that with publicly viewable code.
  16. I'm not understanding this statement. Of course nothing you changed will be reflected until you save those changes. You edit existing content. Save those edits. Refresh the browser. Am I misunderstanding your goal?
  17. For the front-end, I use the header meta cache directives to disable the browser cache during development. I can comment them out to test caching See this link for more info.
  18. Check this reference ... santizer
  19. Hi @stanoliver, What are you wanting to do with wiremail? In general, Using the example from the MDN link I posted, this form contains three options (radio buttons). You will notice that each radio button has the same name (contact), effectively creating an array, or group. Remember that only one option can be selected (or no option). // I've added a few things to the example to help clarify my explanation. // I've added the action and method to the example. // I've added the required attribute to the input element. <form action="" method="post"> <p>Please select your preferred contact method:</p> <div> <input type="radio" id="contactChoice1" name="contact" value="email" required> <label for="contactChoice1">Email</label> <input type="radio" id="contactChoice2" name="contact" value="phone" required> <label for="contactChoice2">Phone</label> <input type="radio" id="contactChoice3" name="contact" value="mail" required> <label for="contactChoice3">Mail</label> </div> <div> <button type="submit">Submit</button> </div> </form> When this form is submitted, only a selected radio button is submitted. For example, if a user selects "Phone", then the server receives $_POST["contact"]="phone". Since I specified each option is required, then the user *must select one. If the options were not required, then if no option was selected, there would not be a contact parameter. So in your server side script (the php file associated with the template) you would do something like this: $contact = $input->post('contact'); // $contact now contains the selected value, either "email", "phone", or "mail" if( $contact == "email" ) { // do some email stuff. } elseif ( $contact == "phone" ) { // do some phone stuff. } elseif( $contact == "mail" ) { // do some mail stuff. } Is this what you are looking for? If not, please give me more information to go on.
  20. For reference... Input type radio Regardless of how many options you make available to the user, each one has a unique value. Since the value of the selected radio button is submitted with the form, the only sanitation you need is to check whether the submitted option is in, for example an array of valid values. Just to clarify terminology, a radio button and a check box are two different types of inputs. A radio button is usually presented as a set of options in which only one can be selected, eg, Select Size: ()small, ()medium, ()large. A check box on the other hand is displayed as a single on/off indicator for a specific option, eg, Display User Name [yes|no] <- checked or unchecked.
  21. Welcome to the forum. Great post!
  22. You mean Module Refresh, correct?
  • Create New...