Tuesday 20 April 2004 11:24:01 am - 18 replies
Hello to all,
Communicating with PHP (or any other serverside script) from Flash has gotten much easier with the introduction of the LoadVars object in Flash MX.
I wonder if is possible to fetch from a tree of nodes and save the information to a file so that a flash animation takes the values and performs whatever...
This will open the possibility to expand EZ with a dynamic Flash application…
Any ideas…
Thanks joe!
Tuesday 20 April 2004 3:55:05 pm
As Björn mentioned, this is very possible. I've been pondering the same idea, though I haven't had a chance to experiment. But, if you are going down this road you might be able to try out the ideas I've been pondering. The easiest way to implement this would be to create a new object (I don't think the type of object matters, a folder would work well) and create an override template for it. I was thinking about XML, so I would actually override <i>pagelayout.tpl</i> which would provide total control over the output. Depending how you write the <i>pagelayout.tpl</i>, you may need to create some additional overrides, but that shouldn't be hard. Within your template(s) set up the fetch of the tree and save it in the proper format. Then, point your Flash app to pull the file from the server.
Anyway, that's the direction I've been thinking about. I'd love to hear other ways to do it.
Alex
Wednesday 21 April 2004 3:56:44 am
Hello Alex,
I am willing to give it a try for the use of all the forum out there but some of your Ideas are not very clear (for me) (I am really very new with ez but I am a quick learner)
Ok, ordering your ideas (If I may):
1. Create a new object (I don't think the type of object matters, a folder would work well)
2. Create an override template for it.
3. I was thinking about XML, so I would actually override <i>pagelayout.tpl</i> which would provide total control over the output.
>>Didn't get that, override the template and make a new one ? Is that what you mean?
4. Depending how you write the <i>pagelayout.tpl</i>, you may need to create some additional overrides, but that shouldn't be hard. Within your
template(s)
Not understood at all... sorry can you be more specific...
5. Set up the fetch of the tree and save it in the proper format.
Ok, how can I save information on the server ?, I have not been trough that kind of stuff before (sorry)
6. Then, point your Flash app to pull the file from the server.
Of course...
If you could be more specific I will appreciate it and put my hand to work!
Thanks again!
Wednesday 21 April 2004 1:18:44 pm
Have a look at this project:
It seems to be a php interface to flash mx ![]()
paul
Wednesday 21 April 2004 3:40:48 pm
Sorry about the confusion Joe! I'll try to provide more detail:
<i>3. I was thinking about XML, so I would actually override pagelayout.tpl which would provide total control over the output.
>>Didn't get that, override the template and make a new one ? Is that what you mean?</i>
Yes, that is what I mean. the file pagelayout.tpl is the core file for displaying a page on the site, it in turn calls all of the other template files. So, I would create a new pagelayout that uses XML instead of XHTML, I would then set up an entry in override.ini.php that would override just the node for the unique object created in step 1.
<i>4. Depending how you write the pagelayout.tpl, you may need to create some additional overrides, but that shouldn't be hard. Within your template(s)
Not understood at all... sorry can you be more specific...</i>
Yeah, I can see what I wrote was rather confusing. Sorry! Well, the way that eZ publish works, each type of output, whether it be from a specific class (folder, infopage etc.) or datatype (text field, link, image) can have its own template for display. If you will be setting up a pretty complex template, you may want to set up unique templates for each class that you will use. These templates are called with the <i>{attribute_view_gui...}</i> tags. These templates would use XML instead of XHTML to display the information. Alternatively, you could keep all of your code in your new XML pagelayout template, not calling any other templates.
<i>5. Set up the fetch of the tree and save it in the proper format.
Ok, how can I save information on the server ?, I have not been trough that kind of stuff before (sorry)</i>
Well, you shouldn't need to overtly save anything as eZ publish deals with that portion of the process. Once you can view the page in the browser, you should be able to pull it from within Flash right? This will ensure that your data is kept up to date without running any additional scripts or cron jobs.
I hope this helps. I have a feeling I could be a bit clearer, but I'll have to think about it some more to find a better way to say it. ![]()
Alex
Friday 30 April 2004 6:12:58 am
sorry for the delay, been out of city!
Hello Alex, and other members too...
A more clearer message, thanks
But...
There's a moment in the process that I kind of get lost, I have understood everything, on one hand I have the new_pagelayout.tpl that fetches all the info I need and for example, saves it on a variable called FLASHINFO and on the other hand I have on the same page a call to a FLASH animation that should get the information fetched and display some nice things....
Just don’t understand how to put my hands together.
FLAHSINFO (a variable in the proper ez template format)
FLASH animation that will have to acknowledge the information before displaying it)
How can I communicate between them? How can I give the information to the flash (I have done it before, but now it's in a ez template format, this is where I get lost)
Thank you
Joe
Friday 30 April 2004 8:38:05 am
I tested AmfPhp and was less than impressed. The flash applet used as an example did not use standard GUI elements from my OS. And it was heavily influenced in look and feel by all the bad VisualBasic applications floating around.
*Shudder*
Modified on Friday 30 April 2004 8:39:02 am by Paul K Egell-Johnsen
Friday 30 April 2004 3:33:19 pm
Joe, I'm not sure if I understand your question, so please forgive me if I provide an answer to a question you aren't asking.
The way I have been thinking about this setup is to not have the Flash animation served by eZ publish. Rather it would be separate, merely using the eZ publish site as its data source. So, I would structure my eZ templates to serve the information in a Flash friendly format - let's say XML from a site titled www.mysite.com/index.php. I would then set up the Flash file to pull the information served by www.mysite.com/index.php via Flash remoting. Please note, I haven't ever done this as I plan to use this as a learning experiment, so that is why I am unable to provide a lot of information. I don't have any experience with AMFPHP which is probably where I would start, though Paul's comments above may cause me to look at other alternatives as well.
Alex
Modified on Friday 30 April 2004 3:35:40 pm by Alex Jones
Friday 30 April 2004 4:24:41 pm
Oops, my mistake. I thought amfphp was just a api for connecting to flash from php.
paul
Modified on Friday 30 April 2004 4:25:03 pm by Paul Forsyth
Friday 30 April 2004 4:34:54 pm
Why not use a print layout rather then doing anything wiht the pagelayout and overrides
I always try to not use the override if possible.
sample urls
normal view
content/view/full/123
print view
layout/set/print/content/view/full/123
xml view
layout/set/xml/content/view/xml/123
![]()
Thursday 23 September 2004 7:04:50 pm
Hi all,
Flash MX 2004 pro use now XML connector which can connect textarea to an XML source via URL very simply.
So I think it can be godd way to perform what we are talking about.
What I don't know is how and what to extract (node, attribute...) and which URL can be use to grab the result.
Hope that contribute to go on the way.
Laurent
Friday 24 September 2004 12:22:10 pm
Hi Ekkehard,
Flash MX2004 pro provide a set of components like textArea, mediaDisplayers, label, datGrid...and much more (UI components).
You can bound this components to a db with a http process for example via an XMLConnector (Data Components).
To feed your Flash appi that way, you have to build your XML connector (send/recieve) importing an XML structure (simple clic on an arrow), and give it a URL where to find the data.
My idea/need, is to find which XML structure and variables can be send by an eZp db to print attributes of a specific node (folder for example) in a flash template.
It can be very useful to print short infos in a small area instead of reloading a whole page for each clic in a simple flash object (it can be also a good way to have more fun with design because you can use the components as movie clips).
<b>BUT...</b> I don't know how ![]()
Laurent.
You can find more here : http://livedocs.macromedia.com/fl...wwhelp.htm?href=Part_Components.html
Sunday 26 September 2004 12:58:50 am
Ok let's start.
In database there is a lot of xml und pure textlines. Here some examples:
xmltextfield:
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns:image="http://ez.no/namespaces/ezpublish3/image/"
xmlns:xhtml="http://ez.no/namespaces/ezpublish3/xhtml/"
xmlns:custom="http://ez.no/namespaces/ezpublish3/custom/">
<section>
<header>Templates</header>
<paragraph>
<line>eZ publish uses templates as the fundamental unit of site design. A template is basically an extended HTML file that describes how some particular type of content should be visualized. The templates for this site are located within the following directories:</line>
<ul>
<li>"design/base/templates"</li>
<li>"design/base/override/templates"</li>
</ul>
</paragraph>
<paragraph>Please do not change/edit the contents of the default design directories, which are:</paragraph>
<paragraph>
<ul>
<li>"design/standard"</li>
<li>"design/admin"</li>
</ul>
</paragraph>
</section>
<section>
<header>Style sheets</header>
<paragraph>eZ publish makes use of CSS files (Cascading Style Sheets). These files contain information about colors, text styles, font sizes, spacing and so on; and thereby dictate the overall look/appearance of the site. The CSS files for this site are located within the "design/base/stylesheets" directory.</paragraph>
</section>
<section>
<header>Configuration</header>
<paragraph>All configuration settings are stored within .ini files. The default ini files are located inside the "settings" directory. These files must not be altered. The actual configuration files for this site are contained in override files that are located within the "settings/siteaccess/base" directory. The settings in these files override the default configuration settings. There is a GUI frontend for editing the various configuration settings. This frontend can be found in the administration interface: Setup -> Advanced -> Ini settings.</paragraph>
</section>
<section>
<header>Documentation and guidance</header>
<paragraph>The
<link id="1">eZ publish documentation</link> covers common topics related to the setup and daily use of the eZ publish content management system/framework. In addition, it also covers some advanced topics. People who are unfamiliar with eZ publish should at least read the
<link id="2">"eZ publish basics"</link> and the
<link id="3">"Day to day use"</link> chapters.</paragraph>
<paragraph>If you're unable to find an answer/solution to a specific question/problem within the documentation pages, you should make use of the official
<link id="4">eZ publish forum</link>. People who need professional help should purchase
<link id="5">support</link> or
<link id="6">consulting</link> services. It is also possible to sign up for different
<link id="7">training sessions</link>.</paragraph>
<paragraph>For more information about eZ publish and other products/services from eZ systems, please visit
<link id="8">ez.no</link>.</paragraph>
</section>
</section>
image:
<?xml version="1.0" encoding="UTF-8"?>
<ezimage serial_number="1"
is_valid="1"
filename="foggy_trees.jpg"
suffix="jpg"
basename="foggy_trees"
dirpath="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB"
url="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB/foggy_trees.jpg"
original_filename="packages/addons/gallery/simplefiles/6582ee1d.jpg"
mime_type="image/jpeg"
width="400"
height="300"
alternative_text="Foggy trees."
alias_key="1293033771"
timestamp="1087635481">
<original attribute_id=""
attribute_version=""
attribute_language="" />
<alias name="reference"
filename="foggy_trees_reference.jpg"
suffix="jpg"
dirpath="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB"
url="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB/foggy_trees_reference.jpg"
mime_type="image/jpeg"
width="400"
height="300"
alias_key="-1689502181"
timestamp="1088026612"
is_valid="1" />
<alias name="large"
filename="foggy_trees_large.jpg"
suffix="jpg"
dirpath="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB"
url="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB/foggy_trees_large.jpg"
mime_type="image/jpeg"
width="300"
height="225"
alias_key="-1095359119"
timestamp="1088026612"
is_valid="1" />
<alias name="gallerythumbnail"
filename="foggy_trees_gallerythumbnail.jpg"
suffix="jpg"
dirpath="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB"
url="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB/foggy_trees_gallerythumbnail.jpg"
mime_type="image/jpeg"
width="70"
height="53"
alias_key="-981219025"
timestamp="1091467338"
is_valid="1" />
<alias name="imagelarge"
filename="foggy_trees_imagelarge.jpg"
suffix="jpg"
dirpath="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB"
url="var/news/storage/images/galleries/landscape/foggy_trees/256-1-eng-GB/foggy_trees_imagelarge.jpg"
mime_type="image/jpeg"
width="360"
height="270"
alias_key="-1729515638"
timestamp="1091467343"
is_valid="1" />
</ezimage>
author:
<?xml version="1.0" encoding="UTF-8"?>
<ezauthor>
<authors>
<author id="0"
name="Administrator User"
email="nospam@ez.no" />
</authors>
</ezauthor>
ezmatrix:
<?xml version="1.0" encoding="UTF-8"?>
<ezmatrix>
<name></name>
<columns number="2">
<column num="0"
id="contact_type">Contact type</column>
<column num="1"
id="contact_value">Contact value</column>
</columns>
<rows number="1" />
<c>Phone</c>
<c>555 12356</c>
</ezmatrix>
or:
<?xml version="1.0" encoding="UTF-8"?>
<ezmatrix>
<name></name>
<columns number="2">
<column num="0"
id="contact_type">Contact type</column>
<column num="1"
id="contact_value">Contact value</column>
</columns>
<rows number="2" />
<c>Phone</c>
<c>555 1231236</c>
<c>Fax</c>
<c>555 2342347</c>
</ezmatrix>
ezoption:
<?xml version="1.0" encoding="UTF-8"?>
<ezoption>
<name>What do you think about Pi?</name>
<options>
<option id="0"
additional_price="">I'ts way to low</option>
<option id="1"
additional_price="">To high</option>
<option id="2"
additional_price="">Pi?</option>
<option id="3"
additional_price="">42</option>
</options>
</ezoption>
How to get them?
We take a look at /design/news/override/templates/full/article.tpl
Class article:
<i>
1. Title (textline) (id:1)
Identifizierer
title
2. Short title (Textline) (id:152)
Identifizierer
short_title
3. Author (Author) (id:153)
Identifizierer
author
4. Intro (XML Textfield) (id:120)
intro
5. Body (XML Textfield) (id:121)
Identifizierer
body
6. Enable comments (Checkbox) (id:123)
enable_comments
7. Image (Objekt Relation) (id:154)
Identifizierer
image
</i>
Let's have a xml view on it:
textline is one line. We can just add a xmltag. HTML comments are for the source look later.
<!-- title start -->
<myarticletitle>{$node.object.data_map.title.content|wash()}</myarticletitle>
<!-- title end-->
The author:
<!-- author start -->
<myarticleauthor>{$node.object.data_map.author.content.author_list.0.name|wash()}</myarticleauthor>
<myarticleauthoremail>{$node.object.data_map.author.content.author_list.0.email|wash()}</myarticleauthoremail>
<!-- author end-->
Here we need more informations:
Header, strong, list, ...
The intro in xml:
<!-- xml intro text start-->
{$node.object.data_map.intro.data_text}
<!-- xml intro text end-->
for body
<!-- xml body text start-->
{$node.object.data_map.body.data_text}
<!-- xml body text end-->
<b>The whole template and have al look at the source for full xml feeling
</b>
{* Article - Full view for flash step 1.0*}
<div class="content-view-full">
<div class="class-article">
<h1>{$node.object.data_map.title.content|wash()}</h1>
<!-- title start -->
<myarticletitle>{$node.object.data_map.title.content|wash()}</myarticletitle>
<!-- title end-->
{section show=$node.object.data_map.author.content.is_empty|not()}
<div class="attribute-byline">
<p class="author">
{attribute_view_gui attribute=$node.object.data_map.author}
{*$node.object.data_map.author.content|attribute(show,4)*}
<!-- author start -->
<myarticleauthor>{$node.object.data_map.author.content.author_list.0.name|wash()}</myarticleauthor>
<myarticleauthoremail>{$node.object.data_map.author.content.author_list.0.email|wash()}</myarticleauthoremail>
<!-- author end-->
</p>
<p class="date">
{$node.object.published|l10n(date)}
</p>
</div>
{/section}
{section show=$node.object.data_map.image.content}
<div class="attribute-image">
{attribute_view_gui attribute=$node.object.data_map.image align=right}
{*$node.object.data_map.image|attribute(show,2)*}
</div>
{/section}
{section show=$node.object.data_map.intro.content.is_empty|not}
<div class="attribute-short">
{attribute_view_gui attribute=$node.object.data_map.intro}
{*$node.object.data_map.intro|attribute(show,1)*}
<!-- xml intro text start-->
{$node.object.data_map.intro.data_text}
<!-- xml intro text end-->
</div>
{/section}
{section show=$node.object.data_map.body.content.is_empty|not}
<div class="attribute-long">
{attribute_view_gui attribute=$node.object.data_map.body}
{*$node.object.data_map.body|attribute(show,1)*}
<!-- xml body text start-->
{$node.object.data_map.body.data_text}
<!-- xml body text end-->
</div>
{/section}
<div class="attribute-pdf">
<p>
<a href={concat("layout/set/print/content/view/full/",$node.node_id)|ezroot}>{'application/document'|mimetype_icon( small, "Printable version"|i18n( "design/standard/layout" ) )} {"Printable version"|i18n( "design/standard/layout" )}</a> |
<a href={concat('/content/pdf/',$node.node_id)|ezroot}>{'application/pdf'|mimetype_icon( small, "Download PDF"|i18n( "design/base" ) )} {"Download PDF"|i18n( "design/base" )}</a>
</p>
</div>
{* Should we allow comments? *}
{section show=is_unset( $versionview_mode )}
{section show=$node.object.data_map.enable_comments.content}
<h2>{"Comments"|i18n("design/base")}</h2>
<div class="content-view-children">
{section name=Child loop=fetch_alias( comments, hash( parent_node_id, $node.node_id ) )}
{node_view_gui view='line' content_node=$:item}
{/section}
</div>
{* Are we allowed to create new object under this node? *}
{section show=fetch( content, access,
hash( access, 'can_create',
contentobject, $node,
contentclass_id, 'comment' ) )}
<form method="post" action={"content/action"|ezroot}>
<input type="hidden" name="ClassIdentifier" value="comment" />
<input type="hidden" name="NodeID" value="{$node.node_id}" />
<input class="button new_comment" type="submit" name="NewButton" value="{'New Comment'|i18n( 'design/base' )}" />
</form>
{section-else}
<h3>{"You are not allowed to create comments."|i18n("design/base")}</h3>
{/section}
{/section}
{/section}
</div>
</div>
Greetings, ekke
Modified on Sunday 26 September 2004 12:56:46 pm by Ekkehard Dörre
Thursday 14 August 2008 5:45:18 pm
Hi guys
I've started using amfphp and have create a sample FLEX application, which is working well to query the database and pull out data relevant to specific contect ids.
What I'd really like, as the ezPublish database is a nightmare to try and query to actually get the exact content for the page, is to somehow connect to ezPub to draw out the data or use the same functions (module_result, fetch etc) to get the data that way.
Is this possible? Has anyone got any further with this?
Many thanks,
Matt
Wednesday 26 November 2008 6:24:07 pm
Hello,
Have you tried using the eZ Publish Kernel API to more simply fetch information from the database and return it through a web service?
<i>
http://pubsvn.ez.no/doxygen/4.0/html/
http://amfphp.org/
http://projects.ez.no/remoting
http://ezpedia.org/wiki/ez/remoting
http://svn.projects.ez.no/remoting/trunk/extension/remoting/</i>
The above remoting extension essentially provides for a simple way to provide amfphp functionality (web services) using eZ Publish library / kernel api code and connection to the database all through eZ publish itself.
The api to fetch information out of the database in 'eZ' php is really simple to use.
<i>http://svn.projects.ez.no/remotin...ion/remoting/examples/HelloWorld.php
http://svn.projects.ez.no/bcsoaps...p/bcsoapsearch.methods.php</i>
There are also a number of ways to fetch information from eZ already available. You mentioned amfphp and I thought I might point these resources out to you.
Also look into the following alternatives
<i>
http://projects.ez.no/bcsoapsearch
http://projects.ez.no/nusoap
http://svn.projects.ez.no/ezcore/trunk/ezcore/doc/ajax.txt
http://projects.ez.no/ezcore</i>
Cheers,
Heath
Modified on Wednesday 26 November 2008 6:51:23 pm by Heath
You must be logged in to post messages in this topic!