ExData Module v2.8.0 - Tables, Lists and more…

Post custom hacks and enhancements for phpwcms here only. Maybe some of these things will be included in official release later.
breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Post by breitsch » Sat 13. Oct 2007, 01:22

What about the TF fields in the main yust before {EXD_ITEMS}, then a block of EF's in the entry template

Example:

Main Template

Code: Select all

<div id="exd_head">{EXD_HEAD}</div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="exd_navi">
 <tr>
  <td width="40%" align="left" class="exd_filter">{EXD_FILTER:1:no entries found:Text before DropDown:3:show all}</td>
  <td width="30%" align="right" class="exd_search">{EXD_SEARCH:Search:no entries found}</td>
  <td width="30%" align="right" class="exd_sort">{EXD_SORT:Sort by}</td>
</tr></table>
<table border="0" cellpadding="0" cellspacing="2" width="100%" class="exd_item">
  <tr>
   <td class="exd_field1">{TF1}</td>
   <td class="exd_field2">{TF2}</td>
   <td class="exd_field3">{TF3}</td>
   </tr>
{EXD_ITEMS}
</table>

Entry Template

Code: Select all

<tr>
    <!--start_cut1--><td class="exd_entry1">{EF1}</td><!--end_cut1-->
   <!--start_cut2--><td class="exd_entry2">{EF2}</td><!--end_cut2-->
   <!--start_cut3--><td class="exd_entry3">{EF3}</td><!--end_cut3-->
 </tr>
Note, that the <!--start_cut1--> is only rendered in the entry template.
So you should have fixed fields
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

User avatar
StudioZ
Posts: 802
Joined: Fri 28. May 2004, 19:57
Location: Québec, Canada
Contact:

Post by StudioZ » Sat 13. Oct 2007, 03:14

Thank you for your time and hint Breitsch :)
I am almost there now....

All data is being rendered horizontally and perfectly
except for the columns headers.
I have all the same demo data as you have at:
http://web.casa-loca.com/index.php?auto_filter

oh:shock: Now I can see that you have the same problem as me
or maybe you are in a testing process :roll:

Code: Select all

<div id="exd_head">{EXD_HEAD}</div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="exd_navi">
 <tr>
  <td width="40%" align="left" class="exd_filter">{EXD_FILTER:1:no entries found:Text before DropDown:3:show all}</td>
  <td width="30%" align="right" class="exd_search">{EXD_SEARCH:Search:no entries found}</td>
  <td width="30%" align="right" class="exd_sort">{EXD_SORT:Sort by}</td>
</tr></table>
<table border="0" cellpadding="0" cellspacing="2" width="100%" class="exd_item">
  <tr>
   <td class="exd_field1">{TF1}</td>
   <td class="exd_field2">{TF2}</td>
   <td class="exd_field3">{TF3}</td>
   <td class="exd_field4">{TF4}</td>   
   <td class="exd_field5">{TF5}</td>   
</tr>
{EXD_ITEMS}
</table>


Let me tell you Breitsch:
This is a really awesome module for PhpWCMS and...
I sure hope Oliver will... at some point soon, pack it
in the official distro 8)

Gratitude,

Yves
Image
PhpWCMS Evangelist, -- iRoutier.com Running phpWCMS 1.4.2, r354 -> Great Version!!!!

User avatar
StudioZ
Posts: 802
Joined: Fri 28. May 2004, 19:57
Location: Québec, Canada
Contact:

Post by StudioZ » Sat 13. Oct 2007, 03:24

Just noticed that this code in the CSS listing, has no fill or hover effect on the table cells:

Code: Select all

.exd_row_bg_0 {
background: #ffffff;
}
.exd_row_bg_1 {
background: #DDDDDD;
}
.exd_row_hover {
background: #c3df56;
}
Image
PhpWCMS Evangelist, -- iRoutier.com Running phpWCMS 1.4.2, r354 -> Great Version!!!!

User avatar
DeXXus
Posts: 2168
Joined: Fri 28. Nov 2003, 06:20
Location: USA - Florida

Post by DeXXus » Sat 13. Oct 2007, 04:35

StudioZ wrote:Just noticed that this code in the CSS listing, has no fill or hover effect on the table cells:
Just a guess, but maybe it's the case of the mouse events (onMouseOver, onMouseOut) in lines 1757, 1759, 1853, 1855?
IS

Code: Select all

       $listing_table .=  " class="exd_row exd_row_bg_1" onmouseover="this.className='exd_row exd_row_hover';" onmouseout="this.className='exd_row exd_row_bg_1';"";
       $listing_table .=  " class="exd_row exd_row_bg_0" onmouseover="this.className='exd_row exd_row_hover';" onmouseout="this.className='exd_row exd_row_bg_0';"";
            $listing_list .=  " class="exd_row exd_row_bg_1" onmouseover="this.className='exd_row exd_row_hover';" onmouseout="this.className='exd_row exd_row_bg_1';"";
            $listing_list .=  " class="exd_row exd_row_bg_0" onmouseover="this.className='exd_row exd_row_hover';" onmouseout="this.className='exd_row exd_row_bg_0';"";
TRY

Code: Select all

       $listing_table .=  " class="exd_row exd_row_bg_1" onMouseOver="this.className='exd_row exd_row_hover';" onMouseOut="this.className='exd_row exd_row_bg_1';"";
       $listing_table .=  " class="exd_row exd_row_bg_0" onMouseOver="this.className='exd_row exd_row_hover';" onMouseOut="this.className='exd_row exd_row_bg_0';"";
            $listing_list .=  " class="exd_row exd_row_bg_1" onMouseOver="this.className='exd_row exd_row_hover';" onMouseOut="this.className='exd_row exd_row_bg_1';"";
            $listing_list .=  " class="exd_row exd_row_bg_0" onMouseOver="this.className='exd_row exd_row_hover';" onMouseOut="this.className='exd_row exd_row_bg_0';"";

User avatar
StudioZ
Posts: 802
Joined: Fri 28. May 2004, 19:57
Location: Québec, Canada
Contact:

Post by StudioZ » Sat 13. Oct 2007, 04:57

Thank you DeXXus but... no success ... :roll:

Here's what I have in my private template:

Main Template Listing:

Code: Select all

<div id="exd_head">{EXD_HEAD}</div>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="exd_navi">
 <tr>
  <td width="40%" align="left" class="exd_filter">{EXD_FILTER:1:no entries found:Text before DropDown:3:show all}</td>
  <td width="30%" align="right" class="exd_search">{EXD_SEARCH:Search:no entries found}</td>
  <td width="30%" align="right" class="exd_sort">{EXD_SORT:Sort by}</td>
</tr></table>
<table border="0" cellpadding="0" cellspacing="2" width="100%" class="exd_item">
  <tr>
   <td class="exd_field1">{TF1}</td>
   <td class="exd_field2">{TF2}</td>
   <td class="exd_field3">{TF3}</td>
   <td class="exd_field4">{TF4}</td>   
   <td class="exd_field5">{TF5}</td>   
</tr>
{EXD_ITEMS}
</table>
Entry Template [entry-template]:

Code: Select all

<tr>
   <!--start_cut1--><td class="exd_entry1">{EF1}</td><!--end_cut1-->
   <!--start_cut2--><td class="exd_entry2">{EF2}</td><!--end_cut2-->
   <!--start_cut3--><td class="exd_entry3">{EF3}</td><!--end_cut3-->
   <!--start_cut4--><td class="exd_entry4">{EF4}</td><!--end_cut4-->
   <!--start_cut5--><td class="exd_entry5">{EF5}</td><!--end_cut5-->
</tr>
Private Template css-file [css-file]:

Code: Select all

/*Head - div id="exd_head" - Category Name - /div*/
#exd_head, .exd_head {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 9pt; /*pt | px | em | %*/
font-weight: bold; /*normal | bold | inherit*/
color: #333333; /*color-value | inherit*/
line-height: 150%; /*height in px,em | %*/
background: transparent; /*color-value | transparent*/
/*for seperate border values write: border-top|boder-right|border-bottom|border-left*/
border: 0px solid #000000; /*width form color-value*/
margin: 0px 0px 0px 0px; /*top | right | bottom | left*/
padding: 5px 0px 5px 0px; /*top | right | bottom | left*/
width: 100%; /*px | % | auto | inherit*/
}
/*Main Background for all - div id="exd_items" ... /div*/
#exd_items, .exd_items {
background: #FFFFFF;
padding: 1px;
width:100%;
}

/*Navigation-Container - div id="exd_navi" - all the elements in table - /div*/
#exd_navi, .exd_navi{
background: #FFFFFF;
}
/*Page Numbers - div id="exd_page" - table with paging - /div*/
#exd_page, .exd_page {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 5px;
background: #FFFFFF;
text-align: left; /*left | center | right - alignment in div-container*/
}
/*Page Statistics - div id="exd_stats" - text - /div*/
#exd_stats, .exd_stats {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 3px;
color:#000000;
background: #FFFFFF;
text-align: left; /*left | center | right - alignment in div-container*/
}
/*Sort-Function - div id="exd_sort" - text [Drop-Down class="exd_dd"] - /div*/
#exd_sort, .exd_sort {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 3px;
/*margin-right: 0px;*/
text-align: right; /*left | center | right - alignment in div-container*/
}
/*Filter-Function in Dropdown - div class="exd_filter" - text [Drop-Down class="exd_dd"] - /div*/
#exd_filter, .exd_filter {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 3px;
text-align: left;
}
/*Filter-Function Menu div id="exd_filtermenu" - ul-li-/li-/ul - /div*/
#exd_filtermenu, .exd_filtermenu {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 3px;
background: #FF4488;
text-align: left;
}
/*Filter-Function Menu - ul*/
#exd_filtermenu ul{
margin-left: 0px; /*put it to left side*/
}
/*Filter-Function Menu - li*/
#exd_filtermenu ul li{
display: inline; /*block(vertical) | inline(horizontal)*/
padding: 5px;
}
/*Search-Function - div id="exd_search" - [Textfield class="exd_txt"][Button class="exd_but"] - /div*/
#exd_search, .exd_search {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 3px 3px 3px 5px;
text-align: center;
}
/*Textfield*/
.exd_txt{
font-size: 7pt;
color:#c6c6c6;
background:#636363;
border:1px solid #000000;
}
/*Buttons*/
.exd_but{
font-size: 7pt;
/*color:#c6c6c6;
background:#636363;
border:1px solid #000000;*/
}
/*Dropdowns*/
.exd_dd{
font-size: 7pt;
color:#c6c6c6;
background:#636363;
border:1px solid #000000;
}

/*Entries - table width="100%" class"exd_item" ... /table*/
#exd_item, .exd_item {
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 7pt;
padding: 3px;
background: #FFFFFF;
border:1px solid #CDCDCD;
margin-bottom: 5px; /*divides the entries in list-layout*/
}
/*acces to the table*/
#exd_item, .exd_item {
border-spacing:2px;
}

/*Field-Title - extract number to change css for this number*/
.exd_field, .exd_field1, .exd_field2, .exd_field3, .exd_field4, .exd_field5, .exd_field6, .exd_field7, .exd_field8, .exd_field9, .exd_field10, .exd_field11, .exd_field12, .exd_field13, .exd_field14, .exd_field15, .exd_field16, .exd_field17, .exd_field18, .exd_field19, .exd_field20, .exd_field21, .exd_field22, .exd_field23, .exd_field24 {
font-weight: bold;
color:#c6c6c6;
background: #636363;
width: 100px; /*min. value for width*/
padding: 3px;
border: 1px solid #000000;
vertical-align: top;
}
/*Field-Titel-Link - if Sort by Field-Titels*/
.exd_field a {
color:#FF0000;
}
/*Example for extracted field (in preview nr)*/
.exd_field_nr {
background: #FFCC99;
color#000000;
padding: 3px; 
border: 1px solid #000000;
vertical-align: top;
}

/*Field Entry - extract number to change css for this number*/
.exd_entry, .exd_entry1, .exd_entry2, .exd_entry3, .exd_entry4, .exd_entry5, .exd_entry6, .exd_entry7, .exd_entry8, .exd_entry9, .exd_entry10, .exd_entry11, .exd_entry12, .exd_entry13, .exd_entry14, .exd_entry15, .exd_entry16, .exd_entry17, .exd_entry18, .exd_entry19, .exd_entry20, .exd_entry21, .exd_entry22, .exd_entry23, .exd_entry24 {
/*background: #C5C5C5; comment out if row colors active!*/
padding: 3px;  
border: 1px solid #CDCDCD;
vertical-align:top;
/*width: 100px;*/
}
/*Link in entries*/
.exd_entry a {
color:#FF0000;
}
/*Example for extracted field*/
.exd_entry_nr {
background: #FFFFFF;
padding: 3px;
border: 1px solid #DDDDDD;
/*width: 100px;*/
vertical-align:top;
}
/*Filed-Titel-Link - if Sort by Filed-Titels*/
.exd_entry a {
color:#000000;
}

.exd_row{}
.exd_row_bg_0 {
background: Yellow;
}

.exd_row_bg_1 {
background: #DDDDDD;
}

.exd_row_hover {
background: #c3df56;
}
Now... my replacement tag:

Code: Select all

{EXDPRIV:1:py_04.main.tmpl:py_04.entry.tmpl:py_04.css:0:3;;}
Just you get the complete stuff with which I am fiddling :wink:

Cheers,

Yves
Image
PhpWCMS Evangelist, -- iRoutier.com Running phpWCMS 1.4.2, r354 -> Great Version!!!!

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Post by breitsch » Sat 13. Oct 2007, 13:34

StudioZ wrote:I need to make the data show horizontally in columns
like here:
http://web.casa-loca.com/index.php?auto_filter
So, first of all, why not using the auto-template-RT?
The example is done with auto template

by the way, the row-highlight-effect will not work in private templates, only the auto-templates support this effect

for the missing rendering of titlefields in the main-(private)-templates i'll post a workaround till tomorrow. But only the rendering, it will not check the values for invisibility and so on. For this you should use the auto-template-rt
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

User avatar
StudioZ
Posts: 802
Joined: Fri 28. May 2004, 19:57
Location: Québec, Canada
Contact:

Post by StudioZ » Sat 13. Oct 2007, 16:15

No problems Breitsch 8)
From now on I will simply use the auto-template-RT?

ExData Module is already so powerful with Flash Charts,
Moo.FX, GoogleMap :D :D :D
You have changed the way I see datas :wink:
I am so happy I jumped in this ExData bandwagon :D
Imagine how easy it is now to create any kind of directories
:D :D :D :D :D

Congrats and respect 8)

Yves
Image
PhpWCMS Evangelist, -- iRoutier.com Running phpWCMS 1.4.2, r354 -> Great Version!!!!

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Post by breitsch » Sun 14. Oct 2007, 12:32

@StudioZ

To show the column headers placed in main-(private)-template
open: mod_exdata/inc_front/func.inc.php

find row 341: //end statistics

add after

Code: Select all

//render main-template titlefields
      $fieldname=$exd->fieldname; //set record
      for ($m = 1; $m <= 24; $m++) {
          $template = str_replace("{TF".$m."}", $fieldname['field'.$m.''], $template);
		    }
		  //end render main-template titlefields
This will render the RT {TF#} placed in the main-private-templates.
But you must have the correct numbers there, the script does not check for empty values, invisible fields an so on in this case.
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

User avatar
StudioZ
Posts: 802
Joined: Fri 28. May 2004, 19:57
Location: Québec, Canada
Contact:

Post by StudioZ » Sun 14. Oct 2007, 20:01

Thank you for that tweak Breitsch :)

Cheers,

Yves
Image
PhpWCMS Evangelist, -- iRoutier.com Running phpWCMS 1.4.2, r354 -> Great Version!!!!

intermedion
Posts: 22
Joined: Tue 27. Jun 2006, 00:50

Editing data

Post by intermedion » Sat 10. Nov 2007, 16:46

This is a great module! Is it possible to edit the table data in the front end :?:

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Re: Editing data

Post by breitsch » Sun 11. Nov 2007, 17:55

intermedion wrote:Is it possible to edit the table data in the front end
No, not possible. Security reasons.
Maybe it'll be integrated in future releases with fe-login. (add/edit/delete/upload) But no schedule at the moment
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

User avatar
360fusion
Posts: 120
Joined: Wed 30. Aug 2006, 01:15
Location: Yarm, UK
Contact:

Post by 360fusion » Wed 19. Dec 2007, 00:07

Hi,

I can't believe it has taken me so long to get into this module. It is pure genius! thank you Breitsch for taking time to develop this.

I do however have a few questions and one problem.

the problem is that when i create a a fieldname for 'Contact' and use the Field Content for 'link & email' it all works fine and i can add an email address and link in the form, but when i try and edit the form in 'ExData Entries Area' and Edit for all entries' it deletes all email data when i save. I then have to enter all the details again individually. Is this something i've done by not setting it up properly or does anyone else have this problem?

the questions are:
what are the plans for this module?
will there be a version made that doesn't need to hack core code?
will Olive include this in the next version?

Thanks
Ben

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Post by breitsch » Wed 19. Dec 2007, 12:58

360fusion wrote: Edit for all entries' it deletes all email data when i save.
Sounds like a bug, never testet that. I'll have a look at this.
360fusion wrote:the questions are:
what are the plans for this module?
will there be a version made that doesn't need to hack core code?
2 questions 1 answer: I plan to rewrite it and make it a real plug-in. So there won't be any RT's anymore, just normal contentparts. And, of course, no need to hack core code.
360fusion wrote:will Oliver include this in the next version?
No, I don't think so! It's a module and nothing else/more. When it'll be a real plug-in there is no need to include it in the cms.

Other plans, but NO shedule
- kick the 24 fields limitation
- when google maps plugin is finished ExData will be connected to that, so the section Google Maps in ExData will be kicked and the plugin Google Maps will be used for map creation.
- when shop plugin is finished ExData will be connected to that.
- when user management is released ExData could become a backend/frontend solution with access to the database fom frontend.
- connect ExData to the lightbox-extension of the core cms. No need to handle that seperately in ExData
- much more AJAX in backend to make the handling easy and clear
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

User avatar
360fusion
Posts: 120
Joined: Wed 30. Aug 2006, 01:15
Location: Yarm, UK
Contact:

Post by 360fusion » Wed 19. Dec 2007, 13:46

Hi Breitsch,

Thanks for your quick reply and detailed response. The future of this module looks pretty impressive and I'm looking forward to the next release.
- when Google maps plug in is finished ExData will be connected to that, so the section Google Maps in ExData will be kicked and the plug in Google Maps will be used for map creation.
Will the Google maps module be able to display information from ExData still? say if i created a real estate website with a property catalogue and wanted to display where the properties were and show the property teaser details in the Google map pop up.

Thanks again
Ben

breitsch
Posts: 473
Joined: Sun 6. Mar 2005, 23:12
Location: bern switzerland

Post by breitsch » Wed 19. Dec 2007, 14:28

yep!
XML interface is planned for the modules to communicate together

BUT! not today and not tomorrow! (well, time shedule depends on donation, I'm just a human!)
http://www.youtube.com/watch?v=jqxENMKaeCU
because it's important!
breitsch

Post Reply