Quiz Component For Joomla

37
Page 1 Download http://24secunde.com/joomla/media/com_componentamea.zip Quiz component for Joomla 1.The component files: File adauga_test.php: <?php defined("_JEXEC") or exit("Restricted access"); ?> <?php $user =& JFactory::getUser(); if($user->usertype!="Super Administrator") $mainframe- >redirect('index.php'); ?> <?php $previz=JRequest::getVar('previz',null); if($previz=="Previzualizare") { $titlu_test=JRequest::getVar('titlu_test',''); $editor_test=JRequest::getString('editor_test', '', 'POST', JREQUEST_ALLOWRAW); $descriere_test=JRequest::getString('descriere_test', '', 'POST', JREQUEST_ALLOWRAW);

Transcript of Quiz Component For Joomla

Page 1: Quiz Component For Joomla

Page 1

Download

http://24secunde.com/joomla/media/com_componentamea.zip

Quiz component for Joomla

1.The component files:

File adauga_test.php:

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

$user =& JFactory::getUser();

if($user->usertype!="Super Administrator") $mainframe-

>redirect('index.php');

?>

<?php

$previz=JRequest::getVar('previz',null);

if($previz=="Previzualizare")

{

$titlu_test=JRequest::getVar('titlu_test','');

$editor_test=JRequest::getString('editor_test', '', 'POST',

JREQUEST_ALLOWRAW);

$descriere_test=JRequest::getString('descriere_test', '', 'POST',

JREQUEST_ALLOWRAW);

Page 2: Quiz Component For Joomla

Page 2

Download

http://24secunde.com/joomla/media/com_componentamea.zip

print("<h1>".$titlu_test."</h1>"); print("<br/>");

print("".$descriere_test.""); print("<br/>"); print("<br/>");

$intrebari_teste=explode("<intrebare/>", $editor_test);

foreach($intrebari_teste as $intrebare)

{

$intrebare=trim($intrebare);

$intrebare1=explode("\n", $intrebare);

$i=1;

foreach($intrebare1 as $raspuns)

{

if($i==1)

{

print("<h3>".$raspuns."</h3>");

$i++; continue;

}

print('<input name=""

type="radio" value="">');

print($raspuns);

print("<br/>");

}

print("<br/>");

}

print("<br/>");

}

if($previz=="Inregistreaza")

{

$titlu_test=JRequest::getVar('titlu_test','');

$editor_test=JRequest::getString('editor_test', '', 'POST',

JREQUEST_ALLOWRAW);

$descriere_test=JRequest::getString('descriere_test', '', 'POST',

JREQUEST_ALLOWRAW);

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_intreb = JTable::getInstance('cunoastere_intrebari', 'Table');

$table_rasp = JTable::getInstance('cunoastere_raspunsuri', 'Table');

$table_test->reset();

$uniqid=uniqid("");

$table_test->set('nume_test', $uniqid);

if (!$table_test->store()) print('<h1>Eroare - functia

$table_test->store().</h1>');

$db = &JFactory::getDBO();

$query = 'SELECT id FROM #__cunoastere_test WHERE

nume_test="'.$uniqid.'"'.'ORDER BY id DESC LIMIT 1' ;

$db->setQuery($query);

$id_test=$db->loadResult();

$table_test->load($id_test);

Page 3: Quiz Component For Joomla

Page 3

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$table_test->set('nume_test', $titlu_test);

$table_test->set('descriere_test', addslashes($descriere_test));

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test->store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_test->check().</h1>');

}

$intrebari_teste=explode("<intrebare/>", $editor_test);

$j=1;

foreach($intrebari_teste as $intrebare)

{

$intrebare=trim($intrebare);

$intrebare1=explode("\n", $intrebare);

$i=1;

foreach($intrebare1 as $raspuns)

{

if($i==1)

{

if(trim($raspuns)=="")

continue;

$table_intreb->reset();

$table_intreb-

>set('nume_intrebare', $uniqid);

if (!$table_intreb-

>store()) print('<h1>Eroare - functia $table_intreb-

>store().</h1>');

$db = &JFactory::getDBO();

$query = 'SELECT id FROM

#__cunoastere_intrebari WHERE nume_intrebare="'.$uniqid.'"'.'ORDER BY

id DESC LIMIT 1' ;

$db->setQuery($query);

$id_intrebare=$db-

>loadResult();

$table_intreb-

>load($id_intrebare);

$table_intreb-

>set('id_test', $id_test);

$table_intreb-

>set('nume_intrebare', addslashes( $raspuns));

if ($table_intreb->check())

{

Page 4: Quiz Component For Joomla

Page 4

Download

http://24secunde.com/joomla/media/com_componentamea.zip

if (!$table_intreb-

>store())

{

print('<h1>Eroare - functia $table_intreb->store().</h1>'); }

}

else

{

print('<h1>Eroare -

functia $table_intreb->check().</h1>');

}

$table_intreb->load(0);

$i++; continue;

}

if(trim($raspuns)=="") continue;

$table_rasp->reset();

$table_rasp->set('nume_raspuns',

$uniqid);

if (!$table_rasp->store())

print('<h1>Eroare - functia $table_rasp->store().</h1>');

$db = &JFactory::getDBO();

$query = 'SELECT id FROM

#__cunoastere_raspunsuri WHERE nume_raspuns="'.$uniqid.'"'.'ORDER BY

id DESC LIMIT 1' ;

$db->setQuery($query);

$id_raspuns=$db->loadResult();

$table_rasp->load($id_raspuns);

$table_rasp->set('id_intrebari',

$id_intrebare);

$table_rasp->set('nume_raspuns',

addslashes($raspuns));

if ($table_rasp->check())

{

if (!$table_rasp->store())

{ print('<h1>Eroare -

functia $table_rasp->store().</h1>'); }

}

else

{

print('<h1>Eroare - functia

$table_rasp->check().</h1>');

}

$table_rasp->load(0);

}

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=adauga');

}

if($previz=="Reinitializeaza")

{

$mainframe-

>redirect('index.php?option=com_componentamea&task=adauga');

}

Page 5: Quiz Component For Joomla

Page 5

Download

http://24secunde.com/joomla/media/com_componentamea.zip

?>

<script type="text/javascript">

function introduceti_entitate(tip)

{

if(tip=="intrebare")

document.getElementById("editor_test").value=document.getElementById(

"editor_test").value+"<intrebare/>";

if(tip=="raspuns")

document.getElementById("editor_test").value=document.getElementById(

"editor_test").value+"<raspuns/>";

if(tip=="break")

document.getElementById("editor_test").value=document.getElementById(

"editor_test").value+"<break/>";

}

</script>

<form method="post" action="">

<strong>Introduceti un titlu pentru testul dumneavoastra:

</strong>

<input name="titlu_test" type="text" id="titlu_test"

style="width:98%" value="<?php print($titlu_test); ?>"

maxlength="255">

<strong>Introduceti o descriere pentru testul dumneavoastra:

</strong>

<textarea id="descriere_test" name="descriere_test" rows="3" cols="1"

style="width:98%"><?php print($descriere_test); ?></textarea>

<strong>Introduceti intrebarile care compun testul dumneavoastra:

</strong>

<div style="border-width:1px; border-style:solid; background-

color:#CCCCCC; padding-top:2px; padding-left:2px; padding-bottom:2px;

margin-bottom:2px">

<a href="javascript: void(0);"

onClick='introduceti_entitate("intrebare")'>Intrebare</a>

<a href="javascript: void(0);"

onClick='introduceti_entitate("raspuns")'>Raspuns</a>

<a href="javascript: void(0);"

onClick='introduceti_entitate("break")'>Break</a>

</div>

<textarea id="editor_test" name="editor_test" rows="20" cols="1"

style="width:98%"><?php print($editor_test); ?></textarea>

<input name="previz" type="submit" value="Previzualizare">

<input name="previz" type="submit" value="Inregistreaza">

<input name="previz" type="submit" value="Reinitializeaza">

</form>

<textarea rows="3" cols="1" style="width:98%"><intrebare/>

Care este capitala Timisului?

Buzias

Timisoara

Lugoj

<intrebare/>

Care este capitala Romaniei?

Bucuresti

Budapesta

Sofia

<intrebare/>

Care este capitala Turciei?

Page 6: Quiz Component For Joomla

Page 6

Download

http://24secunde.com/joomla/media/com_componentamea.zip

Ankara

Istanbul

Atena

</textarea>

File admin.componentamea.php:

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$task=JRequest::getVar('task',null)."";

if(!isset($task) || trim($task)=="")

JRequest::setVar('task','admin_test');

$task=JRequest::getVar('task',null)."";

if($task=="admin_test") include_once("admin.principal.php");

if($task=="publish") include_once("admin.publish.php");

if($task=="unpublish") include_once("admin.unpublish.php");

if($task=="edit") include_once("admin.edit.php");

if($task=="apply") include_once("admin.edit.php");

if($task=="cancel") include_once("admin.edit.php");

if($task=="rezult_test") include_once("admin.rezultate.php");

if($task=="remove") include_once("admin.remove.php");

?>

File admin.edit.php:

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$cid = JRequest::getVar( 'cid', array(0));

$id=$cid[0];

// obtinem o refeinta la clasa JUser

$user =& JFactory::getUser();

// obtinem o referinta la baza de date

$db =& JFactory::getDBO();

if($task== "apply")

{

$titlu_test=JRequest::getVar('titlu_test','');

$descriere_test=JRequest::getString('descriere_test', '',

'POST', JREQUEST_ALLOWRAW);

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables

');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

Page 7: Quiz Component For Joomla

Page 7

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$table_test->load($id);

$table_test->set('nume_test', $titlu_test);

$table_test->set('descriere_test',

addslashes($descriere_test));

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test-

>store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_test->check().</h1>');

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=edit&mesaj=salvat&

cid[]='.$id.'');

}

if($task== "cancel")

{

$mainframe-

>redirect('index.php?option=com_componentamea&task=admin_test');

}

$mesaj = JRequest::getVar( 'mesaj', '');

if($mesaj=="salvat")

{

JError::raiseNotice('','Modificarile au fost efectuate.');

}

$query="SELECT `id` , `nume_test` , `descriere_test`, `published`

FROM `jos_cunoastere_test` WHERE id=".$id."";

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

foreach($rows as $row)

{

print('<div style="width:50%">');

print('<form action="" method="post" name="adminForm">');

print('<strong>Introduceti un titlu pentru testul

dumneavoastra:</strong>');

print('<input name="titlu_test" type="text" id="titlu_test"

style="width:98%" value="'.$row->nume_test.'" maxlength="255">');

print('<strong>Introduceti o descriere pentru testul

dumneavoastra:</strong>');

print('<textarea id="descriere_test" name="descriere_test" rows="3"

cols="1" style="width:98%">'.stripslashes($row-

>descriere_test).'</textarea>');

print('<input id="task_txt" type="hidden" name="task" value="" />');

Page 8: Quiz Component For Joomla

Page 8

Download

http://24secunde.com/joomla/media/com_componentamea.zip

print('</form>');

print('</div>');

}

JRequest::setVar('hidemainmenu', 1);

?>

File admin.principal.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$ordine=JRequest::getVar('ordine',null);

if(!isset($ordine))$ordine="DESC";

?>

<form action="" method="post" name="adminForm">

<script type="text/javascript">

function stabileste_ordinea(param)

{

document.getElementById("ord_txt").value=param;

document.getElementById("ord_txt").form.submit();

}

</script>

<table class="adminlist">

<thead>

<tr>

<th width="20" class='title'>#</th>

<th width="20" class='title'>

<input type="checkbox" name="toggle" value=""

onclick="checkAll(nr_chk);" /></th>

<th class='title'>Numele testului</th>

<th class='title'>Descrierea testului</th>

<th width="30" class='title'>Publicare test</th>

<th width="30" class='title'>

<a href="javascript: void(0);" onClick="stabileste_ordinea('ASC')"

title="Ascendent">[I</a><a href="javascript: void(0);"

onClick="stabileste_ordinea('DESC')" title="Descendent">d]</a>

</th>

</tr>

</thead>

<?php

$db =& JFactory::getDBO();

$db->setQuery('SELECT count(*) FROM `jos_cunoastere_test`');

$total = $db->loadResult();

$limit = $mainframe-

>getUserStateFromRequest("limit",'limit',$mainframe-

>getCfg('list_limit'));

Page 9: Quiz Component For Joomla

Page 9

Download

http://24secunde.com/joomla/media/com_componentamea.zip

if($limit==0)$limit=500;

$limitstart = $mainframe-

>getUserStateFromRequest("$option.view.limitstart",'limitstart',0);

$query='SELECT * FROM `jos_cunoastere_test` ORDER BY id '.$ordine.'

LIMIT '.$limitstart.','.$limit.'';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

$int_j=0;

foreach ($rows as $row)

{

?>

<tr class="row<?php print($int_j%2);?>">

<td align="center"><?php print($int_j);?></td>

<td><input type="checkbox" id="cb<?php print($int_j);?>" name="cid[]"

value="<?php print($row->id);?>" onclick="isChecked(this.checked);"

/></td>

<td><?php print('<a

href="index.php?option=com_componentamea&task=edit&cid[]='.$row-

>id.'">'.$row->nume_test.'</a>');?></td>

<td><?php print(stripslashes($row->descriere_test));?></td>

<td>

<?php

if($row->published==1)

print('<a href="javascript:void(0);" onclick="return

listItemTask(\'cb'.$int_j.'\',\'unpublish\')" title="Unpublish Item">

<img src="images/tick.png" width="16" height="16" border="0"

alt="No" /></a>');

if($row->published==0)

print('<a href="javascript:void(0);" onclick="return

listItemTask(\'cb'.$int_j.'\',\'publish\')" title="Publish Item">

<img src="images/publish_x.png" width="16" height="16" border="0"

alt="No" /></a>');

?>

</td>

<td><?php print($row->id);?></td>

</tr>

<?php

$int_j++;

}

print('<script type="text/javascript">');

print('var nr_chk='.$int_j);

print('</script>');

?>

<tfoot>

<td colspan="10">

<?php

jimport('joomla.html.pagination');

if($limit==500)$limit=0;

$pageNav = new JPagination($total,$limitstart,$limit);

print($pageNav->getListFooter());

?>

</td>

</tfoot>

Page 10: Quiz Component For Joomla

Page 10

Download

http://24secunde.com/joomla/media/com_componentamea.zip

</table>

<input id="id_txt" type="hidden" name="id" value="" />

<input id="task_txt" type="hidden" name="task" value="" />

<input id="ord_txt" type="hidden" name="ordine" value="<?php

print($ordine); ?>" />

<input type="hidden" name="boxchecked" value="0" />

</form>

File admin.publish.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$cid = JRequest::getVar( 'cid', array(0));

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

foreach($cid as $value)

{

$id=$value;

?>

<?php

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_test->load($id);

$table_test->set('published',1);

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test->store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_test->check().</h1>');

}

?>

<?php

}

$mainframe->redirect('index.php?option=com_componentamea');

?>

File admin.remove.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$db =& JFactory::getDBO();

Page 11: Quiz Component For Joomla

Page 11

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$user=JRequest::getVar('user_del','');

$user=$user.'';

if(trim($user)=="")$user='[{<##>}]';

$test=JRequest::getVar('test_del',0);

$test=0+$test;

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_user = JTable::getInstance('cunoastere_user', 'Table');

$query='SELECT `id` FROM `jos_cunoastere_user` WHERE

id_test='.$test.' OR user LIKE "'.$user.'%"';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

foreach($rows as $row)

{

$table_user->delete($row->id);

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=rezult_test');

?>

File admin.rezultate.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<form action="" method="post" name="adminForm">

<h4>Sterge rezultatele utilizatorului: </h4>

<input type="text" name="user_del" id="user_del" class="text_area" />

(Ex: Ion, Rizache, John) % - sterge tot

<br/>

<h4>Sterge rezultatele care includ testul:</h4>

<input type="text" name="test_del" id="test_del" class="text_area" />

(Ex: 1, 100, 2000)

<br/><br/>

<button onclick="this.form.submit();">Go</button><br/>

<input id="id_txt" type="hidden" name="id" value="" />

<input id="task_txt" type="hidden" name="task" value="remove" />

<input type="hidden" name="boxchecked" value="1" />

</form>

File admin.unpublish.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$cid = JRequest::getVar( 'cid', array(0));

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

foreach($cid as $value)

Page 12: Quiz Component For Joomla

Page 12

Download

http://24secunde.com/joomla/media/com_componentamea.zip

{

$id=$value;

?>

<?php

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_test->load($id);

$table_test->set('published',0);

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test->store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_test->check().</h1>');

}

?>

<?php

}

$mainframe->redirect('index.php?option=com_componentamea');

?>

File componentamea.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

$task=JRequest::getVar('task',null);

if($task=="adauga") include_once("adauga_test.php");

if($task=="view_test") include_once("vezi_test.php");

if($task=="nu_publica") include_once("nu_publica.php");

if($task=="publica") include_once("publica.php");

if($task=="sterge_articol") include_once("sterge_articol.php");

if($task=="edit_articol") include_once("edit_articol.php");

if($task=="xml_feed") include_once("xml_feed.php");

if(!isset($task)) include_once("principal.php");

?>

File edit_articol.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

$user =& JFactory::getUser();

if($user->usertype!="Super Administrator") $mainframe-

>redirect('index.php');

?>

<?php

$db =& JFactory::getDBO();

$id=JRequest::getVar('id',0);

$id=$id+0;

$query='SELECT * FROM `jos_cunoastere_test` WHERE id='.$id.'';

Page 13: Quiz Component For Joomla

Page 13

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

$titlu_test =$rows[0]->nume_test;

$descriere_test =$rows[0]->descriere_test;

$editor_test="";

$query='SELECT * FROM `jos_cunoastere_intrebari` WHERE

`id_test` ='.$id.'';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

foreach($rows as $row)

{

$editor_test=$editor_test."<intrebare/>"."\n";

$editor_test=$editor_test.$row->nume_intrebare."\n";

$query_='SELECT * FROM `jos_cunoastere_raspunsuri`

WHERE `id_intrebari` ='.($row->id).'';

$result_ = $db->setQuery($query_);

$rows_ = $db->loadObjectList();

foreach($rows_ as $row_)

{

$editor_test=$editor_test.$row_->nume_raspuns."\n";

}

}

$previz=JRequest::getVar('previz',null);

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_intreb = JTable::getInstance('cunoastere_intrebari', 'Table');

$table_rasp = JTable::getInstance('cunoastere_raspunsuri', 'Table');

if($previz=="Inregistreaza")

{

$titlu_test=JRequest::getVar('titlu_test','');

$editor_test=JRequest::getString('editor_test', '', 'POST',

JREQUEST_ALLOWRAW);

$descriere_test=JRequest::getString('descriere_test', '', 'POST',

JREQUEST_ALLOWRAW);

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_intreb = JTable::getInstance('cunoastere_intrebari', 'Table');

$table_rasp = JTable::getInstance('cunoastere_raspunsuri', 'Table');

$table_test->reset();

$uniqid=uniqid("");

$table_test->set('nume_test', $uniqid);

if (!$table_test->store()) print('<h1>Eroare - functia

$table_test->store().</h1>');

$db = &JFactory::getDBO();

$query = 'SELECT id FROM #__cunoastere_test WHERE

nume_test="'.$uniqid.'"'.'ORDER BY id DESC LIMIT 1' ;

$db->setQuery($query);

$id_test=$db->loadResult();

Page 14: Quiz Component For Joomla

Page 14

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$table_test->load($id_test);

$table_test->set('nume_test', $titlu_test);

$table_test->set('descriere_test', addslashes($descriere_test));

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test->store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_test->check().</h1>');

}

$intrebari_teste=explode("<intrebare/>", $editor_test);

$j=1;

foreach($intrebari_teste as $intrebare)

{

$intrebare=trim($intrebare);

$intrebare1=explode("\n", $intrebare);

$i=1;

foreach($intrebare1 as $raspuns)

{

if($i==1)

{

if(trim($raspuns)=="")

continue;

$table_intreb->reset();

$table_intreb-

>set('nume_intrebare', $uniqid);

if (!$table_intreb-

>store()) print('<h1>Eroare - functia $table_intreb-

>store().</h1>');

$db = &JFactory::getDBO();

$query = 'SELECT id FROM

#__cunoastere_intrebari WHERE nume_intrebare="'.$uniqid.'"'.'ORDER BY

id DESC LIMIT 1' ;

$db->setQuery($query);

$id_intrebare=$db-

>loadResult();

$table_intreb-

>load($id_intrebare);

$table_intreb-

>set('id_test', $id_test);

$table_intreb-

>set('nume_intrebare', addslashes( $raspuns));

if ($table_intreb->check())

Page 15: Quiz Component For Joomla

Page 15

Download

http://24secunde.com/joomla/media/com_componentamea.zip

{

if (!$table_intreb-

>store())

{

print('<h1>Eroare - functia $table_intreb->store().</h1>'); }

}

else

{

print('<h1>Eroare -

functia $table_intreb->check().</h1>');

}

$table_intreb->load(0);

$i++; continue;

}

if(trim($raspuns)=="") continue;

$table_rasp->reset();

$table_rasp->set('nume_raspuns',

$uniqid);

if (!$table_rasp->store())

print('<h1>Eroare - functia $table_rasp->store().</h1>');

$db = &JFactory::getDBO();

$query = 'SELECT id FROM

#__cunoastere_raspunsuri WHERE nume_raspuns="'.$uniqid.'"'.'ORDER BY

id DESC LIMIT 1' ;

$db->setQuery($query);

$id_raspuns=$db->loadResult();

$table_rasp->load($id_raspuns);

$table_rasp->set('id_intrebari',

$id_intrebare);

$table_rasp->set('nume_raspuns',

addslashes($raspuns));

if ($table_rasp->check())

{

if (!$table_rasp->store())

{ print('<h1>Eroare -

functia $table_rasp->store().</h1>'); }

}

else

{

print('<h1>Eroare - functia

$table_rasp->check().</h1>');

}

$table_rasp->load(0);

}

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&id='.$id

_test.'');

}

include_once("adauga_test.php");

?>

Page 16: Quiz Component For Joomla

Page 16

Download

http://24secunde.com/joomla/media/com_componentamea.zip

File index.php

<?php

print("Componenta mea");

?>

File nu_publica.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

$user =& JFactory::getUser();

if($user->usertype!="Super Administrator") $mainframe-

>redirect('index.php');

?>

<?php

$id=JRequest::getVar('id',0);

$id=$id+0;

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_test->load($id);

$table_test->set('published',0);

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test->store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_test->check().</h1>');

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&id='.$id

.'');

?>

File principal.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

print('<div style="clear:both;"></div>');

$url_partaj=JURI::base()."index.php?option=com_componentamea%26task=x

ml_feed%26format=feed";

jimport('joomla.utilities.date');

$date1 = new JDate();

$date1=$date1->toFormat('%d-%m-%Y %H:%M:%S EET');

print('<div style="background-color:#e1e1e1; padding:3px 3px 3px 3px;

margin-bottom:5px; font-weight:bold">');

Page 17: Quiz Component For Joomla

Page 17

Download

http://24secunde.com/joomla/media/com_componentamea.zip

print('<div style="float:left;">Ora vizitei: '.$date1.'</div>');

print('<div style="float:right;background-color:#e1e1e1; padding:0px

0px 1px 0px;">');

print('<a

href="'.JURI::base().'index.php?option=com_componentamea&task=xml_fee

d&format=feed" title="RSS"><img

src="components/com_hello/imagini/rss.gif" alt="RSS"></a>');

print('<a href="http://add.my.yahoo.com/rss?url='.$url_partaj.'"

title="Yahoo"><img src="components/com_hello/imagini/yahoo.gif"

alt="Yahoo"></a>');

print('<a href="http://fusion.google.com/add?feedurl='.$url_partaj.'"

title="Google"><img src="components/com_hello/imagini/google.gif"

alt="Google"></a>');

print('<a

href="http://www.netvibes.com/subscribe.php?url='.$url_partaj.'"

title="Netvibes"><img src="components/com_hello/imagini/netvibes.gif"

alt="Netvibes"></a>');

print('</div>');

print('.</div>');

print('<div style="clear:both;"></div>');

$tip_user="Super Administrator";

// setam titlul ce apare in browser

$document =& JFactory::getDocument();

$document->setTitle("Teste de cunoastere");

// setam parametrii pentru bara de navigatie

$limit = 20;

$limitstart = JRequest::getVar('limitstart',0);

$limitstart = 0 + intval($limitstart);

$total = 0; //numarul total de articole

// obtinem o refeinta la clasa JUser

$user =& JFactory::getUser();

// obtinem o referinta la baza de date

$db =& JFactory::getDBO();

// avem interogari diferite pentru un user obisnuit si un

administrator

// administratorul poate sa aiba acces la toate inregistrarile, si la

cele marcate ca nepublicate

// interogarea urmatoare va intoarce numarul total de teste din baza

de date; informatia este necesara pentru bara de navigatie

if($user->usertype==$tip_user)

$query="SELECT count(*) FROM `jos_cunoastere_test` WHERE 1 ";

else

$query="SELECT count(*) FROM `jos_cunoastere_test` WHERE

`published`=1 ";

$result = $db->setQuery($query);

$total=$db->loadResult();

if($user->usertype=="Super Administrator")

$query="SELECT `id` , `nume_test` , `descriere_test` FROM

`jos_cunoastere_test` WHERE 1 ORDER BY `id` DESC LIMIT

".$limitstart." , ".$limit."";

else

Page 18: Quiz Component For Joomla

Page 18

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$query="SELECT `id` , `nume_test` , `descriere_test` FROM

`jos_cunoastere_test` WHERE `published`=1 ORDER BY `id` DESC LIMIT

".$limitstart." , ".$limit."";

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

foreach ($rows as $row)

{

print('<a

href="index.php?option=com_componentamea&task=view_test&id='.$row-

>id.'" style="text-decoration:none; cursor: pointer; " title="'.$row-

>nume_test.'"><h3>'.$row->nume_test.'</h3></a>');

print(stripslashes($row->descriere_test));

print("<br/>"); print("<br/>");

}

jimport('joomla.html.pagination');

$_pagination = new JPagination($total, $limitstart, $limit);

?>

<div style="clear:both"></div>

<div class="pagenav" style="text-align:center; margin-top:10px; ">

<?php print($_pagination->getPagesLinks()); ?>

<br/>

<?php print($_pagination->getPagesCounter()); ?>

</div>

File publica.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

$user =& JFactory::getUser();

if($user->usertype!="Super Administrator") $mainframe-

>redirect('index.php');

?>

<?php

$id=JRequest::getVar('id',0);

$id=$id+0;

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_test->load($id);

$table_test->set('published',1);

if ($table_test->check())

{

if (!$table_test->store())

{

print('<h1>Eroare - functia $table_test->store().</h1>');

}

}

else

{

Page 19: Quiz Component For Joomla

Page 19

Download

http://24secunde.com/joomla/media/com_componentamea.zip

print('<h1>Eroare - functia $table_test->check().</h1>');

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&id='.$id

.'');

?>

File sterge_articol.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

$user =& JFactory::getUser();

if($user->usertype!="Super Administrator") $mainframe-

>redirect('index.php');

?>

<?php

$db =& JFactory::getDBO();

$id=JRequest::getVar('id',0);

$id=$id+0;

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

$table_test = JTable::getInstance('cunoastere_test', 'Table');

$table_intreb = JTable::getInstance('cunoastere_intrebari', 'Table');

$table_rasp = JTable::getInstance('cunoastere_raspunsuri', 'Table');

$table_test->delete($id);

$query='SELECT `id` FROM `jos_cunoastere_intrebari` WHERE

`id_test` ='.$id.'';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

foreach($rows as $row)

{

$query_='SELECT id FROM `jos_cunoastere_raspunsuri`

WHERE `id_intrebari` ='.($row->id).'';

$result_ = $db->setQuery($query_);

$rows_ = $db->loadObjectList();

foreach($rows_ as $row_)

{

$table_rasp->delete($row_->id);

}

$table_intreb->delete($row->id);

}

$mainframe->redirect('index.php?option=com_componentamea');

?>

File toolbar.componentamea.php

<?php

// nu permite accesul direct la acest fisier

defined('_JEXEC') or die('<center>Restricted access.</center>');

?>

<?php

if($task=="admin_test")

{

JToolBarHelper::title('Administrare teste');

Page 20: Quiz Component For Joomla

Page 20

Download

http://24secunde.com/joomla/media/com_componentamea.zip

JToolBarHelper::editList();

JToolBarHelper::divider();

JToolBarHelper::publishList();

JToolBarHelper::unpublishList();

JToolBarHelper::divider();

JToolBarHelper::preferences('com_componentamea');

}

if($task=="edit" || $task=="apply" )

{

JToolBarHelper::title('Editare test');

JToolBarHelper::apply();

JToolBarHelper::cancel();

}

if($task=="rezult_test")

{

JToolBarHelper::title('Rezultate teste');

JToolBarHelper::deleteList();

}

?>

File vezi_test.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

$user =& JFactory::getUser();

$db =& JFactory::getDBO();

$id=JRequest::getVar('id',0);

$id=$id+0;

$previz=JRequest::getVar('previz',null);

if($previz=="Reinitializeaza")

{

$mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&id='.$id

.'');

}

if($previz=="Inregistreaza")

{

if(!isset($user->name)) $mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&alert_us

er=not&id='.$id.'');

$sir="".JRequest::getVar('sir','');

$sir_array=explode(":",$sir);

if(!isset($sir_array[2])) $mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&alert_us

er=script&id='.$id.'');

jimport('joomla.utilities.date');

$date_ = new JDate();

$date = $date_->toFormat('%d/%m/%Y');

JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR.DS.'tables');

Page 21: Quiz Component For Joomla

Page 21

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$table_user = JTable::getInstance('cunoastere_user', 'Table');

$table_user->reset();

$table_user->set('id_test', $sir_array[2]);

$table_user->set('user', $user->name." :: ".$date);

$table_user->set('punctaj', $sir_array[1]*1000+$sir_array[0]);

if ($table_user->check())

{

if (!$table_user->store())

{

print('<h1>Eroare - functia $table_user->store().</h1>');

}

}

else

{

print('<h1>Eroare - functia $table_user->check().</h1>');

}

$mainframe-

>redirect('index.php?option=com_componentamea&task=view_test&alert_us

er=BD&id='.$id.'');

}

$query="SELECT `id` , `nume_test` , `descriere_test`, `published`

FROM `jos_cunoastere_test` WHERE id=".$id."";

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

$url_partaj=JURI::base()."index.php?option=com_componentamea%26task=v

iew_test%26id=".$id;

foreach($rows as $row)

{

if($user->usertype!="Super Administrator")

{

print('<div style="float:right;">');

print('<a

href="http://www.facebook.com/sharer.php?u='.$url_partaj.'"

title="Partajeaza pe Facebook"><img

src="components/com_hello/imagini/facebook.gif"

alt="Facebook"></a>');

print('<a

href="http://digg.com/submit?phase=2&url='.$url_partaj.'"

title="Partajeaza pe Digg"><img

src="components/com_hello/imagini/diggit.gif" alt="Diggit"></a>');

print('<a

href="http://del.icio.us/post?url='.$url_partaj.'&title='.$row-

>title.'" title="Partajeaza pe Delicious"><img

src="components/com_hello/imagini/delicious.gif"

alt="Delicious"></a>');

print('<a

href="https://favorites.live.com/quickadd.aspx?marklet=1&top=1&url='.

$url_partaj.'" title="Partajeaza pe Live"><img

src="components/com_hello/imagini/live.gif" alt="Live"></a>');

Page 22: Quiz Component For Joomla

Page 22

Download

http://24secunde.com/joomla/media/com_componentamea.zip

print('<a

href="http://blogmarks.net/my/new.php?mini=1&simple=1&url='.$url_part

aj.'&title='.$row->nume_test.'" title="Partajeaza pe Blogmarks"><img

src="components/com_hello/imagini/blogmarks.gif"

alt="Blogmarks"></a>');

print('<a

href="http://www.technorati.com/faves?add='.$url_partaj.'"

title="Partajeaza pe Technorati"><img

src="components/com_hello/imagini/technorati.gif"

alt="Technorati"></a>');

print('<a

href="http://www.myspace.com/Modules/PostTo/Pages/?c='.$url_partaj.'"

title="Partajeaza pe Myspace"><img

src="components/com_hello/imagini/myspace.gif" alt="Myspace"></a>');

print('<a

href="http://twitthis.com/twit?url='.$url_partaj.'&title='.$row-

>nume_test.'" title="Partajeaza pe Twitter"><img

src="components/com_hello/imagini/twitter.gif" alt="Twitter"></a>');

print('</div>');

}

if($user->usertype=="Super Administrator")

{

print('<div style="float:right;">');

if($row->published==1)

print('<a

href="index.php?option=com_componentamea&task=nu_publica&id='.$row-

>id.'" title="Nu publica acest articol"><img

src="components/com_componentamea/imagini/yes.png"

alt="yes.png"></a>');

if($row->published==0)

print('<a

href="index.php?option=com_componentamea&task=publica&id='.$row-

>id.'" title="Publica articol"><img

src="components/com_componentamea/imagini/no.png"

alt="no.png"></a>');

print('<a

href="index.php?option=com_componentamea&task=edit_articol&id='.$row-

>id.'" title="Editeaza articol"><img

src="components/com_componentamea/imagini/edit.png"

alt="edit.png"></a>');

print('<a

href="index.php?option=com_componentamea&task=sterge_articol&id='.$ro

w->id.'" title="Sterge articol"><img

src="components/com_componentamea/imagini/del.png"

alt="del.png"></a>');

print('</div>');

}

print('<div style="clear:both;"></div>');

$alert_user=JRequest::getVar('alert_user','');

$alert_user=$alert_user."";

if($alert_user=="not")

{

Page 23: Quiz Component For Joomla

Page 23

Download

http://24secunde.com/joomla/media/com_componentamea.zip

print('<div style="width:98%; border-width:1px; border-style:solid;

background-color:#CCCCCC; padding-top:2px; padding-left:2px; padding-

bottom:2px; margin-bottom:2px">');

print('<h4>Trebuie sa va conectati ca sa puteti inregistra

rezultatele testelor.</h4>');

print('</div>');

}

if($alert_user=="script")

{

print('<div style="width:98%; border-width:1px; border-style:solid;

background-color:#CCCCCC; padding-top:2px; padding-left:2px; padding-

bottom:2px; margin-bottom:2px">');

print('<h4>Programul necesita Javascript pentru a rula.</h4>');

print('</div>');

}

if($alert_user=="BD")

{

print('<div style="width:98%; border-width:1px; border-style:solid;

background-color:#CCCCCC; padding-top:2px; padding-left:2px; padding-

bottom:2px; margin-bottom:2px">');

print('<h4>Rezultatul testului a fost inregistrat in baza de

date.</h4>');

print('</div>');

}

$document =& JFactory::getDocument();

$document->setTitle($row->nume_test);

print("<h1>".$row->nume_test."</h1>"); print("<br/>");

print("".stripslashes($row->descriere_test).""); print("<br/>");

print("<br/>");

$id_test=$row->id;

$tablou_int=array();

$tablou_raspuns=array();

$query = 'SELECT `id` , `nume_intrebare` FROM

`jos_cunoastere_intrebari` WHERE `id_test` ='.$id_test.'';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

?>

<script type="text/javascript">

var radio=new Array();

var raspuns_dat=new Array();

var rasp_date=0;

var total=0;

function verifica(param, param2)

{

var diviz="div["+param2+"]";

if(radio[param2]==param.value)

{

//visibility:visible

Page 24: Quiz Component For Joomla

Page 24

Download

http://24secunde.com/joomla/media/com_componentamea.zip

document.getElementById(diviz).style.visibility="visible";

document.getElementById(diviz).style.color="green";

document.getElementById(diviz).innerHTML="Raspuns corect";

if(raspuns_dat[param2]==-1)

{

raspuns_dat[param2]=raspuns_dat[param2]+2;

rasp_date=rasp_date+raspuns_dat[param2];

total++;

document.getElementById("div_raspuns").innerHTML="Total test:

"+ rasp_date + " / " + total + " : "+ parseInt(rasp_date*100/total)

+"%";

}

}

else

{

document.getElementById(diviz).style.visibility="visible";

document.getElementById(diviz).style.color="red";

document.getElementById(diviz).innerHTML="Raspuns incorect";

if(raspuns_dat[param2]==-1)

{

raspuns_dat[param2]=raspuns_dat[param2]+1;

rasp_date=rasp_date+raspuns_dat[param2];

total++;

document.getElementById("div_raspuns").innerHTML="Total test:

"+ rasp_date + " / " + total + " : "+ parseInt(rasp_date*100/total)

+"%";

}

}

}

</script>

<?php

if($user->usertype!="Super Administrator")

{

$doc =& JFactory::getDocument();

$params =&$mainframe-

>getPageParameters('com_componentamea');

$zone = $params->get('zona1');

if($doc->countModules('publicitate') && $doc-

>countModules('publicitate')>$zone)

{

jimport('joomla.application.module.helper');

$module =

JModuleHelper::getModules('publicitate');

echo

JModuleHelper::renderModule($module[$zone]);

}

}

foreach($rows as $row)

{

print("<h3>".stripslashes($row->nume_intrebare)."</h3>");

$id_intreb=$row->id;

$tablou_int[]=$id_intreb;

Page 25: Quiz Component For Joomla

Page 25

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$query='SELECT `id`,`nume_raspuns` FROM

`jos_cunoastere_raspunsuri` WHERE `id_intrebari`='.$id_intreb.'';

$result_ = $db->setQuery($query);

$rows_ = $db->loadObjectList();

$tablou_rasp=array();

$tablou_rasp_indice=array();

foreach($rows_ as $row_)

{

$tablou_rasp_indice[]=$row_->id;

$tablou_rasp[$row_->id]=stripslashes($row_-

>nume_raspuns);

}

$tablou_raspuns[]=$tablou_rasp_indice[0];

print('<script type="text/javascript">');

print('radio['.$id_intreb.']='.$tablou_rasp_indice[0].';');

print('raspuns_dat['.$id_intreb.']=-1;');

print('var test_id='.$id_test.';');

print('</script>');

srand((double)microtime()*1000000);

shuffle($tablou_rasp_indice);

foreach($tablou_rasp_indice as $value)

{

print('<input name="radio'.$id_intreb.'"

type="radio" value="'.$value.'"

onclick="verifica('.this.','.$id_intreb.')">');

print($tablou_rasp[$value]);

print("<br/>");

}

print('<div id="div['.$id_intreb.']" style="visibility:hidden;

width:50%; border-width:1px; border-style:solid; background-

color:#CCCCCC; padding-top:2px; padding-left:2px; padding-bottom:2px;

margin-bottom:2px"></div>');

print("<br/>");

}

}

print('<script type="text/javascript">');

print('var total_ver='.count($tablou_int).';');

print('</script>');

?>

<h3>Rezultat test</h3>

<div id="div_raspuns" style="width:50%; border-width:1px; border-

style:solid; background-color:#CCCCCC; padding-top:2px; padding-

left:2px; padding-bottom:2px; margin-bottom:2px">

Nici un rezultat inca.

</div>

<script type="text/javascript">

var tip_submit=null;

function verifica_form()

{

Page 26: Quiz Component For Joomla

Page 26

Download

http://24secunde.com/joomla/media/com_componentamea.zip

document.getElementById("sir").value=rasp_date+":"+total+":"+

test_id;

if(tip_submit.value=="Reinitializeaza") return true;

if(tip_submit.value=="Inregistreaza")

{

if(total_ver==total)

{

return true;

}

else return false;

}

}

</script>

<form action="" method="post" onSubmit="return verifica_form();">

<input id="sir" name="sir" type="hidden" value="">

<input name="previz" type="submit" value="Inregistreaza"

onClick="tip_submit=this;"> sau

<input name="previz" type="submit" value="Reinitializeaza"

onClick="tip_submit=this;">

</form>

<?php

print("<br/>");

$query='SELECT DISTINCT `id_test` FROM `jos_cunoastere_user` ORDER

BY id DESC LIMIT 0, 10';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

$teste_recom=array();

foreach($rows as $row)

{

$teste_recom[]=$row->id_test;

}

print("<h3>Alte teste de cunostinte recomandate:</h3>");

foreach($teste_recom as $value)

{

$query='SELECT `id`,`nume_test` FROM

`jos_cunoastere_test` WHERE id='.$value.' AND `published`=1 ';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

if(trim($rows[0]->nume_test."")=="")continue;

print('<a

href="index.php?option=com_componentamea&task=view_test&id='.($rows[0

]->id).'" style="text-decoration:none" title="Citeste mai

mult...">');

print($rows[0]->nume_test);

print('</a><br/>');

}

if(isset($user->name))

{

print("<h4>"); print("Rezultate obtinute la

test:");print("</h4>");

$id_test=0+$id_test;

Page 27: Quiz Component For Joomla

Page 27

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$query='SELECT `user` , `punctaj` FROM

`jos_cunoastere_user` WHERE `id_test` ='.$id_test.' AND `user` LIKE

"'.($user->name).'%" ORDER BY id DESC LIMIT 0 , 30';

$result = $db->setQuery($query);

$rows = $db->loadObjectList();

foreach($rows as $row)

{

$user_data=explode("::",$row->user);

print($user_data[1]); print(" ");

$total_intreb=(int)($row->punctaj/1000);

$total_dat=(int) ($row->punctaj- $total_intreb*1000);

print(" ".$total_dat."/");print("".$total_intreb." ");

print("Procentaj:

".(int)($total_dat*100/$total_intreb)."%");

print("<br/>");

}

}

if($user->usertype!="Super Administrator")

{

$doc =& JFactory::getDocument();

$params =&$mainframe-

>getPageParameters('com_componentamea');

$zone = $params->get('zona2');

if($doc->countModules('publicitate') && $doc-

>countModules('publicitate')>$zone)

{

jimport('joomla.application.module.helper');

$module =

JModuleHelper::getModules('publicitate');

echo

JModuleHelper::renderModule($module[$zone]);

}

}

?>

File xml_feed.php

<?php

defined("_JEXEC") or exit("Restricted access");

?>

<?php

/// Pasul 1 - stabileste linkul de baza

$document = & JFactory::getDocument();;

$document->setLink(JRoute::_('index.php?option=com_componentamea'));

$db =& JFactory::getDBO();

$query="SELECT * FROM `jos_cunoastere_test` WHERE `published`=1

ORDER BY `id` DESC LIMIT 0,30";

$db->setQuery($query);

$rows = $db->loadObjectList();

$document->description="Fluxul RSS pentru componenta de teste";

foreach ($rows as $row)

{

Page 28: Quiz Component For Joomla

Page 28

Download

http://24secunde.com/joomla/media/com_componentamea.zip

$item = new JFeedItem();

$item->description =stripslashes($row-

>descriere_test)."<br/>"."<br/>";

$item->link =

JRoute::_('index.php?option=com_componentamea&task=view_test&id='.$ro

w->id);

$item->title = $row->nume_test;

$document->addItem($item);

}

jimport('joomla.utilities.date');

$date1 = new JDate();

$item->description=$date1->toFormat('%d-%m-%Y');

$item->link = JRoute::_('index.php?option=com_componentamea');

$item->title = "Data de generare a fluxului";

$document->addItem($item);

$document->render();

?>

File componenta mea.xml

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/component-

install.dtd">

<install type="component" version="1.5">

<name>Componenta mea</name>

<creationDate>Martie 2009</creationDate>

<author>Farcas Adrian</author>

<authorEmail>[email protected]</authorEmail>

<authorUrl>http://24secunde.com</authorUrl>

<copyright>Copyright</copyright>

<license>Licenta</license>

<version>Versiunea 1.0</version>

<description>Componenta de test</description>

<administration>

<menu>Admin Teste</menu>

<submenu>

<menu task="rezult_test"

img="js/ThemeOffice/component.png">Administrare rezultate

teste</menu>

<menu task="admin_test"

img="js/ThemeOffice/component.png">Administrare teste</menu>

</submenu>

<files>

<filename>admin.componentamea.php</filename>

<filename>admin.edit.php</filename>

<filename>admin.principal.php</filename>

<filename>admin.publish.php</filename>

<filename>admin.remove.php</filename>

<filename>admin.rezultate.php</filename>

<filename>admin.unpublish.php</filename>

<filename>componenta mea.xml</filename>

<filename>config.xml</filename>

<filename>index.php</filename>

<filename>toolbar.componentamea.php</filename>

Page 29: Quiz Component For Joomla

Page 29

Download

http://24secunde.com/joomla/media/com_componentamea.zip

<folder>imagini</folder>

<folder>tables</folder>

</files>

</administration>

<install>

<queries>

<query>DROP TABLE IF EXISTS `jos_cunoastere_intrebari`;</query>

<query>DROP TABLE IF EXISTS `jos_cunoastere_raspunsuri`;</query>

<query>DROP TABLE IF EXISTS `jos_cunoastere_test`;</query>

<query>DROP TABLE IF EXISTS `jos_cunoastere_user`;</query>

<query>CREATE TABLE `jos_cunoastere_intrebari`

(

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`id_test` INT NOT NULL,

`nume_intrebare` TEXT NOT NULL

)

</query>

<query>CREATE TABLE `jos_cunoastere_raspunsuri`

(

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`id_intrebari` INT NOT NULL,

`nume_raspuns` TEXT NOT NULL

)

</query>

<query>CREATE TABLE `jos_cunoastere_test` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`nume_test` TEXT NOT NULL ,

`descriere_test` TEXT NOT NULL ,

`published` TINYINT( 1 ) NOT NULL DEFAULT 0

)

</query>

<query>CREATE TABLE `jos_cunoastere_user`

(

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`id_test` INT NOT NULL,

`user` VARCHAR(255) NOT NULL,

`punctaj` INT NOT NULL DEFAULT 0

)

</query>

<query>

<![CDATA[

INSERT INTO `jos_cunoastere_test` ( `id` , `nume_test` ,

`descriere_test` , `published` )

VALUES (

'', 'Primul tau test aici / Your first quiz here:', 'Log in as

Administrator and click: <a

href="index.php?option=com_componentamea&task=adauga"

title="">index.php?option=com_componentamea&task=adauga</a>', '1'

)

]]>

Page 30: Quiz Component For Joomla

Page 30

Download

http://24secunde.com/joomla/media/com_componentamea.zip

</query>

</queries>

</install>

<uninstall>

<queries>

<query>DROP TABLE IF EXISTS `jos_cunoastere_intrebari`;</query>

<query>DROP TABLE IF EXISTS `jos_cunoastere_raspunsuri`;</query>

<query>DROP TABLE IF EXISTS `jos_cunoastere_test`;</query>

<query>DROP TABLE IF EXISTS `jos_cunoastere_user`;</query>

</queries>

</uninstall>

<files>

<filename>adauga_test.php</filename>

<filename>componentamea.php</filename>

<filename>edit_articol.php</filename>

<filename>index.php</filename>

<filename>nu_publica.php</filename>

<filename>principal.php</filename>

<filename>publica.php</filename>

<filename>sterge_articol.php</filename>

<filename>vezi_test.php</filename>

<filename>xml_feed.php</filename>

<folder>imagini</folder>

</files>

</install>

File config.xml

<?xml version="1.0" encoding="utf-8"?>

<config>

<params>

<param name="zona1" type="text" default="" label="Zona de publicitate

1" description="Selecteaza modulul pentru zona de publicitate 1"

size="3" />

<param name="zona2" type="text" default="" label="Zona de publicitate

2" description="Selecteaza modulul pentru zona de publicitate 2"

size="3" />

</params>

</config>

Page 31: Quiz Component For Joomla

Page 31

Download

http://24secunde.com/joomla/media/com_componentamea.zip

The folder imagini

Page 32: Quiz Component For Joomla

Page 32

Download

http://24secunde.com/joomla/media/com_componentamea.zip

Page 33: Quiz Component For Joomla

Page 33

Download

http://24secunde.com/joomla/media/com_componentamea.zip

The folder tables

File index.html

Ooops! Nu e chiar ceea ce cauti!

File cunoastere_intrebari.php

<?php

class Tablecunoastere_intrebari extends JTable

{

/*

CREATE TABLE `jos_cunoastere_intrebari`

(

Page 34: Quiz Component For Joomla

Page 34

Download

http://24secunde.com/joomla/media/com_componentamea.zip

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`id_test` INT NOT NULL,

`nume_intrebare` TEXT NOT NULL

);

*/

// cream variabile pentru fiecare camp din tabel si dam fiecarei

valori o valoare implicita

var $id = null;

var $id_test=NULL;

var $nume_intrebare=NULL;

// functia constructor are ca parametru o referinta la baza de date

function __construct( &$db )

{

parent::__construct('#__cunoastere_intrebari', 'id', $db);

}

// validarea datelor daca este cazul

function check()

{

if(!$this->id_test)

{

$this->setError(JText::_('Eroare - lipseste campul

ID din tabela TEST.'));

return false;

}

if(!$this->nume_intrebare)

{

$this->setError(JText::_('Eroare - intrebarea nu

poate fi vida.'));

return false;

}

return true;

}

}

?>

File cunoastere_raspunsuri.php

<?php

class Tablecunoastere_raspunsuri extends JTable

{

/*

CREATE TABLE `jos_cunoastere_raspunsuri`

(

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`id_intrebari` INT NOT NULL,

`nume_raspuns` TEXT NOT NULL

);

*/

// cream variabile pentru fiecare camp din tabel si dam fiecarei

valori o valoare implicita

Page 35: Quiz Component For Joomla

Page 35

Download

http://24secunde.com/joomla/media/com_componentamea.zip

var $id = null;

var $id_intrebari=NULL;

var $nume_raspuns=NULL;

// functia constructor are ca parametru o referinta la baza de date

function __construct( &$db )

{

parent::__construct('#__cunoastere_raspunsuri', 'id', $db);

}

// validarea datelor daca este cazul;

function check()

{

if(!$this->id_intrebari)

{

$this->setError(JText::_('Eroare - lipseste campul

ID din tabela INTREBARI.'));

return false;

}

if(!$this->nume_raspuns)

{

$this->setError(JText::_('Eroare - testul nu are

definit un raspuns.'));

return false;

}

return true;

}

}

?>

File cunoastere_test.php

<?php

class Tablecunoastere_test extends JTable

{

/*

CREATE TABLE `jos_cunoastere_test` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`nume_test` TEXT NOT NULL ,

`descriere_test` TEXT NOT NULL ,

`published` TINYINT( 1 ) NOT NULL DEFAULT 0

);

*/

// cream variabile pentru fiecare camp din tabel si dam fiecarei

valori o valoare implicita

var $id = null;

var $nume_test=NULL;

var $descriere_test=NULL;

var $published = 0;

// functia constructor are ca parametru o referinta la baza de date

function __construct( &$db )

{

Page 36: Quiz Component For Joomla

Page 36

Download

http://24secunde.com/joomla/media/com_componentamea.zip

parent::__construct('#__cunoastere_test', 'id', $db);

}

// validarea datelor daca este cazul; verificam ca testul sa aiba un

titlu si o descriere

function check()

{

if(!$this->nume_test)

{

$this->setError(JText::_('Eroare - testul nu are

definit un titlu.'));

return false;

}

if(!$this->descriere_test)

{

$this->setError(JText::_('Eroare - testul nu are

definita o descriere.'));

return false;

}

return true;

}

}

?>

File cunoastere_user.php

<?php

class Tablecunoastere_user extends JTable

{

/*

CREATE TABLE `jos_cunoastere_user`

(

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`id_test` INT NOT NULL,

`user` VARCHAR(255) NOT NULL,

`punctaj` INT NOT NULL DEFAULT 0

);

*/

// cream variabile pentru fiecare camp din tabel si dam fiecarei

valori o valoare implicita

var $id = null;

var $id_test=NULL;

var $user=NULL;

var $punctaj = 0;

// functia constructor are ca parametru o referinta la baza de date

function __construct( &$db )

{

parent::__construct('#__cunoastere_user', 'id', $db);

}

// validarea datelor daca este cazul;

function check()

Page 37: Quiz Component For Joomla

Page 37

Download

http://24secunde.com/joomla/media/com_componentamea.zip

{

if(!$this->id_test)

{

$this->setError(JText::_('Eroare - lipseste campul

ID din tabela TEST.'));

return false;

}

if(!$this->user)

{

$this->setError(JText::_('Eroare - testul nu are

definit un USER.'));

return false;

}

return true;

}

}

?>