Hi,
ich möchte hier ein kleines(großes) Beispiel präsentieren, dass ich für mich als Einstieg erstellt habe.
Es ist kein gutes Programm funktioniert auch nicht ganz sauber, aber es zeigt schon viel Dinge die mit ameos_formidable möglich sind.
Der Sinn des Programms ist es, FE-User als Spieler Mannschaften hinuzufügen, so dass eine Spieler-Historie gebildet werden kann. Also bei welchen Vereinen hat der Spieler bisher gespielt.
Der FE-User muss hierfür registriert sein, damit eine automatische Zuordnung möglich ist.
Im einzelnen:
-Einloggen als FE-User (geschieht extern)
-Mannschaften erstellen
-Liste der Spieler(FE-User) ausgeben
-Spieler einer Mannschaft zuordnen
-Historie des Spielers als Liste ausgeben
Damit das ganze auf euerm System funktioniert müsst ihr noch die beiden DB Tabellen anlegen.
Falls ihr das hier bei mir testet, dann registriert euch oder bentutzt den DUMMY FE-USER(Name:"dummy" Passwort:"123456")
Sefer
1.DB Tabellen anlegen:
CREATE TABLE tbl_team (
team_uid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
team_name VARCHAR(50) NOT NULL,
crdate INT(11) NOT NULL,
team_image VARCHAR(100) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE tbl_player_team (
player_team_uid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
team_uid INT NOT NULL,
player_uid INT NOT NULL,
crdate INT(11) NOT NULL,
position VARCHAR(50) NOT NULL)ENGINE=MyISAM DEFAULT CHARSET=utf8;
2.Die komplette XML DATEI:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<formidable version="0.7.1" xmlns:datahandler="http://www.ameos.com/formidable/071/datahandler" xmlns:renderer="http://www.ameos.com/formidable/071/renderer" xmlns:renderlet="http://www.ameos.com/formidable/071/renderlet" xmlns:validator="http://www.ameos.com/formidable/071/validator" xmlns:actionlet="http://www.ameos.com/formidable/071/actionlet">
<meta>
<name>Blank Formidable XML</name>
<form formid="my_formid"/>
<displaylabels>true</displaylabels>
<debug>false</debug>
</meta>
<control>
<datahandler:STANDARD/>
<datasources>
<datasource:DB name="ds_team">
<sql><![CDATA[
SELECT * FROM tbl_team
]]></sql>
</datasource:DB>
<datasource:DB name="ds_player">
<sql><![CDATA[
SELECT * FROM fe_users
]]></sql>
</datasource:DB>
<datasource:DB name="ds_player_team">
<sql><![CDATA[
SELECT * FROM tbl_player_team
]]></sql>
</datasource:DB>
<datasource:DB name="ds-history">
<sql><![CDATA[
SELECT
fe_users.uid AS uid,
fe_users.username AS username,
tbl_team.team_name AS team_name,
tbl_team.crdate AS crdate,
tbl_player_team.position AS position
FROM
fe_users, tbl_team, tbl_player_team
WHERE
fe_users.uid = tbl_player_team.player_uid
AND
tbl_team.team_uid = tbl_player_team.team_uid
]]></sql>
</datasource:DB>
</datasources>
<renderer:STANDARD>
<style><![CDATA[
#box_menu, #box_login_please, #box_team,
#box_player, #box_player_to_team,
#box_player_history { display: none;}
#box_menu {
background-color: #ff8c00;
color: white;
padding: 5px;
}
#step2_replacedata {
text-decoration: underline;
}
h3 {
margin: 0;
margin-left: -5px;
margin-right: -5px;
margin-top: 5px;
padding-left: 5px;
color: white;
background-color: #FF6D06;
border-top: 2px solid #CB5702;
border-bottom: 2px solid #CB5702;
padding-top: 10px;
padding-bottom: 10px;
}
]]></style>
</renderer:STANDARD>
<sandbox>
<userobj>
<php><![CDATA[/*<?*/
function display_array($array){
echo "<pre>";
echo "<br>This ia a sandbox-function. This have to be between the tags <br><control><sandbox><userobj><php>";
echo "<br>### Here your function ###";
echo "<br>### At this moment it displays the content of an array through the function print_r ###";
echo "<br></php></userobj></sandbox></control>";
print_r($array);
}
/*?>*/]]></php>
</userobj>
</sandbox>
</control>
<elements>
<renderlet:BUTTON name="btn_start" label="This Aplication only works if you are registered! PLEASE CLICK ME!">
<onclick runat="client">
<userobj>
<php><![CDATA[
$logged=$GLOBALS["TSFE"]->fe_user->user["uid"];
if ($logged){
return array(
$this->aORenderlets["box_menu"]->majixDisplayBlock(),
$this->aORenderlets["btn_start"]->majixDisplayNone(),
$this->aORenderlets["box_your_name_is"]->majixReplaceData(
"
<b>Your username is: <span style='color: purple;'>" .$GLOBALS["TSFE"]->fe_user->user["username"] . "</span> </b><br>
<b>Your user_id is: <span style='color: purple;'>" .$GLOBALS["TSFE"]->fe_user->user["uid"] . "</span> </b><br><br>
"
),
);
}else{
return $this->aORenderlets["box_login_please"]->majixDisplayBlock();
}
]]></php>
</userobj>
</onclick>
</renderlet:BUTTON>
<renderlet:BOX name="box_login_please">
<childs>
<renderlet:BOX name="box_link_to_login">
<html><![CDATA[
<br>You are not logged in!
<br>Here you can login:
<br>NAME: dummy
<br>Password: 123456
<a href="http://www.amafu.de/tvweb_3_3/index.php?id=89" target="_self" title="">LOGIN</a>
]]></html>
</renderlet:BOX>
</childs>
</renderlet:BOX>
<!--THIS IS THE CONTAINER BOX_MENU-->
<renderlet:BOX name="box_menu">
<childs>
<renderlet:BOX name="box_your_name_is">
<html><![CDATA[
<br>This text is replaced through the function majixReplaceData() in the btn_start
]]></html>
</renderlet:BOX>
<renderlet:LISTBOX name="function_selection">
<data>
<items>
<item caption="Create Team" value="create_team" />
<item caption="Show Player(FE User)" value="show_player" />
<item caption="Add me to Team" value="add_player_to_team" />
<item caption="Show Player History" value="show_player_history" />
</items>
</data>
</renderlet:LISTBOX>
<renderlet:BUTTON label="send">
<onclick runat="ajax" require="modalbox" params="function_selection">
<userobj>
<php><![CDATA[
$aParams = func_get_arg(1);
switch($aParams["function_selection"]) {
case "create_team": {
return array(
$this->aORenderlets["box_team"]->majixDisplayBlock(),
$this->aORenderlets["box_player"]->majixDisplayNone(),
$this->aORenderlets["box_player_to_team"]->majixDisplayNone(),
$this->aORenderlets["box_player_history"]->majixDisplayNone(),
);
break;
}
case "show_player": {
return array(
$this->aORenderlets["box_player"]->majixDisplayBlock(),
$this->aORenderlets["box_team"]->majixDisplayNone(),
$this->aORenderlets["box_player_to_team"]->majixDisplayNone(),
$this->aORenderlets["box_player_history"]->majixDisplayNone(),
);
break;
}
case "add_player_to_team": {
return array(
$this->aORenderlets["box_player_to_team"]->majixDisplayBlock(),
$this->aORenderlets["box_team"]->majixDisplayNone(),
$this->aORenderlets["box_player"]->majixDisplayNone(),
$this->aORenderlets["box_player_history"]->majixDisplayNone(),
);
break;
}
case "show_player_history": {
return array(
$this->aORenderlets["box_player_history"]->majixDisplayBlock(),
$this->aORenderlets["box_team"]->majixDisplayNone(),
$this->aORenderlets["box_player"]->majixDisplayNone(),
$this->aORenderlets["box_player_to_team"]->majixDisplayNone(),
);
break;
}
}
]]></php>
</userobj>
</onclick>
</renderlet:BUTTON>
</childs>
</renderlet:BOX>
<!--THIS IS THE CONTAINER BOX_TEAM-->
<renderlet:BOX name="box_team">
<childs>
<renderlet:LISTER name="lister_team">
<datasource use="ds_team" />
<pager>
<rows>
<perpage>5</perpage>
</rows>
<sort column="team_uid" direction="desc" />
</pager>
<columns>
<column name="team_uid" type="renderlet:TEXT" listHeader="Team UID" />
<column name="team_name" type="renderlet:TEXT" listHeader="Team NAME" />
<column name="team_image" type="renderlet:TEXT" listHeader="Team IMAGE" />
<column name="crdate" type="renderlet:DATE" listHeader="CRDATE">
<data>
<datetime format="%d/%B/%Y %H:%M:%S" />
</data>
</column>
</columns>
</renderlet:LISTER>
<renderlet:TEXT name="team_name" label="Team Name:" />
<renderlet:UPLOAD name="team_image" label="Team Photo">
<data>
<targetdir>uploads/</targetdir>
<includexml>EXT:ameos_formidable/res/shared/xml/imageprocess/shaded.xml</includexml>
</data>
</renderlet:UPLOAD>
<renderlet:BUTTON label="Create Team">
<onclick runat="ajax" params="team_name, team_image">
<userobj>
<php><![CDATA[
$aParams = func_get_arg(1);
$insertValuesArray = array(
'team_name' => $aParams["team_name"],
'team_image' => $aParams["team_image"],
'crdate' => time(),
);
$newDataQuery = $GLOBALS['TYPO3_DB']->exec_INSERTquery(
'tbl_team',
$insertValuesArray
);
return array(
$this->aORenderlets["box_team"]->majixDisplayNone(),
//$this->oSandBox->display_array($aParams),
);
]]></php>
</userobj>
</onclick>
</renderlet:BUTTON>
</childs>
</renderlet:BOX>
<!--THIS IS THE CONTAINER BOX_PLAYER-->
<renderlet:BOX name="box_player">
<childs>
<renderlet:LISTER name="lister_player">
<datasource use="ds_player" />
<pager>
<rows>
<perpage>5</perpage>
</rows>
<sort column="uid" direction="desc" />
</pager>
<columns>
<column name="uid" type="renderlet:TEXT" listHeader="Player UID" />
<column name="username" type="renderlet:TEXT" listHeader="Player NAME" />
<column name="image" type="renderlet:TEXT" listHeader="Player IMAGE" />
<column name="date_of_birth" type="renderlet:DATE" listHeader="Player BIRTHDAY" />
</columns>
</renderlet:LISTER>
</childs>
</renderlet:BOX>
<!--THIS IS THE CONTAINER BOX_PLAYER_TO_TEAM-->
<renderlet:BOX name="box_player_to_team">
<childs>
<renderlet:LISTER name="lister_player_to_team">
<datasource use="ds_player_team" />
<pager>
<rows>
<perpage>5</perpage>
</rows>
<sort column="player_team_uid" direction="desc" />
</pager>
<columns>
<column type="renderlet:TEXT" name="player_team_uid" listHeader="Payer-Team UID" />
<column type="renderlet:TEXT" name="team_uid" listHeader="Team UID" />
<column type="renderlet:TEXT" name="player_uid" listHeader="Player UID" />
<column type="renderlet:TEXT" name="position" listHeader="POSITION" />
<column type="renderlet:DATE" name="crdate" listHeader="CRDATE" >
<data>
<datetime format="%d/%B/%Y %H:%M:%S" />
</data>
</column>
</columns>
</renderlet:LISTER>
<renderlet:LISTBOX name="listbox_team" label="LISTBOX TEAM:">
<data>
<userobj>
<php><![CDATA[
return $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"team_uid as value, team_name as caption",
"tbl_team",
"",
"",
"caption ASC"
);
]]></php>
</userobj>
</data>
</renderlet:LISTBOX>
<renderlet:LISTBOX name="listbox_position" label="LISTBOX POSITION">
<data>
<items>
<item caption="Goalkeeper" value="goalkeeper" />
<item caption="Defender" value="defender" />
<item caption="Midfield" value="midfield" />
<item caption="Forward" value="forward" />
</items>
</data>
</renderlet:LISTBOX>
<renderlet:BUTTON label="Create PLAYER TO TEAM">
<onclick runat="ajax" params="listbox_team, listbox_position ">
<userobj>
<php><![CDATA[
$aParams = func_get_arg(1);
$insertValuesArray = array(
'team_uid' => $aParams["listbox_team"],
'position' => $aParams["listbox_position"],
'player_uid' => $GLOBALS["TSFE"]->fe_user->user["uid"],
'crdate' => time(),
);
$newDataQuery = $GLOBALS['TYPO3_DB']->exec_INSERTquery(
'tbl_player_team',
$insertValuesArray
);
return array(
$this->aORenderlets["box_player_to_team"]->majixDisplayNone(),
//$this->oSandBox->display_array($aParams),
);
]]></php>
</userobj>
</onclick>
</renderlet:BUTTON>
</childs>
</renderlet:BOX>
<!--THIS IS THE CONTAINER BOX_PLAYER_HISTORY-->
<renderlet:BOX name="box_player_history">
<childs>
<renderlet:BOX name="box_player_history_header" mode="h3" html="Here you can see your own history!" />
<renderlet:LISTER name="mylist3">
<datasource use="ds-history" />
<pager>
<rows>
<perpage>100</perpage>
</rows>
<sort column="player_team_uid" direction="desc" />
</pager>
<columns>
<column name="username" type="renderlet:TEXT" listHeader="Player Name:" />
<column name="team_name" type="renderlet:TEXT" listHeader="Team Name:" />
<column name="crdate" type="renderlet:DATE" listHeader="Season:">
<data>
<datetime format="%Y" />
</data>
</column>
<column name="position" type="renderlet:TEXT" listHeader="Position" />
</columns>
</renderlet:LISTER>
</childs>
</renderlet:BOX>
</elements>
</formidable>