fmwebschool.com
Top Experts [learn more]Top 4-10
webko

8918 K
bandmandq

2408 K
Genx

1525 K
4. tcmeyers
5. kbata
6. Martie
7. Hammerton
8. rrenfrow
9. bneeman
10. plegler
Welcome, Guest. Please login or register.
September 02, 2010, 04:56:10 PM

Login with username, password and session length
Search:     Advanced search
FMWebschool releases more educational FMStudio webinars - check them out here:
http://www.fmwebschool.com/webinars.php
25313 Posts in 5589 Topics by 3956 Members
Latest Member: rncompubooks
* Home Help Search Calendar Login Register
+  fmwebschool.com
|-+  FMWebschool Products and Solutions
| |-+  BlackBelt CDML Software
| | |-+  Blackbelt and Case Insensitivity
0 Members and 2 Guests are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: Blackbelt and Case Insensitivity  (Read 1616 times)
theKiwi
Full Member
***
Offline Offline

Posts: 142
Kudos: 50



Applications:
« on: March 31, 2007, 06:55:10 AM »

I've been working on what to me at least is my most complicated database setup moving it from FileMaker Pro Unlimted 6 to FMSA 8.

It's a shopping cart system that allows a search in a database for Obituary records, then allows site visitors to accumulate a cart of Obits they want to order, then check out, choosing either to pay by PayPal or Cheque. I have a page on which they make this choice by means of a button, but neither button works.

Now I notice in the config.inc.php file a note about

/*
 * Turn on case insensitivity, this is a compatibility mode setting for FMP5/6 behaviour
 * Note that this setting adds processing overhead, please feel free to disable once all
 * your field names in both searches and edits are the correct case.
 */

define('BLACKBELT_CASE_INSENSITIVE', TRUE);

is this applying to file names, or values being passed, or the field names or all of the above? The reason I ask is that as you proceed through the system this is the first page I think that has mixed case file names in the solution.

If someone wants to take a look you can get to it here

http://datanew.wmgs.org/

and scroll down to find West Michigan Obituaries and click the blue Search button beside it.

The process stops on the page after you've entered name and address and have to choose payment method.

Thanks if anyone has a clue what might be causing either of those buttons to load an empty page.

Roger
Logged
theKiwi
Full Member
***
Offline Offline

Posts: 142
Kudos: 50



Applications:
« Reply #1 on: March 31, 2007, 08:23:49 AM »

Okay, replying to self here (not a good sign I guess)....

The problem is nothing to do with case insensitivity...

The solution I had, based on a Video store cart system I purchased from FMWebSchool some years ago used 4 files..

The database
Orders
OrderLineItems
Customers

I converted all of these from FM 6 to FM 8.5 by opening them in FM 8.5, then making the changes to allow the fmphp and fmxml users etc.

But this conversion messed up the Relationships in a couple of the files. These relationships first come into use when the page mentioned above is reached, which (I hope) explains why it works until then, and fails when trying to show a page that has the customer's requested items on it.

So I guess this isn't going to be as easy as just the single standalone databases were, and I now need to try and wrap my head around changing this into a 1 or two database solution - 1 to deal with the ordering systems from several databases and 1 to hold the actual data.

Roger
Logged
Michael Petrov
Chief Software Developer
Administrator
Hero Member
*****
Offline Offline

Posts: 4278
Kudos: 15397




Applications:
« Reply #2 on: March 31, 2007, 08:38:13 AM »

HI Roger,

Well in the long run, it is for the best to simplify the databases into closely knit tables and any external file relationships should be minimized.

However, for your original question - any finds in FileMaker are generally case insensitive (with the exception of possible the field match == operator). As for our specific function, that has to do only with the field names and not the values, it allows some compensation for inconsistent field name formats which should all ultimately be changed to match exactly the fields inside of FileMaker.

Best Regards,
Michael Petrov
Logged

Michael Petrov,
Chief Software Developer
FMWebschool
800.353.7950
michael@fmwebschool.com
Keep up with our development, follow me on Twitter
theKiwi
Full Member
***
Offline Offline

Posts: 142
Kudos: 50



Applications:
« Reply #3 on: March 31, 2007, 01:06:08 PM »

As for our specific function, that has to do only with the field names and not the values, it allows some compensation for inconsistent field name formats which should all ultimately be changed to match exactly the fields inside of FileMaker.

So it doesn't matter if you have a field name like

PaymentMethod

as long as the CDML files are calling it PaymentMethod and not paymentmethod?

Or should everything be in lowercase throughout, so a field name in the database of

paymentmethod and the CDML files using paymentmethod also?

Thanks

Roger
Logged
theKiwi
Full Member
***
Offline Offline

Posts: 142
Kudos: 50



Applications:
« Reply #4 on: March 31, 2007, 01:35:48 PM »

Another direction and theory now with this problem...

Looking in the Apache error log for this site, I see this line

Code:
[Sat Mar 31 16:14:10 2007] [error] PHP Fatal error:  Smarty error: [in cdml:/Library/WebServer/Documents/WMGSDataNew/Web/KentCountyObits/completePayPal.htm line 1]: syntax error: unclosed tag \\{record} (opened line 1). (Smarty_Compiler.class.php, line 320) in /Library/WebServer/Documents/WMGSDataNew/BB/lib/Smarty-2.6.16/libs/Smarty.class.php on line 1095

which is written each time I go to the page of the solution that appears blank. Here is the source code of the file in question - completePayPal.htm

Code:
<HTML>
<HEAD>
   <TITLE>WMGS - Kent County Obituaries Check Out</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<CENTER>[FMP-INCLUDE: ../includes/CartHeader.txt][FMP-INCLUDE: ../includes/ObitsTitle.txt]</CENTER>

<BLOCKQUOTE>List of Ordered Items:</BLOCKQUOTE>

<CENTER><FONT COLOR="#000000"><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=4 WIDTH="95%" bordercolorlight=A6CAEC bordercolordark=6B7483>
   <TR>
      <TD WIDTH="21%">
         <P><FONT SIZE="-1" COLOR="#000000"><B>Surname</B></FONT></P>
      </TD>
      <TD>
         <P><FONT SIZE="-1" COLOR="#000000"><B>First
         Name</B></FONT></P>
      </TD>
      <TD>
         <P><FONT SIZE="-1"><B>Published Date</B></FONT></P>
      </TD>
      <TD>
         <P><FONT SIZE="-1"><B>Newspaper</B></FONT></P>
      </TD>
      <TD>
         <CENTER><FONT SIZE="-1"><B>Page Number</B></FONT></CENTER>
      </TD>
   </TR><!--The following CDML tag [FMP-portal] displays a portal form OrderLineItems.  The "OrderItems" is the name of the relationship from Orders (the current database) to OrderLineItems Notice the placement of the portal tags outside the table row (tr) tags.  As with [FMP-Record], the row will repeat for as many records as match.-->
    [FMP-portal:OrderItems]
   <TR>
      <TD WIDTH="21%">
         <P>[FMP-FIELD: OrderItems::Surname]</P>
      </TD>
      <TD>
         <P>[FMP-FIELD: OrderItems::FirstName]</P>
      </TD>
      <TD>
         <P ALIGN=right>[FMP-FIELD: OrderItems::PublishedDate]</P>
      </TD>
      <TD>
         <P>[FMP-FIELD: OrderItems::Newspaper]</P>
      </TD>
      <TD>
         <CENTER>[FMP-FIELD: OrderItems::PageNumber]</CENTER>
      </TD>
   </TR>[/FMP-portal]
   <TR>
      <TD WIDTH="21%">
         <P><FONT COLOR="#000000">&nbsp;</FONT></P>
      </TD>
      <TD>
         <P><FONT COLOR="#000000">&nbsp;</FONT></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
   </TR>
   <TR>
      <TD WIDTH="21%">
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P>Obituaries Cost</P>
      </TD>
      <TD>
         <P ALIGN=right><FONT COLOR="#000000">[FMP-FIELD: ObituariesCostText]</FONT></P>
      </TD>
   </TR>
   <TR>
      <TD WIDTH="21%">
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P><FONT COLOR="#000000">Postage</FONT></P>
      </TD>
      <TD>
         <P ALIGN=right><FONT COLOR="#000000">[FMP-FIELD: PostageCostText]</FONT></P>
      </TD>
   </TR>
   <TR>
      <TD WIDTH="21%">
         <P><FONT COLOR="#000000">&nbsp;</FONT></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P><FONT COLOR="#000000">Order Total&nbsp;&nbsp;</FONT></P>
      </TD>
      <TD>
         <P ALIGN=right><FONT COLOR="#000000">[FMP-FIELD: Total_Order_Cost_Text]</FONT></P>
      </TD>
   </TR>
</TABLE>
</FONT>

<P><TABLE BORDER=0 CELLSPACING=0 WIDTH="95%">
   <TR>
      <TD COLSPAN=4>
         <P><FONT SIZE="+1">&nbsp;</FONT>Your Information:</P>
      </TD>
   </TR>
   <TR>
      <TD VALIGN=top WIDTH=15>
         <P></P>
      </TD>
      <TD VALIGN=top WIDTH="25%">
         <P>[FMP-FIELD: custno::first_name]&nbsp;[FMP-FIELD: custno::last_name]<BR>
         [FMP-FIELD: custno::customer_address]<BR>
         [FMP-FIELD: custno::address2]<BR>
         [FMP-FIELD: custno::city] [FMP-FIELD: custno::state]
         [FMP-FIELD: custno::zip]<BR>
         [FMP-FIELD: custno::Country]<BR>
         [FMP-FIELD: custno::email]</P>
      </TD>
      <TD VALIGN=bottom WIDTH="35%">
         <P>If all the information above is correct, click
         <FONT COLOR="#FF0000">Proceed to PayPal Electronic
         Payment</FONT> at right to go to a secure page at PayPal.com
         to pay for your order.<BR>
         &nbsp;</P>
      </TD>
      <TD VALIGN=top WIDTH="25%">
         <P><FORM ACTION="https://www.paypal.com/cgi-bin/webscr" METHOD=POST>
            <CENTER><INPUT TYPE=hidden NAME=cmd VALUE="_ext-enter">
            <INPUT TYPE=hidden NAME="redirect_cmd" VALUE="_xclick">
            <INPUT TYPE=hidden NAME=business VALUE="OnlinePayments@wmgs.org">
            <INPUT TYPE=hidden NAME=invoice VALUE="[FMP-FIELD: ObitOrderNumber]"><INPUT TYPE=hidden NAME="item_name" VALUE="WMGS Obituaries Order [FMP-FIELD: ObitOrderNumber]">
            <INPUT TYPE=hidden NAME=amount VALUE="[FMP-FIELD: ObituariesCost]"><INPUT TYPE=hidden NAME=handling VALUE="[FMP-FIELD: PostageCost]">
            <INPUT TYPE=hidden NAME="first_name" VALUE="[FMP-FIELD: custno::first_name]">
            <INPUT TYPE=hidden NAME="last_name" VALUE="[FMP-FIELD: custno::last_name]">
            <INPUT TYPE=hidden NAME=address1 VALUE="[FMP-FIELD: custno::customer_address]">
            <INPUT TYPE=hidden NAME=city VALUE="[FMP-FIELD: custno::city]">
            <INPUT TYPE=hidden NAME=state VALUE="[FMP-FIELD: custno::state]">
            <INPUT TYPE=hidden NAME=zip VALUE="[FMP-FIELD: custno::zip]"><INPUT TYPE=hidden NAME=country VALUE="[FMP-FIELD: custno::Country]">
            <INPUT TYPE=hidden NAME="no_shipping" VALUE="1 "><INPUT TYPE=hidden NAME="no_note" VALUE="1,">
            <INPUT TYPE=hidden NAME=return VALUE="http://data.wmgs.org:591/KentCountyObits/fmpro?-db=ObitsOrders&-lay=web&-format=paid.htm&-recID=[FMP-CurrentRecID]&-Find">
            <INPUT TYPE=hidden NAME="cancel_return" VALUE="http://data.wmgs.org:591/KentCountyObitsCart/fmpro?-db=ObitsOrders&-lay=web&-format=cancel.htm&-recID=[FMP-CurrentRecID]&-Edit"><!-- Begin Official PayPal Seal -->
            <A HREF="https://www.paypal.com/us/verified/pal=OnlinePayments%40wmgs.org" TARGET="_blank"><IMG SRC="http://www.paypal.com/en_US/i/icon/verification_seal.gif" ALT="Official PayPal Seal" BORDER=0 ALIGN=bottom></A>
            <!-- End Official PayPal Seal -->&nbsp;&nbsp;<BR>
            <INPUT TYPE=submit NAME="Proceed to PayPal Electronic Payment" VALUE="Proceed to PayPal Electronic Payment"></CENTER>
         </FORM></P>
      </TD>
   </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="95%">
   <TR>
      <TD>
         <P></P>
      </TD>
      <TD>
         <P></P>
      </TD>
   </TR>
   <TR>
      <TD COLSPAN=2>
         <CENTER><FONT COLOR="#FF0000"><B>NOTE: When you have
         completed the payment at PayPal you should be automatically
         directed back to this site to complete your order. THANK
         YOU</B></FONT></CENTER>
      </TD>
   </TR>
</TABLE>
<div align=center><IMG SRC="../images/dividerbar.gif" WIDTH="95%" HEIGHT=13 ALIGN=bottom></div><div align=center>[FMP-INCLUDE: ../includes/CartCopyrightFooter.txt]</div></P></CENTER>
</BODY>
</HTML>

I'm not sure what is being referenced by the error message as not being closed?? Is there enough information here to figure this out?

Thanks

Roger
Logged
Michael Petrov
Chief Software Developer
Administrator
Hero Member
*****
Offline Offline

Posts: 4278
Kudos: 15397




Applications:
« Reply #5 on: March 31, 2007, 02:09:10 PM »

Hi Roger,

Indeed there is certainly enough information. Your HTML style comment is the problem:
<!--The following CDML tag [FMP-portal] displays a portal form OrderLineItems.  The "OrderItems" is the name of the relationship from Orders (the current database) to OrderLineItems Notice the placement of the portal tags outside the table row (tr) tags.  As with [FMP-Record], the row will repeat for as many records as match.-->

That is getting parsed as CDML tags, and as you can see it starts both a portal and a record tag. To fix this, use the Smarty syntax for comments to comment it out instead (this will not print it in the HTML source code either but will remain in the CDML source code:
- {[* comment *]}

Let us know if it fixes your problem.

As for case insensitivity, it only matters when you are doing queries and printing things back (and should not cause a fatal error when printing). Basically if in your database you have PaymentMethod as the field name then even PAYmentMetOd should work when trying to print it or submit data back with those field names. It is less reliable and slows down the engine, so make sure to use consistent naming in both the CDML pages and the DB tables.

Best Regards,
Michael Petrov
Logged

Michael Petrov,
Chief Software Developer
FMWebschool
800.353.7950
michael@fmwebschool.com
Keep up with our development, follow me on Twitter
theKiwi
Full Member
***
Offline Offline

Posts: 142
Kudos: 50



Applications:
« Reply #6 on: March 31, 2007, 03:47:51 PM »

Michael

THANK YOU THANK YOU THANK YOU!!!!!!!!

I've eliminated those instances  of [FMP-Portal] and [FMP-Record] in the comments (left overs from the original Stephen Knight CDML files <g> I bought some years ago) and now that part of it works, and after a few trial and errors I've got the CDML eMail on order completion working too.

Wheeeeeeeee!!

So it hasn't exactly been "super simple", but it seems like I now have my FM Pro 6 solution working on FMSA 8 with Blackbelt, in less time than it would have taken me to recreate it by several orders of magnitude.

And since this was one of my most complicated solutions (I have another identical one working on a different database, and then the rest are all simple "search a database to see what is in it" single file setups I should be able to get the rest done lickety split :-))

If you're interested in trying this out start here

http://datanew.wmgs.org/KentCountyObits/FMPro?-db=ObitsOrders&-format=search.htm&-New

search for an obituary, add it to the cart, view the cart, check out and use the "Pay by Cheque" option and you should see it all work and culminate in you getting an eMail. (I hope). (You don't need to send a cheque :-))

Cheers and again many thanks for your support on getting to grips with this.

Roger
Logged
Michael Petrov
Chief Software Developer
Administrator
Hero Member
*****
Offline Offline

Posts: 4278
Kudos: 15397




Applications:
« Reply #7 on: March 31, 2007, 04:03:27 PM »

Hi Roger,

That is great to hear!

I will make sure to play around with the solution later on this evening to check it all out.

Also you did not have to remove the comments completely (if you found them helpful in the past), simple changing "<!--" to "{[*" and "-->" to "*]}" would have done the trick.

Quote
So it hasn't exactly been "super simple", but it seems like I now have my FM Pro 6 solution working on FMSA 8 with Blackbelt, in less time than it would have taken me to recreate it by several orders of magnitude.

I'm glad that Blackbelt has lived up to its promise of greatly accelerating the transition process. With time we hope to make it even simpler to get everything up and running ( shipping popular .htaccess variations comes to mind ), so please keep the comments and suggestions flowing - and we will make Blackbelt even better.

Best Regards,
Michael Petrov
Logged

Michael Petrov,
Chief Software Developer
FMWebschool
800.353.7950
michael@fmwebschool.com
Keep up with our development, follow me on Twitter
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!