EasyTable

  • Print
FAQ's about the EasyTable Component for Joomla.


Using field tokens to create a lightbox effect for images in EasyTable Pro

With EasyTable Pro's field options you can combine several fields to produce a custom URL for each record. There are lots of things you can do with URL's you may want a custom text for each click link or you may want to set a subject in an Email link, we've already looked at both of these so in this FAQ we'll take that a little bit further by combining it with another Joomla component.

When combined with the popular JCE (Joomla Content Editor) you can make use of the JCE MediaBox to provide advanced pop-ups for your images (or just about any other type of media). We're using JCE's MediaBox for this example because really JCE should be installed on every Joomla website.

First up make sure you have a current version of JCE and JCE MediaBox installed (don't forget to check the MediaBox plug-in is enable).

This FAQ assumes you know about EasyTable Pro's field tokens, you may want to read this article about the basics of using field tokens for substitution functions.

For the purposes of this FAQ we're assuming our table has fields with the following names and alias.

Name Alias
Portrait portrait
Thumbnail thumbnail
President president

Some typical records might be:

Portrait Thumbnail President
GeorgeWashington.jpg thmb_GeorgeWashington.jpg George Washington
JohnAdams.jpg thmb_JohnAdams.jpg John Adams

A Lightbox Effect

As we have a thumbnail image, a full sized portrait image and the name of a President you can create a thumbnail that is linked to the full sized portrait and has the correct Title text (most light box effects use the title text in the display of the larger image). Again as with most light box effects you can group media together so that you can navigate back and forth between multiple media elements of the same group — in most systems you do this by setting a "rel" value.

Using the example table and records to achieve this with EasyTable Pro you need to take several steps first:

  1. set the field "Thumbnail" to a type of "TEXT" (this prevents EasyTable Pro apply type specific formatting to the field).
  2. set the field options to the following:
<a rel="presidents" target="_blank" title="#president# portrait." href="/images/stories/USPresidents/#portrait#" class="jcepopup">
<img src="/images/stories/USPresidents/#thumbnail#" alt="Click for larger view."></a>

NB: the URL to the larger image is wrapped around the image URL — it also has the class "jcepopup" attached so that the JCE Javascript catches it.

Now when EasyTable Pro renders the table any field tokens will be replaced by the values in those fields. With our example table this will produce the following HTML:

EasyTable Pro generated HTML In Browser Display
<a rel="presidents" target="_blank" title="George Washington portrait."
href="http://static.seepeoplesoftware.com/images/stories/USPresidents/GeorgeWashington.jpg" class="jcepopup">
<img src="http://static.seepeoplesoftware.com/images/stories/USPresidents/thmb_GeorgeWashington.jpg" alt="Click for larger view.">
</a>
Click for larger view. 
<a rel="presidents" target="_blank" title="John Adams portrait."
href="http://static.seepeoplesoftware.com/images/stories/USPresidents/JohnAdams.jpg" class="jcepopup">
<img src="http://static.seepeoplesoftware.com/images/stories/USPresidents/thmb_JohnAdams.jpg" alt="Click for larger view.">
</a>
Click for larger view. 

 

How do I add indicator arrows to show column sorting?

Sorting CSS Classes

When table sorting is enable clicking on the column heading will sort the records on the current page by the values in the column. This results in several changes to the table structure.

The first change is that one of two classes is added to the column heading, one the first click the class etAscending is added. A subsequent click will change the class to etDescending, with the class alternating between the two on subsequent clicks.

The second change is that a property is added to the column heading called sortdir, with subsequent clicks this property alternates between values of "down" and "up". This property is used by the Javascript as a reference for the sorting process.

The final change of course is that records are re-ordered by the Javascript.

Once a table column has been clicked it's HTML will look something like this example taken from the Presidents table on our demonstration website.

<td class="sectiontableheader president etAscending" sortdir="down">President</td>

To style the column headings you will need to do several things

  1. create matching classes in your templates CSS file.
    (Luckily Joomla lets you edit the CSS of your template via the Template Manager)
  2. find/create suitable graphics to indicate sort direction
    (Again, Joomla's standard installation includes a set of sort indicator icons
  3. determine any other attributes you may need to modify for your specific template.

To help you with this process - the CSS we use on our demonstration website is provided below and uses the standard icon's mentioned.

Example CSS

The following example CSS has been added to the end of the JA Purity template CSS on our demonstration website and can be seen working on the US Presidents table.

/* Example CSS adding Sort Indicators to Table Headings
  (This CSS is placed at the end of the JA Purity's template.css file) */
.etAscending {
    background:url(/images/M_images/sort_asc.png) no-repeat 99% 2px #FFFFFF;
    color:#000000;
    border: 1px solid #444444;
}
.etDescending {
    background:url(/images/M_images/sort_desc.png) no-repeat 99% 2px #FFFFFF;
    color:#000000;
    border: 1px solid #444444;
}
/* This CSS changes the cursor to indicate that the heading is clickable or
   the sort direction after a click */
#et_table_page .sectiontableheader { cursor: pointer }
#et_table_page .etAscending:hover { cursor: s-resize; }
#et_table_page .etDescending:hover { cursor: n-resize; }

What file format does EasyTable support?

EasyTable for J 1.0+ and EasyTable Pro! imports data in a CSV file format. (EasyTable Pro! also supports the TSV variant for TAB seperated files.) The CSV format (RFC4180) is defined here, a more readable summary is on Wikipedia.

The key part of the error message occurs at very begining:

Data insert failed for table: XX in updateETTDTableFrom()
Possibly your CSV file is malformed

EasyTable only supports CSV (and TSV for EasyTable Pro! ) files and it does this using PHP's method fgetCSV method. If the fgetCSV throws up an error you will see that line "Possibly your CSV file is malformed"


The first thing to check is the CSV file meets the definition. The best way to do this is using a Unicode aware text editor that can search for & display invisible characters in your CSV file, ( and no Notepad isn't good enough ). I personally recommend BBEdit but I'm sure there's something on Windows/Linux environments that does a similar job.


Things to look out for

  • control characters that need to be encoded first
  • comma's in the body of a field that aren't properly encased
  • the wrong delimiter used for fields eg. a semi-colon ; rather than a comma


To determine if your file is the source of the problem try downloading the sample CSV files in our downloads area and uploading it to your website. If that works then there's a reasonable chance that your CSV file is malformed as the error message indicates.

Non-Latin CSV/TSV files

If you are using a non-latin languages you can export UTF-8 encoded CSV/TSV files which will preserve the non-latin charaters. (To see an example of a non-Latin UTF8 encoded CSV file you can download one from our Sample Files area.)

EasyTable for J! (free version) vs EasyTable Pro

 EasyTable 1.0 “Free” vs “Pro”

EasyTable Pro is currently at version 1.2.3 for Joomla! 2.5 (this version is considered final), and verion 1.0.5b for Joomla! 1.5.x (this version is final), you can read about the current version here.

Administration FeaturesFreePro
 

1.0.0

Joomla! 1.5 Native

1.0.0

Joomla! 1.5 Native

1.2.0

Joomla! 2.5 Native

New Table Import Wizard No - not available. No - not available. Yes
Import “CSV” text files. Yes Yes Yes
Import "TAB" delimited text files. No - not available. Yes Yes
Import new datasets into existing tables. Yes Yes Yes
List View Yes Yes Yes
Detail View (using detail link per record) Yes Yes Yes
Image Names Yes Yes Yes
URLs Yes Yes Yes
Email fields Yes Yes Yes
Dates No - not available. Yes Yes
Numbers No - not available. Yes Yes
Text Yes Yes Yes
Column Ordering Yes Yes Yes
Per Table Searching Yes Yes Yes
Joomla Search Integration No - not available. Yes Yes
Nominated Search Columns No - not available. Yes Yes
Per Table Pagination Options Yes Yes Yes
“Publish/Unpublish” Tables Yes Yes Yes
Access Levels ( Public | Registered | Special ) No - not available. Yes Yes
Linked Tables Yes Yes Yes
Use Existing Database Tables No - not available. Yes Yes
Column/Field Options for formatting and URL handling No - not available. Yes Yes
Finer storage controls for MySQL columns No - not available. Yes Yes
Edit a Column Alias No - not available. Yes Yes
Add/Delete Column No - not available. Yes Yes
Editing Existing Rows No - not available. Yes Yes
Add/Deleting Rows No - not available. Yes Yes
Append Rows to Existing Data No - not available. Yes Yes
Filter of tables in Table Manager view No - not available. No - not available. Yes
Sort of tables by name or status in Table Manager view No - not available. No - not available. Yes
Administration Access ControlFreePro 
Joomla! 2.5 ACL for front-end viewing and back-end access No - not available. No - not available. Yes
Settings Access No - not available. Yes Yes
External Table Linking Access No - not available. Yes Yes
Table Management Access No - not available. Yes Yes
Data Uploads Access No - not available. Yes Yes
Data Editing Access No - not available. Yes Yes
Administration Processing ControlFreePro 
Max. File Size No - not available. Yes Yes
Chunk Size No - not available. Yes Yes
Restricted Tables No - not available. Yes Yes
Raw Data Entry No - not available. Yes Yes
Uninstall ProcessFreePro 
Uninstall Setting Yes1 Yes Yes
Front-end FeaturesFreePro 
Per Table Searches Yes Yes Yes
Search in Field specifiers No - not available. No - not available. Yes3
Paginated List View Yes Yes Yes
Ranked List View No - not available. No - not available. Yes3
Search Only List View No - not available. No - not available. Yes5
AJAX List View (DataTables) No - not available. No - not available. Yes6
Detail View Yes Yes Yes
Alternative Layouts Support for Records view
(you can create your own layouts and drop them into your /template directory)
No - not available. No - not available. Yes
Linked Tables Yes Yes Yes
Deep Link Tables Yes1 Yes Yes
Unique HTML ID for each table Yes Yes Yes
Unique CSS labels for each field in each tabled Yes Yes Yes
Alternate CSS labels for alternating rows in tables Yes Yes Yes
Improved JRoute URLs Yes Yes Yes
Alt-Text/Title for Table Heading Descriptions Yes Yes Yes
Leaf field nomination for better SEO with Detail Page Titles and URLs No - not available. No - not available. Yes3
Records Cache for better performance and reduces load on Database No - not available. No - not available. Yes4
Advance to next record in detail view No - not available. Yes Yes
Default Sort Order No - not available. Yes Yes
Column Sorting (per page) No - not available. Yes2 Yes
Filtered Views (data displayed after pre-defined search settings) No - not available. Yes Yes
Basic Filter supports multiple comparison values No - not available. No - not available. Yes6
Advanced Filter with matching against CURDATE(), CURTIME(), NOW() and PHP return values No - not available. No - not available. Yes6
Menu Link to sorted list of all tables with/without table descriptions. Yes Yes Yes
Menu Link to a specific table Yes Yes Yes
Menu Link to Record Views No - not available. Yes Yes
User ID or Username filtered Records No - not available. Yes Yes
Customisable  per table view "No records found" message. No - not available. No - not available. Yes5
Customisable "Search Only results" prompt message. No - not available. No - not available. Yes5

KEY

Available in the current Version Yes
Under Construction Work In Progress
Planned (but not yet being worked on ) Planned but not currently underdevelopment
Not available/planned for this Version No - not available.

Footnote's

  1. This feature is now available in EasyTable for J! 1.0.4 and higher
  2. This bonus feature was added to EasyTable Pro! 0.9.0 and higher
  3. This bonus feature was added to EasyTable Pro! 1.1.0 and higher
  4. This bonus feature was added to EasyTable Pro! 1.1.1 and higher
  5. This bonus feature was added to EasyTable Pro! 1.1.5 and higher
  6. Advanced Filters and AJAX Table view using DataTables added in EasyTable Pro! 1.2.0

 

Adding a pre-defined search button to a table URL (table filtering)

In addition to filtering a table via it's menu you can add an extra parameter to the end of the URL to your table. ( Note this is for links external to EasyTable Pro, it's handy for links in articles or map modules that allow you to set links for regions of the map or just simple image maps. )

Unlike filtering this acts like an initial search parameter and appears in the seach input box on the page. Just like a normal search the user can click "Reset" and reveal the rest of the records in the table. For this reason a table must have it's "Show Table Search" option set to "Yes"

The best way to understand this is to see it. The first link shows you the standard table with starting with the first 5 records.

Joomla! 1.5 and EasyTable Pro 1.0

Link to US Presidents table on our reference site: http://j15ref.craigphillips.biz/us-presidents.html

The next link is the same except it has etsearch=andrew added to the end of the URL:

http://j15ref.craigphillips.biz/us-presidents.html?etsearch=andrew

Note the ? before the parameter this denotes the end of the URL and the beginning of parameters the web application can use.

Now if you're not using Joomla's SEF functions your initial URL might look like this:

http://j15ref.craigphillips.biz/index.php
option=com_easytablepro&view=easytable&id=123&sort_order=ASC&filter_type=LIKE&sort_field=3282
&filter_field=0&Itemid=83

(Please note for readability we've broken the URL over several lines - a URL doesn't have carriage returns in it.)

As this URL has parameters in it already

http://j15ref.craigphillips.biz/index.php
option=com_easytablepro&view=easytable&id=123&sort_order=ASC&filter_type=LIKE&sort_field=3282
&filter_field=0&Itemid=83&etsearch=andrew

Note the & that proceeds our etsearch parameter, this is because it's not the first parameter after the URL, it's literraly say to the server "and" this parameter.

Joomla! 2.5 and EasyTable Pro 1.1+

Due to changes in both Joomla! 2.5 and EasyTable Pro 1.1 the syntax changes slightly. Specifically instead of et_search as the name of the search value we use filter_search.

So, the URL provided above will now look like this:

http://j16ref.craigphillips.biz/easytable-pro-table-list/us-presidents.html?filter_search=andrew

Using the description field you can create predefined search buttons for a table, like those on the demo site. In the case of the Presidents table it has some links defined that make use of the filter_search parameter and the templates existing CSS. The HTML of the US Presidents description looks like this:

<p>Presidents of the USA</p>

<ul class="pagenav">
<li class="pagenav-prev">
<a href="http://j16ref.craigphillips.biz/easytable-pro-table-list/us-presidents.html?filter_search=andrew">All the Andrew's</a></li>
<li class="pagenav-prev">
<a href="http://j16ref.craigphillips.biz/easytable-pro-table-list/us-presidents.html?filter_search=Democratic">All the Democrats</a></li>
<li class="pagenav-prev">
<a href="http://j16ref.craigphillips.biz/easytable-pro-table-list/us-presidents.html?filter_search=Republican">All the Republicans</a></li>
<li class="pagenav-prev">
<a href="http://j16ref.craigphillips.biz/easytable-pro-table-list/us-presidents.html?filter_search=John">All the Johns</a></li>
</ul>

The Joomla! template already has defined the following pagenav related CSS:

#main ul.pagenav {
    list-style-type: none;
    padding: 0;
    overflow: hidden;
}
ul.pagenav li.pagenav-prev {
    float: left;
}
#main ul.pagenav li {
    line-height: 2em;
}

Then we added some CSS to specifically padd out the buttons:

/**
* EasyTable Additions
*/

#et_table_page div.et_description ul li
{
    padding: 10px;
}

Joomla! 2.5 and EasyTable Pro 1.1.5+

EasyTable Pro 1.1.5 introduced the "Search Results Only" view (SRO), i.e. no records are shown unless the user has provided a search criteria that matches some records. At the same time the syntax was expanded to support field/column being specified. It's easier to explain with an example.

Using our venerable US Presidents table again we create a version for use with the SRO view, in this version we tweeked the buttons setup above to allow us to search in specific columns/fields.

<ul class="pagenav">
<li class="pagenav-prev"><a href="/us-presidents/us-presidents-search-only.html?filter_search=president::andrew">All the Andrew's</a></li>
<li class="pagenav-prev"><a href="/us-presidents/us-presidents-search-only.html?filter_search=party::Democrat">All the Democrats</a></li>
<li class="pagenav-prev"><a href="/us-presidents/us-presidents-search-only.html?filter_search=party::Republican">All the Republicans</a></li>
<li><a href="/us-presidents/us-presidents-search-only.html?filter_search=president::John">All the Johns</a></li>

<li class="pagenav-prev"><a href="/us-presidents/us-presidents-search-only.html?filter_search=president::John">All the Johns</a></li>
<li class="pagenav-prev"><a href="/us-presidents/us-presidents-search-only.html?filter_search=home-state::virginia">All the Virginians</a></li>
</ul>

So, for a column/field with a name of "Home State" and an alias of home-state, to specify a search in just the column we prefix the search term with the field alias like this:

home-state::virginia

 

Using field tokens to create custom URLs in EasyTable Pro!

With EasyTable Pro's field options you can combine several fields to produce a custom URL for each record.

This FAQ assumes you know about EasyTable Pro's field tokens, you may want to read this article about the basics of using field tokens for substitution functions.

There are lots of things you can do with URL's you may want a custom text for each click link or you may want to set a subject in an Email link, we'll look at both of these to try and provide you with a base skill set to help you achieve your goals on your website.

For the purposes of this FAQ we're assuming our table has fields with the following names and alias.

Name Alias
Website URL website-url
Name name
Email emailfield
Reference Number reference-number

Some typical records might be:

Website URL Name Email Reference Number
http:://google.com Eric eric_s@google.com 600613
http://apple.com Steve sjobs@apple.com 09913

A custom link text

Rather than having the raw URL or the same link text for each row (eg. Click Here), a nice presentation might be "Click here to open MyBusiness's Website".

Using the example table and records to achieve this with EasyTable Pro you need to take several steps first:

  1. set the field "Website URL" to a type of "TEXT" (this prevents EasyTable Pro apply type specific formatting to the field).
  2. set the field options to the following:
<a href="#website-url#" target="_blank">Click here to open #name#'s Website</a>

NB: the target is set to open a new browser window.

Now when EasyTable Pro renders the table any field tokens will be replaced by the values in those fields. With our example table this will product the following HTML:

EasyTable Pro generated HTML In Browser Display
<a href="http://google.com" target="_blank">Click here to open Eric's Website</a> Click here to open Eric's Website
<a href="http://apple.com" target="_blank">Click here to open Steve's Website</a> Click here to open Steve's Website

A mailto: URL

To create a mailto: link, is a similar process, except this time we are adding options to the field with the email address in it.

  1. set the field "Email" to a type of "TEXT"
  2. set the field options to the following:
<a href="mailto:#emailfield#?subject=Reference%20Number%20#reference-number#">Click here to send #name# an Email!</a>

NB: the %20 is the HTML equivalent to a ' ' ie. a space.

 

 

EasyTable Pro generated HTML In Browser Display
<a href="mailto:eric_s@google.com?subject=Reference%20Number%20#600613">Click here to send Eric an Email!</a> Click here to send Eric an Email!
<a href="mailto:sjobs@apple.com?subject=Reference%20Number%20#09913>Click here to send Steve an Email!</a> Click here to send Steve an Email!

Why do letters like é, å, ä, ö disappear?

Quick Answer

The EasyTable component as mentioned elsewhere, uses the CSV parser built into PHP, which probably follows the RFC for CSV files very closely.

According to the RFC any field in a CSV file should only contain text data (remember this is an old standard from before the internet, and text basically means a-z, A-Z, 0-9 and a few special characters).

Note that those ranges don't include unicode characters outside of the original ASCII character set Smile. If your CSV file has Unicode characters the PHP parser probably drops them (either that, or we've made a mistake).

How do I fix this?

The program that's exporting the data should already do that for you (although some don't).  Basically Ó would under normal conversion rules change to either O or &Ouml; based on options your program may support. For example one of our users reported that he successfully converted the file to CSV UTF8 by:

opening the excel-generated csv file with notepad, and overwritting it saving the file as a UTF-8 text-file,

&nbsp

Some common encoding examples:

Ö becomes &Ouml;

É becomes &Eacute;

Ë becomes &Euml;

Ó becomes &Oacute;

To make your CSV file work reliably you will need to convert it's non-ASCII characters to HTML equivalent entities. There are tools available on the web that will do some degree of HTML entity conversion for you, two examples we're aware of are:

A bit more technically

Fields in CSV files are considered to be TEXTDATA, where TEXTDATA =  %x20-21 / %x23-2B / %x2D-7E

The section below expands out the hex values to their common text equivalents:

20:21
[space] !

23:24:25:26:27:28:29:2A:2B
#  $  %  &  '  (  )  *  +

2D:2E:2F
-  .  /

30:31:32:33:34:35:36:37:38:39:3A:3B:3C:3D:3E:3F
0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?

40:41:42:43:44:45:46:47:48:49:4A:4B:4C:4D:4E:4F
@  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O

50:51:52:53:54:55:56:57:58:59:5A:5B:5C:5D:5E:5F
P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _

60:61:62:63:64:65:66:67:68:69:6A:6B:6C:6D:6E:6F
`  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o

70:71:72:73:74:75:76:77:78:79:7A:7B:7C:7D:7E
p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~

 

Show Detail view in a lightbox effect.

With EasyTable Pro's field options you can combine several fields to produce a custom URL for each record. There are lots of things you can do with URL's you may want a custom text for each click link or you may want to set a subject in an Email link, or you may want to have a large version of an image appear in a lightbox.

As we've already looked at how to acheive those, in this FAQ we'll take that a little bit further by displaying the Detail view of a row/record in a lightbox.

This example uses the JCE MediaBox from the popular JCE (Joomla Content Editor) to provide the lightbox pop-ups for the detail view.

First up make sure you have a current version of JCE and JCE MediaBox installed (don't forget to check the MediaBox plug-in is enabled).

This FAQ assumes you know about EasyTable Pro's field tokens, you may want to read this article about the basics of using field tokens for substitution functions.

To start with every table has a unique ID or number, you can find this in the EasyTable Editor (see the Table Info panel in the top right of the Editor screen, shown below).

EasyTable Pro - Editor Table Info PanelEasyTable Pro - Editor Table Info Panel

or the table list in the EasyTable Pro Manager (see the left most column):

EasyTable Pro - Manager - Table ID highlightedEasyTable Pro Manager - Table ID highlighted.

As you can see our US Presidents table has an ID of 123, remember this number - we'll need it soon.

For the purposes of this FAQ we're going to add our custom Detail link to the Presidency field (ie. which number President) additionally our table has fields with the following names and alias. ( I'm using the Presidency field as we already have a standard "Detail" link on the President field. )

Name Alias
President president
Presidency presidency

The other field that every table has is an automatic one created by EasyTable Pro called ID this is the unique index for each record in a table (Note: there is no settings row for the ID field in the EasyTable Editor, it used internally by EasyTable Pro and the database).

Some typical records might be:

ID Presidency President
3489 1 George Washington
3490 2 John Adams

Just the Details Mam!

There are a few more things we have to do here, first we have to get EasyTable Pro to return just the record/row. We can do this thanks to a feature of Joomla!'s MVC system, any component that implements the MVC properly can be called with an extra parameter on the URL.

Joomla! URL's are usually changed by Search Engine Friendly features to give you nice human readable results, however, underneath that they look more like this:

/index.php?option=com_easytablepro&view=easytablerecord&id=123&rid=3489

Thanks to Joomla!'s MVC mechanism (and EasyTable Pro implementing it properly) we can add this little snippet to our URL to get back the records detail view without all of the rest of surrounding template elements.

&tmpl=component

Using EasyTable Pro's tokens we will replace the record ID in the URL above with the #id# (this will automatically insert the right id for each record in the list view). The table ID (123 remember) is already in this URL but you will need to change it to the ID of your table on your website.

A View in A Box, Lightbox That Is!

So, we have to create a link to the detail view using all these elements. Using the example table and records to achieve this with EasyTable Pro you need to take several steps first:

  1. set the field "Presidency" to a type of "TEXT" (this prevents EasyTable Pro apply type specific formatting to the field).
  2. set the field options to the following:
    <a rel="presidents;width[640];height[960]" target="_blank" title="#president#" href="/index.php?option=com_easytablepro&view=easytablerecord&id=123&rid=#id#&tmpl=component" class="jcepopup">#presidency#</a>
  3. Notice the rel tag, like most lightbox systems it is used to convey addition parameters to the Javascript function. In our tag the first element sets the group name to "presidents", then, as should be obvious we set the width and height of the lightbox. You will want to adjust these to the needs of your table and website.
  4. The URL includes the reference to the table in the segment &id=123, the other values row/record ID, President and Presidency are all inserted by token replacement.

Now when EasyTable Pro renders the table any field tokens will be replaced by the values in those fields. With our example table this will produce the following HTML:

EasyTable Pro generated HTML In Browser Display
<a rel="presidents;width[640];height[960]" target="_blank" title="George Washington" href="http://j15ref.craigphillips.biz/index.php?option=com_easytablepro&amp;view=easytablerecord&amp;id=123&amp;rid=1&amp;tmpl=component" class="jcepopup">1<span class="jcemediabox-zoom-link"></span></a> 1*
<a rel="presidents;width[640];height[960]" target="_blank" title="John Adams" href="http://j15ref.craigphillips.biz/index.php?option=com_easytablepro&amp;view=easytablerecord&amp;id=123&amp;rid=2&amp;tmpl=component" class="jcepopup">2<span class="jcemediabox-zoom-link"></span></a> 2*

*Please note the examples in the table above are using the CSS from the template on the demo server.

Issues to consider!

  • As you're displaying the Detail view you may want to turn off the field you use to create the custom Detail link in the Detail view - you can see in the demo website we haven't done this and you can click on the Presidency link inside the lightbox view of the record.
  • You may want to turn of the Next/Previous Record links (we haven't and you can see the result).

Thats it. If you have any questions about EasyTable Pro and this FAQ just jump into the Subscribers Forum and ask away.

What are the simplexml_load_file warnings...

Why

This low-level warning appears when EasyTable appears in the Administrator screens when the component tries to get information about the currently available version of EasyTable and compare it with the currently installed software. As a low level warning it doesn't affect the operation of the component.

If you receive this warning it means several things:

  1. Your Joomla installation is not running the recommended PHP configuration for Joomla 1.5 and thus is showing you low-level warning messages that generally don't affect the operation of the Joomla or any extensions you may have installed.
  2. the warning message is the result of EasyTable not being able to check the version information on our servers.
    1. the component tries to load a version information file from our servers
    2. your server configuration doesn't allow remote access to the XML file
    3. we capture the error message but
    4. the PHP warning level is set to show even low level warnings.

Apart from configuration issues these warnings can also appear in testing environments if:

  1. you are not connected to the internet
  2. a proxy/firewall/network cache blocks access to the SeePeopleSoftware.com website
  3. you're using an incorrectly configured virtualisation environment ( WAMP, MAMP, WinAMP, VMWare, Parallels etc... ).

Possible Solutions

You can prevent the warnings from appearing by setting the error_reporting level/value to a level that doesn't report warnings.

You can fix the error completely by setting allow_url_fopen in php.ini to on.  (NB: this presumes that your network doesn't block access by your server to the internet)

Advanced

If you're comfortable editing PHP file you can disable the version check by making the following changes.

For EasyTable for J!

Starting at line 46 through to line 81 of

 \administrator\components\com_easytable\views\easytables\view.html.php

you will find a function called et_version() replace that function with the code below:

Note: you will have to do this for any updates, like the about to be released 1.0.5a.

function et_version($source='public')
{
/**
*
* Let's fake a version check.
*
**/
$et_version = '0.0';
$et_version_tip = JText::_('VERSION_CHECK_FAILED_TO_CONTACT_SERVER_');

$et_version_array = array("version" => $et_version, "tip" => $et_version_tip);

return $et_version_array;
}

 

For EasyTable Pro

Starting at line 28 through to line 60 of

 \administrator\components\com_easytablepro\views\viewfunctions.php

you will find a function called et_version() replace that function with the code below:

Note: you will have to do this for any updates prior to the 1.0.0 release.

function et_version($source='public')
{
/**
*
* Let's fake a version check.
*
**/
$et_version = '0.0';
$et_version_tip = JText::_('VERSION_CHECK_FAILED_TO_CONTACT_SERVER_');

$et_version_array = array("version" => $et_version, "tip" => $et_version_tip);

return $et_version_array;
}

 

This method will be replaced in the 1.1 version of EasyTable for J! & the 1.0 version of EasyTable Pro to a browser based ajax solution which should work in a broad range of environments and prevent a component blocking failure occurring on the server.

 

Simple Filter

EasyTable Pro proved a simple filter that allows you to filter the contents of a field using one or more filter values.

On our demonstration website we have setup our US Presidents table to have a few simple filters on it, for example this filtered view of the table is set to show only records where the "party" field contains "democrat", similarly this view shows only the records where "party" field contains "Republican".

Simple Filter (party contains 'democrat')Simple Filter (party contains 'democrat')

Multiple Values

On our demonstration website you can also see an example where we have filtered the US Presidents table to show only the First and Last Presidents.

In this view of the table we want to display the first and last President. To do this we set the "Filter" Parameters by selecting the Field to Filter and Filter Type in Table Options as shown below:

Table Options  Default StateEasyTable Pro! 1.2.0 Table Options - Default State

In the Filter Value we type in the values we want to filter. Multiple Filter Values are separated using the pipe character "|" as the separator (it's usually found above the "\" key).

To set multiple filter values as used in our First & Last Presidents example set the Filter

Table Options - Standard Filter, multiple valuesStandard Filter with multiple values

Value to: George Washington|Barack Obama

Remember multiple Filter Values can be entered by separating the values with the pipe character.

Plug-ins for EasyTable Pro

Joomla! 1.5 supports several types of Plugins for extending or integrating new features amongst others are content and searching types.

Search Plugin

EasyTable Pro currently includes a search plugin the allows Joomla to search the contents of tables you have imported/created in EasyTable Pro.

Through this plugin EasyTable Pro will return result to the standard Joomla! search function for tables or fields that you have. You can read more about it here.

Content Plugin

Content Plugins allow you to embed content from other sources into Articles within Joomla. Most content plugins are dealing with a small or limited amount of data. When EasyTable was first designed it was aimed at handling table with hundreds or thousands of records covering multiple pages.

Including a table of this size into the body of an article wasn't considered practical for the 1.0 line of EasyTable Pro, so currently a content plugin doesn't exist.

We do intend to implement a content plugin but our design requires the tables to be re-implemented using AJAX techniques so that your users can search and page through the records without the page having to be refreshed. AJAX tables are scheduled for a version after the EasyTable Pro 1.1 release (which is the version supports the 1.7/2.5 versions of Joomla!).

You can read more about the development plans here.

EasyTable CSS ID's and classes

General

This document is the result of an evolving process and will change to reflect the currently available version of EasyTable Pro

This document details the element IDs and CSS classes that are used in each of the 3 views (the list of published tables, the table list of records view and the record view).

The CSS classes and IDs listed in the tables below are basically in the order of appearance in the HTML generated by the component. Please note that these are the classes and IDs for EasyTable Pro and not all of them are available in EasyTable for J!

By adding the appropriate CSS to your templates style sheets you can implement a range of features/effects such as alternating row colors or row highlighting when a users cursors hovers over a row. The CSS required for that example is minimal, you can see it in use on the our demonstration website. For example the CSS to achieve the effects described is shown below:

tr.row0 { background-color: #FFFFFF; }
tr.row1 { background-color: #F9F9F9; }
tr.row0:hover, tr.row1:hover { background-color: #FFD; }

Why aren't styles included?

We have several reasons:

  1. each table has unique CSS identities based on the table and column names (see below)
  2. speed
  3. template frameworks and custom tempates

Each table created by a user of EasyTable Pro! has unique ID's and classes that are derived from the the table name and each field in the table (you can even override the auto-generated alias' for a table or field). This flexibility allows for very specific CSS to be created by the EasyTable Pro! user, it also means that it's possible for CSS ID's or classes to be created that conflict with your template, other extensions or if you're using a commercial template the framework that it's based on. To create a "default" or "built-in" style set will result in conflicts which whould be difficulty to undo.

All See People software is built with the aim of reducing the impact on the servers load, for EasyTable Pro! and other Joomla extensions we build this means that we don't provide "default" or "built-in" CSS styles. To do so would mean adding yet another CSS file to your website which if it's using a typical Joomla template already has dozens of CSS, Javascript, Font and image files to download for each page. In addition the complexitity of some commercial template systems available and the extremely bad coding we've found in "custom designed" tempaltes means that we can't account for all the issues that could go wrong if we start generating and enforcing CSS is a semi-autonomous manner.

We recommend either adding just the CSS to your templates base CSS file or if you're using a commercial template based on the Gantry (aka RocketTheme) or T3 (aka JoomlaBamboo et al.) using the custom CSS mechanisms already built into them.

If your template is based off the Gantry Framework created by RocketTheme then you will need to create a CSS file in the templates CSS folder as described here and add your custom CSS to it.

If your template is based off the T3 Framework you will need to follow these instructions.

If it's just a standard template you will generally want to add it to the end of the main `template.css` file.

All Views

Following the convention for Joomla content components the content is displayed in a surrounding div that has a class of 'contentpaneopen', also inline with standard Joomla features you can define a Page Class Suffix (read more about Joomla and the Page Class Suffix). 

TTTTT - is used below to represent the table alias.

FFFFF - is used to represent a field alias.

List of published EasyTables

NameTypeNotes
et_list_page ID The ID of the surrounding DIV, this is the surrounding div mentioned above with the class of 'contentpaneopen
componentheading CLASS The standard Joomla class attached to the DIV that contains the Page Title.
et_tables_list CLASS The class attached to the list <UL> element of table list.
etTableListLockElement1 CLASS The class attached to the "Locked" icon, EasyTable Pro supports user access levels.
et_list_table_TTTTT  CLASS Each link to a table has it's own class attached to the list item <li>. The class name is made up of 'et_list_table_' with the table alias appended to it (in place of the TTTTT). So, if the table alias is 'us_presidents' the class will be 'et_list_table_us_presidents'
et_description  CLASS The class attached to the paragraph <p> containing the description. (Below each table name in the list the table's description is displayed)

1The padlock icon is only rendered if the table requires a "Registered" or higher level to access it and the user is either not logged in or not of a high enough level.

EasyTable Record List

NameTypeNotes
et_table_page ID The ID of the surrounding DIV, this is the surrounding div mentioned above with the class of 'contentpaneopen
contentheading CLASS The standard Joomla class attached to the H2 that contains the Page Title.
createdate CLASS The standard Joomla class attached to the paragraph <p> that contains the table's creation date.
modifydate CLASS The standard Joomla class attached to the paragraph <p> that contains the table's modification date.
et_description CLASS The class attached to the paragraph <p> containing the description.
easytable-TTTTT ID The ID of the DIV that surrounds the table elements.
search_result CLASS The standard Joomla class attached to the form used for search functions.
et_search_result  CLASS The class name attached to the DIV wrapped around the search field and buttons.
pagination  CLASS The standard Joomla class attached to the DIV surrounding the pagination controls.
display CLASS The class attached to the DIV wrapped around the form elements that control how many records are displayed per page.
TTTTT ID The table alias is used as the ID of the <TABLE> element.
sectiontableheader CLASS The standard Joomla class used for table headings.
FFFFF CLASS The class attached to a column heading in addition to the sectiontableheader described above, where FFFFF is replaced by the field alias. The FFFFF class is also attached to each table cell <TD> for that field. eg. FFFFF could be president as in our demo website.
row0 / row1 CLASS Alternating table rows <TR> have the classes row0 or row1 attached, starting with row0 for the first row.
colfld CLASS The class attached to each table cell <TD> and immediately proceeds the field alias described above.
eg. <TD CLASS='colfld president' >
pagination_footer CLASS The class attached to the pagination elements at the foot of the table.

EasyTable Record View

 

NameTypeNotes
et_record ID The ID of the surrounding DIV, this is the surrounding div mentioned above with the class of 'contentpaneopen'
contentheading CLASS The class attached to the DIV that contains the Page Title.
easytable-record ID The ID of the DIV that surrounds the all of the record elements.
TTTTT CLASS The class attached to the DIVeasytable-record.
TTTTT ID The table alias is used as the ID of the <TABLE> element for the record.
sectiontableheader CLASS The standard Joomla class attached to a field heading.
sectiontablerow CLASS The standard Joomla class attached to the table cells <TD> containing the field value.
FFFFF CLASS The field alias is used as a class attached to the field heading the the table cell that contains the fields value.
easytable-linkedtable ID The ID of the DIV surrounding the table of records from the linked table, if one exists.
  CLASS The easytable-linkedtable DIV also has the alias of the linked table applied to it as a class.

 

 

EasyTable Pro blank screen when creating/editing a table.

Symptons

When using EasyTable Pro clicking on the "New" or "Edit" table buttons/links results in a white screen.

Possible Causes:

  1. Phoca PDF-> content plug-in
    1. version 1.0.3 has been found to delete the content of the a page a performing a preg_replace()
    2. on line 90 of this content plug-in the $bodysite variable is replaced with the contents of the preg_replace() without checking the result first.
    3. after this line the plug-in then calls Joomla!'s JResponse::setBody($bodySite) effectively erasing the page, again without checking.
  2. Check for poorly written plug-ins (Phoc PDF is not the first one to cause problems, looking at you Jumi...)
  3. Try disabling all none-standard plugins (via the Plug-in Manager) and see if EasyTable Pro works
  4. If it does you can re-enable plugins gradually and check EasyTable continues to work, eventually you'll find the culprit.
  5. Check EasyTable Pro's minimum requirements are met by your server.

How can I get alternating row colors?

Row CSS Class

EasyTable for J! and EasyTable Pro attach 'row0' and 'row1' to each alternate row, starting with 'row0' for the first row on a page followed by 'row1' for the next, then 'row0' again and so on.

<tr class="row0">...</tr> - Initial Row with 'row0' class attached.

 <tr class="row1">...</tr>

 <tr class="row0">...</tr>

Example CSS

The CSS examples described here can be seen in the tables on our demo website.

For a lot of templates the CSS is already defined for the CSS classes 'row0' and 'row1', however, a few templates do not have these class definitions. In those cases you will need to add some CSS that defines the classes. The following CSS defines the two classes, making the background of all 'row1' a light grey.

tr.row0 { background-color: #FFFFFF; }

tr.row1 { background-color: #F9F9F9; }

If you want the rows to change color as the cursor moves you can use the pseudo selector 'hover' as shown in the example CSS.

tr.row0:hover { background-color: #FFD; }

tr.row1:hover { background-color: #FFD; }

Using template overrides with EasyTable Pro

EasyTable components are made using the Joomla MVC model and as such allow you to create template overrides for each of the views.

To show the corresponding line number in front of the row i.e. line 1 shows 1, line 2 shows 2 and so forth.

A template override for EasyTable Pro can be downloaded here. This override adds a calculated column number before (left most position) any other columns. It works off the paginated record set so will start at 1 and proceed up to the number of records in the set.

Just drop this in your websites template HTML overrides folder.

eg. if you're using JA-Purity drop the com_easytablepro folder into /templates/ja_purity/html

In the zip file you will find the following directory structure:

/yourTemplate/html/com_easytablepro/

If your template doesn't have a html directory in it copy the html directory from the zip file in to the directory your template is in. eg /templates/yourTemplate/html

NB: Things to note!

  • this will affect every table using this template
  • if you use the front end Javascript based table sorting the number will move with the sort pattern selected.

500 - Error: "Column count mismatch"

500 - An error has occurred.

Update of data table failed (Column count mismatch) for table: X

In this example message the X represents the numerical ID of your particular table (eg. X could 2 as with the Table ID shown below).

If you received this error message while trying to upload a CSV file to an existing table it means that the number of columns/fields in the table differs from the number in the CSV file you are trying to upload. Have you added or removed any columns since you first created the table?

If you have a large number of columns, you can quick check the number of columns in a table by checking the statistics section of the EasyTable editor (as shown in the screenshot below).

EasyTable - Table Statistics

Setting Column Width by CSS

The CSS

Using CSS you can control the look of all aspects of a table created by the EasyTable Pro component — this FAQ lists CSS ID's and classes.

If you had a table with an alias of "sample-data" and a field with an alias of "column-2-image" you could create an entry in your templates CSS that sets the width.

#sample-data td.colfld.column-2-image {

width: 160px;
}

We would normally suggest putting it at the end of the template.css file.

Checking the CSS

To check if your CSS is being applied properly we recommend using either Firefox with the Firebug extension or Safari/Chrome's built in web kit inspector. Using these you can point to the element you expect the CSS to be affecting and right click and select "Inspect Element".

Menu Item Safari/Chrome Inspect Element Firefox + Firebug Inspect Element Menu Item

If your CSS is properly structured and matches the ID and classes of your table by clicking on the TD element in the inspector view you will see the associated CSS as shown below.

Safari/Chrome Webkit Inspector Firefox Firebug Inspector

Typical problems to look for when CSS doesn't attach to the element are: syntax errors, ID or class name errors or website/browser cache issues.

No Data Table Found For...

If you get a status section like this one:

No_Data_Table_Found Status

It's usually because you missed Step #5 in the Creating A New Table section of EasyTable Editor Explained (Part 1).

500 - Error: Data insert failed for table: X in updateETTDTableFrom()

500 - Error: Data insert failed for table: X in updateETTDTableFrom():
Possibly your CSV file is malformed

This error occurs when uploading a new file to the component. This is the result of errors in the CSV file being uploaded - the CSV file format (RFC4180) is defined here, a more readable summary is on Wikipedia.

EasyTable only supports CSV files and it does this using PHP's method fgetCSV method. If the fgetCSV throws up an error you will see that line "Possibly your CSV file ismalformed"

The first thing to check is the CSV file meets the definition. The best way to do this isusing a Unicode aware text editor that can search for & display invisible characters in your CSV file, ( and no Notepad isn't good enough ). I personally recommend BBEdit but I'm sure there's something on Windows/Linux environments that does a similar job.

Things to look out for

  • control characters that need to be encoded first
  • comma's in the body of a field that aren't properly encased
  • the wrong delimiter used for fields eg. a semi-colon ; rather than a comma

To determine if your file is the source of the problem try downloading the sample CSVfile in our downloads area and uploading it to your website. If that works then there's a reasonable chance that your CSV file is malformed as the error message indicates.

Failing all of that, if you have a current Support Subscription you can send the file in question to our subscriber support forum and we'll take a look at it for you.

Javascript errors / problems toggling Red X in view columns / front-end sorting not working

Symptons

  1. Browser reports a a Javascript error
    • eg. "Function not found" or "javascript:void(0);"
  2. Trying to toggle the "Red X" in the List View, Detail Link or Detail View column fails.
  3. After turning on table sorting in the Administration screens, front-end table sorting doesn't work.

Possible Causes

WAMP/MAMP

When users have experienced this problem the cause has been that they are running a developement or test version of the Joomla website in a virtual testing environment like WAMP or similar on a Windows variant. If the configuration of the virtual environment is not correct then Joomla's constant DS (stands for directory separator) can be wrong resulting in certain older browsers experiencing problems in resolving the path to the Javascript files required.

eg. the path will have '\' rather than '/' or vice versa.

MooTools Upgrade

EasyTable Pro (or EasyTable for J!) is/are not compatible with the System plugin introduced in Joomla 1.5.19.

Solution

Generally users can do one of three things;

  1. Change the virtual server configuration so that Joomla sets the DS value properly (we don't know how but people tell us it can be done).
  2. Use a different hosting setup that doesn't require a virtualisation box (we work on Mac's and Linux hosts so we don't see these problems).
  3. Try a non-Internet Explorer browser which can parse the path even with the error (preferably a recent Firefox, Safari or Google's Chrome).

 

This FAQ is current as of EasyTable for J! 1.0.5 and EasyTable Pro 0.9.0. EasyTable Pro 1.0 no longer uses the DS separator and has no reports of this problem. 

How does table sorting work in EasyTable Pro?

Basics

EasyTable Pro allows users to click on a column heading and have the table sorted by the values in that column. Please note EasyTable also lets you sort the entire table prior to display as well as records on the current page.

How do you turn it on?

The EasyTable components support Joomla's standard preference model, ie. you can set a preference at the global component level, the menu level or the table level.

Global preferences are set via the Parameters button is the EasyTable Pro Manager, these Global component preferences can be over-ridden when you link to the component through the Joomla menu system. The preferences set at the menu level can in turn be over-ridden at the individual table level.

To make a table sortable in the front end you must set the "Make Table Sortable" preference to "Yes" at the level you want. So if you want all tables to be sortable you can set it at the component level via the Parameters button, all menus linking to tables and all tables at that point will by default inherit that setting.

Table Preferences

How does it work?

When the preference is set to "Yes" the EasyTable Pro component adds a javascript file to the page the table is displayed on, the file is added via a script reference similar to the one below.

The Javascript only sorts records that are on the current page, when a column heading is clicked the column will be sorted into Ascending order first, the next click on the same column will change it to a Descending order.

<script type="text/javascript"
src="http://site.com/components/com_easytablepro/
assets/webtoolkit.sortabletable.js">
</script>

This Javascript file contains a function SortableTable() which the EasyTable component adds to the page after the table. It is this function that performs the sorting.

The sorting works best on text, numbers and date columns. Advanced date, number and currency formatting for column data can result in values being sorted alphabetically rather than in the order expected. Post the 1.0 release the sorting functions will be revisited to try and address the sorting of formatted data.

In addition to sorting the records into an ascending or descending order the function adds a CSS class to the table heading that allows you to style the header appropriately (read the FAQ for more information)

Joomla 2.5 Support

We are getting a few questions about when the components will work with Joomla 2.5, this is our current position and if it changes I'll update this FAQ.

EasyTable for J!

Sadly the free "EasyTable for J!" isn't well supported by the user base — even though we have litterally thousands of websites using the free version of the component there has been very little feedback on the Joomla Extension Directory and only 1 donation over the last 2 years. Feedback is important as without ratings and reviews new users don't get to see the component.

As a reference — the EasyTable for J! component in Feb 2012 made 173,560 version checks from approx. 153,000 unique IP's. Version checks are done once per session when the component is opened to add or modify a table. 

So, at this point I can't afford the time to upgrade it — if I get time in the future I will probably make a Joomla 1.6/1.7 2.5 installable version — like most people I have to focus on things that pay the bills.

To be clear if you like and use this component and you want to see a Joomla 2.5 version I suggest you vote for it on JED. This will increase it's exposure to other users and some of them may even like to use the Pro version.

EasyTable Pro

EasyTable Pro! has an upgrade to Joomla 2.5, it's called EasyTable Pro! 1.1.x

The 1.0.0 Release is final and will only receive bug fixes for current subscribers until Joomla! 1.5 reaches end of life (currently Joomla! have this marked for August 2012).

Aug. 2012: In line with the end of life for Joomla! 1.5, support for Joomla! 1.5 compatible versions is no longer available.

The key to seeing ongoing updates is of course users, and though we get people saying they love the Pro version nearly every day we've got only a few reviews on the JED. Compared to approx. 300 hundred copies paid for — apparently it's not good enough for people to spend a few seconds and vote for it — let alone write a review. On average each licensed copies appears to be running on approximately 60 different servers.

As a reference — the EasyTable Pro component in Feb 2012 made 15,977 version checks from approx. 12,300 unique IP's. Version checks are done once per session when the component is opened to add or modify a table.

With the latest versions we moved to a mechanism that uses the browsers cache and will only retrieve the version data when the browser expires the cache or the user does a forced refresh. This saw a dramatic drop in the hits on our server, thankfully, but we're still seeing about 3200 uniques IP's checking the version of EasyTable Pro each month.

Some people also seem to be happier to use versions they've downloaded from "free" websites. Recently this caused us an issue when a user of the "free" package blamed us for his site being hacked — that turned out to be a malicious version that was being distributed on the web.

Again if you're a happy user of the EasyTable Pro component may I suggest you vote for it on the JED.

Current as at 25th June 2012.

Adding a tooltip to column headings

Background

EasyTable Pro allows you to sort columns by clicking on the headings of a column.  Previously we have covered how to add CSS to your websites template css to show "indicator arrows" in the column headings. 

This FAQ takes it one step further by showing you how to turn on a Joomla Tooltip that pops up when your cursor moves over the column heading.

NB: This tip requires EasyTable Pro 1.0.0RC6 or later. You can see this working on the demo website.

Steps

1. Add the text of the tooltip to the field/column's Description field. You can put anything you like but in this example I've set a description of the sorting function.

Using the_Description_for_Table_Column

[ Notice the :: between the words Sorting and Click - this tells the Joomla Tooltip function that the first part ("Sorting") is the title of the tooltip and the rest is the body of the tooltip. ]

2. Check the result in the front end by reloading the table and moving the cursor over the column heading - if you've done everything correctly you should see something like this:

Column Tooltip_for_EasyTable_Pro

3. There is no step 3.

No valid database connection...

Symptom

View an EasyTable on the front-end of your website results in an error message being displayed in your templates Message area and the table still appears to work correctly. The text of the message will be similar to this:

No valid database connection Unknown column '' in 'field list' SQL=SELECT `id`,
 `` FROM xx_easytables_table_data_N order by `id` ASC LIMIT 0, 103

Solution

Of the two cases where this problem has been reported JoomFish was installed on the websites.

Upgrading JoomFish to the latest version fixes the problem.

How do I change the pagination elements in EasyTable?

Background

EasyTable components use the standard JPagination element on our demo website the pagination elements are wrapped in HTML list elements (ie. UL, LI etc). This is the result of the template being able to take advantage of Joomla's support for overriding the rendering of specific elements.

In the JA-Purity template a pagination override can be found in the /templates/JA-Purity/html/ directory, it's called pagination.php.

Changing Pagination for your Template

If you want to change the pagination for your template you will either need to create/modify a pagination.php file. You will need and understanding of both PHP and HTML to achieve this.

You can read more about Joomla overrides here.

 

 

500 - Error: "yourfilename.csv could not be moved"

Problem

When uploading a large CSV file via EasyTable for J! or EasyTable Pro the system throws a 500 Error similar to the one show below.

BigFile500_Error

Reason

This error occurs as the upload form has a hard limit of 3,000,000 bytes and so for files greater than that the browser doesn't actually send the file to the server.

Solution

If you're using EasyTable Pro you can simply cut the file in pieces less than 3,000,000 bytes in size.

If you're creating the table for the first time you can include column headings in the first segment to make things easier when configuring the table after the data has been imported.

Advanced Solution

If you're sure of your PHP settings on your server (eg. upload_max_filesize) and not concerned about editing PHP files you can increase the limit to a size large enough to accommodate the data file you're importing. The line you want to edit is found in:

site/administrator/components/com_easytablepro/views/easytable/tmpl/default.php

at approximately line: 115 you will see the following code:

<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />

Locked Table

In EasyTable Pro! it is possible for a table to be locked by another user — in the manager view this will be noticeable as a padlock icon will be displayed next to the name.

Locked Tables show a Padlock Icon next to them.

If the user has logged out of Joomla but left the table locked (i.e. they open the table but didn't use the Close/Save/Save & Close button to leave it) you can unlock the table using your Super Admin account. You can check the detail of who has a table checked out by hovering your cursor over the padlock icon to reveal the tooltip, as show below:

Locked Tables display a Tooltip of who by and when the table was locked.

If the table is Locked then you can either click on the lock icon (which will unlock it or in Joomla! parlance Check it in ) or use Joomla's standard maintenance menu option to check-in the table. Selecting Site->Maintenance->Global Check-in will show you a list of table that support check-in.

Global Checkin Menu

The one you're looking for is called something like #__easytables table (where the leading #_ is replaced with a random prefix for your particular Joomla! installation). In the screenshot below you can see the table dmc_easytables has one (1) table showing in the Items to Check-in column.

Global Checkin Screen


Simply click the check box next to the #__easytables table row and then click the "Check-in" button in the toolbar.

Remember: To do either of those things you will need to be logged into a Super Admin account.

Adding a Field/Column to your table

Background

Since version 0.9.0 EasyTable Pro has allowed the modification of the basic table structure for native* EasyTable Pro tables (see Modifying Table Structures ).

If you need to review those features please read the article linked above or review this annontated screenshot of the table modification interface.

Step by Step

1. Modify Structure Mode

Modify Structure IconIn the Table Editor screen you will see a button in the far right of the Joomla Toolbar called "Modify Structure" — when you click on this the interface elements that allow you to change the structure of your table will be revealed.

Why do we hide them? — Well first up they're generally not needed everyday. Secondly if you're not careful you could destroy a lot of work you've already put into your table — remember this interface allows you to change the actual structure of your table in the servers database.

2. Click the New Field button/link.

EasyTable Pro New Field Button

This will create a new row in the table editor showing a new "blank" field. As you can see in the image below — the new field is highlighted by a light green background which will stay until the field is either discarded or "Saved" to the database. A new field also has a temporary ID usually of the form '_nf_#' where the hash is replaced by the number of the new field (yes you can create multiple new fields at one time before saving).

3. Configure the New Field.

EasyTable Pro - New blank Field

A new field is essentially blank — it needs to be configured before you can save the table and keep your  new record. There are several things you must do to configure a field properly:

  1. Enter a Name for the field then press the TAB key. (This will cause EasyTable to automatically create a valid* matching unique alias for you).
  2. You will need to select whether or not it displays in the List and Detail views.
  3. You will need to toggle the Search flag if you want Joomla to search this field.

EasyTable Pro - Complete the new Field settings

4. Save/Apply your Changes

It's easy enough to forget but once you've made the changes you want to your new fields click the Save/Apply buttons to committ the changes to the table. Once you've done this you will notice that the light green background on your new field has disappeared and it temporary ID has been updated to a standard field ID. As show below:

EasyTable Pro - Completed New Field

How do I use EasyTable with non-English CSV files?

If your data and locale are US/UK based then programs like Microsoft Excel will export a correctly formatted CSV file. If your locale requires non-ASCII characters (eg. Cyrillic, Arabic, Greek, Hebrew, Thai, Chinese etc...) then most programs will export a file that contains non-ASCII characters.

To overcome this you need to do two things:

  1. Convert the file to a UTF-8 format.
  2. Encode the non-ASCII characters as HTML entities

These steps are covered in our FAQs on the subject:

  1. What file format does EasyTable support?
  2. Why do letters like é, å, ä, ö disappear?

 

How can I show all the records in a table?

The EasyTable component follows the Joomla! convention for lists of records, ie. the default number of records displayed is controlled by the website's "Global Configuration" in Site->Site Settings->List Length. The Joomla! default is 20 records and once a user changes this value that becomes the user default.

For tables of information it is often necessary to show all of the records in one page, with EasyTable preferences you can do this. Control over a Tables pagination can be set at three levels for Joomla! 1.5 and two levels for Joomla! 2.5+ — the EasyTable Global Parameters (set in EasyTable Manager), the EasyTable Menu item (in Joomla! 1.5) and in the EasyTable table editor. As you would expect of a Joomla! component the default values are taken from the Global Parameters and they are over-ridden by any settings in the table, finally they are over-ridden by the setting in the Menu.

To show all the records in a table you must open the Table Preferences panel and set the "Enable Table Pages" to "No" ("Show Table Pages" in EasyTable 1.0). For a table with a small number of records (100-200) this shouldn't have a big impact on your server, however, if you have a table with a large number of records (thousands) and you're using a shared or resourse restricted server you may encounter issues.  For a large number of records in a table and a high number of users we don't recommend turning pagination off — symptoms you will encounter include Out of memory errors

  • Out of memory (allocated XXXXXXX) (tried to allocate YYY bytes)
  • page timeouts
  • users on other parts of the site experiencing slow responses (as the servers resources have all be used up by another user requesting the 10,000 records in your table).

If you have a short table it's probably best to change this preference only in the table. If you have lots of tables and some are quite large we don't recommend setting this value to no in the Global Preferences as it can result in the problems mentioned and it a lot of work for your server and a large amount of data being sent to the end user (which your host may charge you for).

 

EasyTable for J! - Table Preferences->Show PagesEasyTable for J! - Table Preferences->Show Pages Table Preferences — EasyTable Pro! v1.1.0Table Preferences — EasyTable Pro! v1.1.0

Minimum Requirements for EasyTable

EasyTable is a Joomla 1.5 Native component it does not work with any 1.0 era versions of Joomla. There will not be a version for Joomla 1.0 (unless you want to pay for it to be written, in which case contact us).

Having said that EasyTable 1.0 & EasyTable Pro 1.0 (and all previous versions) have the following requirements.

Requirements

Joomla Version

1.5.14 ( although it may work on previous versions of Joomla 1.5 { 1.5.10 does have a known issue with packages that we can't address } )

EasyTable Pro requires 1.5.20 ( although it may work on previous versions) 1.5.25 ( is recommended )

Database

MySQL 5.0+

PHP Version

5.1+ ( 5.1.12+ recommended ).

 

 

Confirmed for EasyTable for J! 1.0.5a and EasyTable Pro 0.9.0 and later - 23 Feb 2011

Why doesn't EasyTable XXXX XXX?

EasyTable is designed to be "Easy" to use, remember this before getting upset and ranting at my people in support.

EasyTable is written by me, Craig Phillips and no one else, it's written in my downtime when I don't have a paying job to work on that feeds the boys and girls of my business family, so, again, remember this before getting upset and ranting at my boys and girls in support. (Yes Virginia even though 1000s of websites use one or another version of the EasyTable component it doesn't at this point even pay for it's hosting.)

…have table sorting?

Sorting in a web page has lots of issues - first is the fact that browsers are basically widely different in their feature sets right now (yes Internet Explorer I'm looking at you). Next up the way we would like to do it is on top of a descent, modern JavaScript framework like MooTools 1.2.x or later - yes Joomla I'm looking at you. Finally any implementation at this point will have issues because of the proceeding problems.

We are adding sorting to EasyTable Pro as both a backend setting (ie. you pick a field and we sort it before sending the page to the user) and a Javascript feature available by clicking on column headings (if enabled). Again these is not perfect and add a layer of complexity that would be better avoided.

The eventual aim is to move EasyTable Pro to a AJAX based design that will load all records of the table into a page and sort, filter and display them based on user actions without returning to the website for each request.

…have it's own CSS file?

EasyTable is designed so that it uses standard Joomla classes where possible. To this end table headings and rows follow this principle where possible so that properly implemented Joomla templates will format the tables automatically.

The second reason is that every time you add a new file to a template (such as a custom EasyTable CSS file) it slows down the browser experience and adds load to your sever slowing down everyone visiting the website. There's a good reason there are dozens of extensions available to compress, join and minify CSS and JS files in your Joomla tempaltes.

…dispaly in a module?

The original design was for producing full page tables, a module element is being considered for the post 1.0 time frame. Modules though have limited configuration abilities so were not sure exactly what will be possible.

…display in an article?

See above, but an article plug-in will be available post the Joomla 1.6 installation compatible version.

How do I let you know what I want in the next version of EasyTable?

Please use the forums to let us know what features will make EasyTable easier for you to use.

Hacked Version of EasyTable Pro

Issue

We have been made aware of a hacked version of EasyTable Pro 0.9.0 is circulating on various Russian websites that offer free software. The file can be identified by the following discrepancies from the real version.

Real Version Hacked Version
Filename 0.9.0-easytablepro.zip

unzip-first-easytablepro.zip or 

unzip-me-first-0.9.0-easytablepro.zip

Size 164Kb (< 200Kb) > 1.9 Mb
Install Only installs on a PHP server Opening it apparently auto launches a malicious file called "delete.me"

Solution

If you have installed this hacked version on your server get profession IT help to uninstall it and determine if anything else has been added to your server. You may also want to check your personal computer that you downloaded the file on for a virus/trojan.

The only safe place to get our software is from our website at http://seepeoplesoftware.com.

What version of EasyTable is installed | available?

EasyTable for J! and EasyTable Pro show both the currently installed version and the version available for download. (Download & information about current versions of all our software is here.)

The version information appears directly above the list of tables in the EasyTable Manager, in EasyTable for J! it looks like this:

EasyTable-for-J-Version-Info

In EasyTable Pro it is slightly different and looks like this:

EasyTable Pro - Version Information

The line of version information acts as a mouse-over hot spot, if you move your cursors over the "Current Release" sections (highlighted above) a post-it note notice will appear showing you any important information about the new version. Simply move your cursor off the hot spot area to make the post-it note go away.

The EasyTable & EasyTable Pro components retrieve the version information from our servers making sure the update information is current. In the near future this system of version checking will receive an update that executes the check in the browser, rather than on your server, to avoid problem with some hosting services.

Aug. 2012: In line with the end of life for Joomla! 1.5, support for Joomla! 1.5 compatible versions is no longer available.

EasyTable Pro! 1.1.0+

In EasyTable Pro 1.1.0+ the version information is displayed slightly differently as shown in this image below, additionally to read about the release now you will have to click on the version number link to open a new windows with the release details.

EasyTable Pro 1.1 Manager Version Information

Related Problems

The version checking system was changed to deal with problems discussed in this FAQ.

 

Current as at Version 1.1.1 of EasyTable Pro and 1.0.5a of EasyTable for J!

 

 

500 - Error: Installation may be corrupt/incomplete

500 - An error has occurred.
Failed to open easytable.xml during version check - installation may be corrupt/incomplete.

EasyTable performs an quick version check each time the component is opened in the Administrator area of Joomla.

If the easytable.xml file can't be found this indicates that the installation was not successfully completed by Joomla or that the file has been deleted. As EasyTable manipulates your database directly we don't take the risk of a faulty installation and simply stop the component from proceeding.

Solution

You can try re-installing the component to rectify the problem, but if this fails you will need to either try the General Joomla Installations troubleshooting steps or contact your hosting provider to determine the cause of the problem.

Versions Prior to 1.0FC9

If you are using versions prior to 1.0FC9 you will experience a similar error that reads as shown below.

500 - An error has occurred.
Failed to open public_easytable.xml during version check - installation may be corrupt/incomplete.

Notice the file that couldn't be opened is prefixed with "public_" (in some very rare cases it could be prefixed with "subscriber_" but this has never been reported).

This error occurs because your website can't contact the SeePeopleSoftware.com website to check current version data. Due to a coding bug in all versions prior to FC9 the EasyTable component would mistakenly abort it's execution rather than setting the version display message appropriately.

Solution

Upgrade to a more recent version of the EasyTable component.

Known Products that don't work as linked tables

EasyTable Pro! provides a means to display the content of database tables not created by EasyTable Pro!. This "linked" external table must be visible to Joomla! for the table to appear in the selection list.

However, a table may appear in the list that can't be used reliable or in some cases at all. This is because of the basic structure required to make "logical table" — sometimes the structure of "linked" table doesn't contain a simple primary key (i.e. a single column that is used to index each record in the table).

EasyTable Pro! can't work without a a primary key column, so if the linked table doesn't provide simple primary key column it is probably using either foriegn keys or compound keys. Unfortunately as database design is almost infinitely flexible there isn't a standardised way for EasyTable Pro! to determine the correct keys to use and create a virtual key. (Temporary keys have to be virtual to as EasyTable Pro! doesn't modify linked tables).

The following products have been identified as not being compatible with EasyTable Pro!'s "linked" tables feature: 

#
Product
Version
Date Added
Comment
1 VirtueMart 1.x 19/11/10 Tables are fractured and don't allow for useful display - reported by PiersNegwin.
2 JomSocial All 1/5/11 Foreign keys are used in several tables - reported by DaveAttwood
3 RokGallery All 12/6/12 Foreign and compound keys, hashed values used throughout - identified by CPPL.

Changing the number of records processed

Background

If you have a table with a large number of fields in each record you may experience timeouts or out of memory problems. This occurs for a variety of reasons including PHP file upload limits, memory limits and time out settings.

If you've already tried

  1. splitting the file up into smaller files and appending the records.
  2. increasing the limits mentioned above

Then you could try modifying EasyTable Pro to process a smaller number of records at a time.

In EasyTable Pro you can change the "Chunk Size" setting by logging in as the Super Administrator and entering an new value — the default value is 50 rows at a time.

Depending on your record size you can safely reduce the value of $chunkSize to 1 if required, in most cases simply halving the value is sufficient.

This will do several things, one it will reduce the amount of memory required to process each chunk and two if will increase the number of steps required to process the same number of records, causing the process to take longer than it would normally.



For versions prior to EasyTable Pro 1.0.0ß1

To do this you will need to edit the file /administrator/components/com_easytablepro/controllers/easytable.php

In that file you will be looking for the following code "$chunkSize = 50" highlighted in the code block below:

function updateETTDTableFrom ($id, $ettdColumnAliass, $CSVFileArray)
{
// Setup basic variables
$hasHeaders = JRequest::getVar('CSVFileHasHeaders');
$totalCSVRows = count($CSVFileArray);
$chunkSize = 50; // Arbitrary chunking size at this point...
$csvRowCount = 0; // Check our CSV column count matches our ETTD  

 

Current as at 9th June 2011.

Where's the Demo Website?

You can find demonstrations of our software for Joomla! 1.5 on our reference website.

http://j15ref.craigphillips.biz

 

Can I change the field "Alias" for a column?

The Alias is created at the time the table is created, that's because we actually create a real table in the backend database your Joomla website is running on. The alias is the actual column name in the table in the database, it's also used to for the CSS class label for the column.

The Alias is unique and may be changed from the original column name if you have duplicate column names or if you have a column with the heading "ID" in any combinatoin of upper and lower case. ID is a reserved field name that is used as the primary key to identify each unique record, if you import a table with a column heading of ID it's alias will be renamed 'tmp-id' or similar.

EasyTable for J!

No.

Now that the short answer is dealt with, here's the slightly longer one.

To answer the next logical question - yes in a future version you may be able to change the alias. Like all feature requests it really depends on how much time we can afford to spend on the EasyTable component.

EasyTable Pro

EasyTable Pro supports the modification of all table structure elements including the alias of a field. The same limitation to the alias value as it is still used as the actual column name in the table in the database and the CSS class label for the column.

Where can I find other versions of EasyTable for J!

Previous Version

If you click on the "Downloads" menu heading (http://seepeoplesoftware.com/downloads.html) rather that the menu item "Easytable for J!" you will get to all the files available for download.

Current Version

If you mouse over the "Downloads" menu heading (http://seepeoplesoftware.com/downloads.html) and then click on the menu item "Easytable for J" you will download page for the current publicly available version.

You will find the sample files in the general "Downloads" area.

Subscriber and Pre-Release Versions

Current Support Subscribers are able to get the latest version of EasyTable from the private Subscribers Downloads area. You can download these versions as long as your support subscription is current.

You will find the sample files in the general "Downloads" area.

How do set the page title for an EasyTable?

From the Menu

EasyTable lets you create a menu items that show:

  • List's of Published tables
  • A specific table
  • A specific record in a table (in EasyTable Pro)

Like all other menu items in Joomla, creating an EasyTable menu item is quite simple, the first step is to choose a menu item type and then give it a name. If you've created a menu item in Joomla before this next image should be familiar:

EasyTable Menuquot; /></p> <p>The only thing you need to do is give it a name - the rest is all optional. Of course position it the menu hierarchy isn't really optional if you want your website to make sense but you don't have to expressly set it.</p> <p>When creating a menu item with Joomla one of the most over-looked options are the

When creating menu items in Joomla one of the most overlooked aspects are the Parameters (System) - found in the panels on the left of the menu screen. Amongst other things they let you control the appearance and text of a page title when it's linked to from a menu item.

Parameters (System) Panel

If you add any text to the "Page Title" box it will over-ride the table name for the title of the page, otherwise the table name becomes the page title.

Remember this doesn't change the name of the table just the page title that is shown on that table when accessed through that menu item.

From the Table list?

If you create a menu-item that show a list of all published tables, the list of tables will inherit the "Page Title" text but, then tables accessed from that list will always have the actual table name as the page title.  There isn't a Joomla compliant want to change the page title of tables from the table lists.

In versions prior to 1.0.1 the table name was overlooked when generating the page title.

Can I change/translate labels in...

Yes, this is a standard feature of Joomla! 2.5 for extensions (compents, plugins, modules and even templates)… if they are written correctly. You can change the wording of labels etc. using: Extensions->Language Manager->Overrides 

This will allow you to modify most labels used in the Front-end and back.

When you click the New button, you will see an interace like this one:

 Overriding-Label-etc-in-Joomla-2.5

On the right hand side can see a "Search" field with a Radio button underneath it that lets you select "Value" or "Contstant" — to change any label just search on the words of the label.

For example if you wanted to change the label "Last Updated:" in EasyTable Pro! you would get these search results:

Language Override Search

When you see the constant in the Search Results list, click on it to fill out the Language Constant and Text fields in the Create a New Override box to the left. Then you can simply edit the Text box to suite your requirements.

A problem with plugins…

However, for plugins the search process described above doesn't work (at least in Joomla! 2.5.x), for constants or values. In Joomla! search integration with Joomla's builtin search is done via a plugin — so to modify search labels etc you will need a way around this problem.

The easiest solution, means you need to know the Language Constant, this is the key for each string that you want to change. The Language Constants usually start with com_ or plg_ or mod_ followed by the name of the component, plugin or module. e.g. For the EasyTable Pro component and it search plugin the keys start with:

COM_EASYTABLEPRO_
PLG_SEARCH_EASYTABLE_

Here's a standard search output from Joomla! that found some hits in EasyTable Pro! for "Gerald", notice the difference between results where this is only one result in a table and multiple results.

Easytable Pro! Search Result

To find out what the keys are for a plugin are the simplest way is to look inside it's language files (you can see the contents of the 1.1.0 version of the EasyTable Pro search plugin below in the next section).

The search plugin has two language files ( you will find them here: /plugins/search/easytablepro/language/en-GB/).

They language files for the Search plugin are called:

en-GB.plg_search_easytablepro.ini
en-GB.plg_search_easytablepro.sys.ini

The second language file, that ends with .sys.ini holds the labels e.t.c. that you see in the Plugin Manager in the back-end, so, isn't generally isn't the file people want to modify. With plugins it's generally the front-end text people want to modify or translate.

You can see the contents of these files below, have a look. If you want to override one of these labels simply type the relevant constant into the Language Constant field as shown below:

Overriding EasyTable Search Plugin Singular Constant

A thing, to note from looking at the language file for the EasyTable Pro Search plugin, it is common for there to be two similar strings for search results. There is usually a string for a single result being returned and another for multiple results being returned, in this case:

  • PLG_SEARCH_EASYTABLE_FOUND_A_RECORD_THAT_MATCHES and
  • PLG_SEARCH_EASYTABLE_FOUND_THESE_RECORDS_THAT_MATCH respectively.

You will generally want to create an override for both, e.g. here's the override I created for multiple records that matched:

Overriding EasyTable Pro! Search Plugin Plural

Once the changes have been saved you'll be able to see the result in the front-end, in our example here that would change the search output to look like this:

 Easytable Pro! Search Result with Language override.

Creating a translation file

Remember — always use a backup and never edit your original files (because if you don't break the file, all of your changes will be lost the minute you install a new version...)

To create a translation for your preferred language for the EasyTable Pro! component or it's Search Plugin you can create a language specific translation file. (The specification of Joomla! language files can be read here.)

Example Translation

As an example, we'll use the EasyTable Pro! Search Plugin's language files (as they're nice and short).

To create a translation file, start by finding the language code for your language — the official list is here http://www.loc.gov/standards/iso639-2/php/code_list.php — find your languages 2 letter code.

The next step is creating a folder for your language, e.g. for a French translation:

/plugins/search/easytablepro/language/fr-FR

The next step is to copy the existing English language files into your new language folder and renaming the copies to match your language. e.g. in /plugins/search/easytablepro/language/fr-FR you would have:

fr-FR.plg_search_easytablepro.ini
fr-FR.plg_search_easytablepro.sys.ini

The content of the English .ini and .sys.ini files looked like this for version 1.1.0 

#en-GB.com_easytablepro.ini
# version 1.1
# author Craig Phillips
# copyright (C) 2012 Craig Phillips Pty Ltd. All rights reserved.
# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
PLG_SEARCH_EASYTABLE_FOUND_THESE_RECORDS_THAT_MATCH="Found these records that match: "
PLG_SEARCH_EASYTABLE_FOUND_A_RECORD_THAT_MATCHES="Found a record that matches: "
#en-GB.com_easytablepro.sys.ini
# version 1.1.0
# author Craig Phillips
# copyright (C) 2012 Craig Phillips Pty ltd. All rights reserved.
# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
PLG_SEARCH_EASYTABLES="Search - EasyTables"
PLG_SEARCH_EASYTABLE_ALLOWS_SEARCHING_OF_EASYTABLE_PRO_TABLES="Integrates EasyTable Pro tables with Joomla!'s search function."
PLG_SEARCH_EASYTABLE_SEARCH_LIMIT="Search Limit"
PLG_SEARCH_EASYTABLE_NUMBER_OF_SEARCH_ITEMS_TO_RETURN="Number of Search items to return"

Now to convert these to your preferred language (in our example French) you simply change the value next to each Language Constant (i.e. the text inside the double quotes "this bit").

So, for our fr-FR.com_easytablepro.ini the file will look like this after the conversion:

#fr-FR.com_easytablepro.ini
# version 1.1
# author Craig Phillips
# copyright (C) 2012 Craig Phillips Pty Ltd. All rights reserved.
# license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
PLG_SEARCH_EASYTABLE_FOUND_THESE_RECORDS_THAT_MATCH="Trouvé ces enregistrements correspondant à: "
PLG_SEARCH_EASYTABLE_FOUND_A_RECORD_THAT_MATCHES="J'ai trouvé un dossier qui correspond à: "

As you can see, apart from the file name the only section I've had to change are the specific sentences, the constants, double quotes and everything else has remained the same.

 

Why does only the first column display in my table?

Software Affected:

EasyTable Pro prior to version 0.8.0

Problem:

When using EasyTable Pro only the first column of the table displays in the list view.  The same table in the free EasyTable for J! shows all columns.

Cause:

Early versions of PHP 5.2 don't reset array indexes when used in 'foreach' loops causing the rows array to be traversed incorrectly.

Solution:

  1. Upgrade to a later version of PHP - version 5.2.6 and above do exhibit the problem.
  2. Upgrade to EasyTable Pro v0.8.0 or higher which has a work-around for the problem.

 

Why can't I see any records from the linked table?

Firstly have you read this article?

If you have then these are the things to check:

  1. The "Key Field" and the "Linked Key Field" are both visible in the List View of their respective tables.
    • Version 1.0fc7 and later can use any column/field even if it isn't displayed in the list or detail views.
  2. The link search is an exact match, so "California" = "California" but "California" <> "california"
  3. Make sure you haven't unpublished your linked table after linking it.

Problems after software update?

In our Joomla websites we sometimes see unexpected results, like:

  • old layouts
  • missing modules
  • wrong user specific data

For those situations usually clearing or turning off Joomla's cache will fix the issue. If you don't know what I'm talking about you should probably get professional advice before turning anything off or clearing out the cache.

This FAQ has been written because we have had a case reported where modules didn't show up after upgrading to a new version of EasyTable Pro - even though we don't use Joomla's cache option in EasyTable the solution, as you can probably guess was to clear Joomla's cache.

How do you clear Joomla 1.5's cache? 

Easy, go to the Tools menu and select "Clean Cache".

Joomla - How to Clean Cache

Selection the options you want to clear and press the "Delete" button. If you have a lot of elements to your website the cache list may have multiple pages.

Usually we just clear the whole cache by clicking on the checkbox under the tab heading "Site".

Finally you can return to the Tools menu and click on the "Purge Expired Cache" menu option then click on the "Purge expired".

 

 

Why does my Alias have 'q' on either side of it?

Normally

Example Column Heading creates an alias example-column-heading

The Problem

Example Column Heading creates an alias qexample-column-headingq

Discussion

The EasyTable component imports text files in a CSV format.

Originally text files were all ASCII files but now with the advent of the Internet and multi-byte character sets there are lots of different encoding formats. Combine this with PHP & server settings and different Operating System platforms and it's very easy to get a file that has been exported incorrectly.

If you have a decent text editor you can do a "hex dump" and see what is actually in the file. For example, this recent file looked like this dumped:

00000000: EF BB BF 22 52 65 73 75 	Ôªø"Resu 
00000008: 6C 74 20 49 64 22 2C 22 lt Id","
00000010: 52 61 63 65 20 49 64 22 Race Id"
00000018: 2C 22 54 65 61 6D 22 2C ,"Team",
00000020: 22 44 72 69 76 65 72 20 "Driver
00000028: 23 31 22 2C 22 43 6F 75 #1","Cou
00000030: 6E 74 72 79 20 44 31 22 ntry D1"
00000038: 2C 22 44 72 69 76 65 72 ,"Driver

All those non alphanumeric characters tell us the file isn't properly encoded. The same file saved out as UTF-8 no BOM looks the way it should:

00000000: 22 52 65 73 75 6C 74 20 	"Result  
00000008: 49 64 22 2C 22 52 61 63 Id","Rac
00000010: 65 20 49 64 22 2C 22 54 e Id","T
00000018: 65 61 6D 22 2C 22 44 72 eam","Dr
00000020: 69 76 65 72 20 23 31 22 iver #1"
00000028: 2C 22 43 6F 75 6E 74 72 ,"Countr
00000030: 79 20 44 31 22 2C 22 44 y D1","D
00000038: 72 69 76 65 72 20 23 32 river #2

How big can the table be?

In a strictly technical sense the table can be as big as your database can handle.

EasyTable for J! (version 1.0.x)

In reality you can currently upload a 3,000,000 byte (3 MB) CSV file with the component. Practically we could increase it or remove the limit but that would lead to problems in the EasyTable operation at the current stage of development.

However, the 3 MB presumes your Joomla installation is setup on an environment that lets you upload a file that large. We have come across some hosting providers that have strange limits - needless to say we don't use them anymore.

EasyTable Pro! (version 1.0.x & 1.1.x)

EasyTable Pro will check the file upload limits for your web server and allow files up-to that size, you can off course increase this size (if your host allows) by changing the PHP setting upload_max_filesize. Administrator can also set the limit to a lower value through EasyTable Pro!'s settings.

Other issues…

Web servers being webservers that isn't the end of this subject. While the front-end display of a table doesn't get affected by your table size you will expereince other limits relating to your servers configuration when editing an EasyTable if you lots of columns. This is the result of a setting called max_input_vars (which has a default value of 1000 fields), this setting was introduced with PHP 5.3.9 and above, prior to that no limit existed.

This setting limits the number of fields a form can have.  The max_input_vars setting is an attempt to block certain types of Denial of Service attacks on PHP servers, so it is safe to upgrade the number to meet your requirements. Again, changing a PHP setting will depend on your host, so check with them.

In EasyTable each field in a table has multiple fields required for setting the various options, these quickly add up.

EasyTable for J! has 8 form fields per "Column" in your table and about 10 fields for other settings, this means a limit of 123 columns for the default max_input_vars setting.

EasyTable Pro! 1.0.x has 11 form fields per "Column" in your table, and about 12 fields for other settings, this means a limit of 90 columns for the default max_input_vars setting.

EasyTable Pro! 1.1.x has 11 form fields per "Column" in your table, and about 10 fields for other settings, this means a limit of 99 columns for the default max_input_vars setting.

The following examples show how this can affect you if you have the default 1000 fields limit.

Version Columns in Table  Calulation of Fields Required  Result
EasyTable for J! (1.0.x) 10 (10 x 8) + 10 90 OK
124 (124 *8) + 10 1,002 Last two fields not received by Joomla!
EasyTable Pro! (1.0.x) 10 (10 x 11) + 12 122 OK
90 (90 x 11) + 12 1,002 Last two fields not received by Joomla!
EasyTable Pro! (1.1.x) 10 (10 x 11) + 10 120 OK
91 (99 x 11) + 10 1,011 Last 11 fields not received by Joomla!

 

I didn't have this problem on Joomla 1.5, why now?

Under Joomla! 1.5 the problem was unlikely to occur as most web servers hadn't migrated to PHP 5.3 at that time.

What else...

To answer the next logical question, we hope in future versions to add support for:

  1. ZIP'd files (you can fit a lot of text into a compressed 3 MB file).
  2. Importing a previously uploaded file from a directory with not conceivable size limit.
  3. Importing from another internet address (URL import)
  4. CRON impiorts from a directory/url

Why does the Alias of my fields have an 'a' at the begining?

The alias is used to create table columns in MySQL and it is used as the CSS class name for the column and table cell.

As a result the first character of the alias must be in the range of A to Z, upper or lower case , or [a-z,A-Z]. If EasyTable finds a column label that starts with a number or other non-alphabetic character it will prepend a lower case 'a' to the alias when creating it.

For example;

Column Label = '18 to 24'

Alias = 'a18-to-24'

How do I get back to the list view from a record?

When you are in the Detail view of a record you will see the table name at the top of the view. Clicking on the table name will take you back to the list view.

Search Engines

EasyTable Pro! doesn't do anything to stop search engine bots from browsing the tables.

 Search engine bots look for all links in a page and then follow those they're allowed to, i.e. they will follow any link that requires a user login, is in robots.txt or has a nofollow in the rel attribute.

The only things on your Joomla site that affect where a search bot will look are a robots.txt file in your website or SEF extensions. SEF extensions often add a robots.txt file and use techniques that manipulate the rel nofollow attribute on links — we have previously had people mention issues with certain popular SEF tools that were adding nofollow rels to lots of links (not just in EasyTable tables).

There can also be problems if your Google Webmaster Tools (GWT) has out of date sitemaps.

The other thing to remember is that Google updates do not happen instantaneously and old links may hang around, again you can check this by using a site specific search or looking at your the site in GWT.

If you do a site specific search on Google you can see what Google has indexed on your website, for example if I do a Google search for results on our demo site searching for Firefly (the name of a sample EasyTable) I get pages of records back specifically about that table. If I do a site specific Google search for "Serenity"  one of the records in the Firefly table, the first result is the detail view of the "Serenity" record.

If Google isn't indexing your tables then the first thing to check is any robots.txt files and to see if a SEF extension is adding nofollow rels to your links. The only nofollow rels that are valid are on links to external website (which is the correct behaviour).

 So, to recap, if you're not seeing the right results in Google from a site specific search:

  1. Check your robots.txt
  2. Check any SEF extensions aren't putting nofollow rels on your record detail links.
  3. Check Google Webmaster Tools account for
    1. old links
    2. out-of-date sitemaps

Successful install but Red X's appear?

Sympton

After the installation of EasyTable Pro two or more steps may have Red X's rather than Green ticks next to them — as shown in the screenshot below.

These Red X's appear even though the message "Installing component was successful." is displayed across the top of the page and "Post installation check... OK" appears at the bottom of the installation process.

Installed Successfully

Explanation

As explained in the "Installing/Upgrading to EasyTable Pro 1.1.0" article this is OK.

During the installation of EasyTable Pro, if the installer script detects that a previous version was installed it will switch to the more comprehesive updating path, which includes a stage that cleans up some legacy files. In the example above steps 12 and 13 are looking for files relating to an optional view that was used in EasyTable Pro 1.0 (this view is now integrated in 1.1 and is known as the Ranked View).

This is OK, as step 14 specifies "No legacy files found in file clean up" is OK and not a situation to worry about.

Adding a Print Button

Occassionally it might be useful to print a table, this FAQ shows how to create a Joomla style print icon for your users rather than them just selecting the Print menu.

EasyTable doesn't have a print button yet, maybe in a future version.

In the mean time you can simulate one quite easily. All the print button does in Joomla! is call the current page with "tmpl=component" appended to the URL.

Based on this I added a link to the standard Joomla print icon into the description field of the US Presidents table on the demo website. The html is pretty basic:

<span id="print-button">
  <a href="/easytable-pro-table-list/us-presidents.html?tmpl=component" target="_blank">
    <img src="/media/system/images/printButton . png" alt="Print this page" />
  </a>
</span>

Please note there is a space either side of the period in the printButton.png file name to prevent our CDN plugin from processing this example code.

To help with layout of the button, I also added this CSS, to the personal.css file of the template:

#et_table_page #print-button
  {
    float:right;
    margin:10px;
    padding:5px;
    border:solid thin silver;
  }

Obviously for your tables you would replace the demo URL (/easytable-pro-table-list/us-presidents.html) with the path to your table.

This works in similar way to the URL filtering already in the US Presidents table, so it will be visible anywhere the table is displayed with it's "Show description" set to Yes.

Incompatible Extensions

This FAQ maintains a list of extensions that are incompatible with EasyTable/EasyTable Pro. In all reported cases the extension is incompatible because it changes the way core Joomla! functions work.

 

Extension Version Issue Suggestion Solution
SH404SEF All  Component over-rides the Joomla! core routing functions causing any component (including EasyTable and EasyStaging) that uses JRoute() to have broken links unless specifically supported by the component. Add EasyTable to the exclusion list so that SH404SEF doesn't try to rewrite the links.
ProjectFork  1.0.x ProjectFork modules break Javascript sorting in the front-end.   Upgrade to the latest version for your version of Joomla!

You need to login to access the forums.

Member Login

You need to Login to access your Subscription details or the Forums.