function display($tpl = null) { global $option; $app =& JFactory::getApplication(); $cwConfig =& CrosswordsHelper::getConfig(); $user =& JFactory::getUser(); $menu =& JSite::getMenu(); $document =& JFactory::getDocument(); $mnuitems = $menu->getItems('link', 'index.php?option=' . $option . '&view=crosswords'); $itemid = isset($mnuitems[0]->id) ? $mnuitems[0]->id : JRequest::getVar('itemid'); $itemid = $itemid ? '&Itemid=' . $itemid : 0; //$document->addScript('https://getfirebug.com/firebug-lite.js'); JPluginHelper::importPlugin('corejoomla'); $dispatcher =& JDispatcher::getInstance(); $dispatcher->trigger('onCallIncludeJQuery', array(array("jquery", "jqueryui", "jqueryform"))); $model =& $this->getModel("crosswords"); switch ($this->action) { case "crossword_list": $result =& $model->get_crosswords_list(); $categories =& $model->get_categories(); $this->assignRef("crosswords", $result->crosswords); $this->assignRef("pagination", $result->pagination); $this->assignRef("categories", $categories); break; case "user_crosswords": $result =& $model->get_crosswords_list($user->id); $categories =& $model->get_categories(); $this->assignRef("crosswords", $result->crosswords); $this->assignRef("pagination", $result->pagination); $this->assignRef("categories", $categories); $this->action = "crossword_list"; break; case "create_new_crossword": $crossword =& $model->create_crossword(); if ($model->getError()) { JFactory::getApplication()->enqueueMessage($model->getError()); } $this->assignRef("crossword", $crossword); $this->action = "crossword_details"; break; case "crossword_details": $cid = JRequest::getInt("id"); $crossword =& $model->get_crossword($cid); $this->assignRef("crossword", $crossword); break; } $this->assignRef("layoutPath", $this->action); parent::display($tpl); }
<?php defined('_JEXEC') or die('Restricted access'); global $option; $cwConfig =& CrosswordsHelper::getConfig(); $user =& JFactory::getUser(); $menu =& JSite::getMenu(); $mnuitem = $menu->getItems('link', 'index.php?option=' . $option . '&view=crosswords', true); $itemid = isset($mnuitem) ? '&Itemid=' . $mnuitem->id : ''; $citemid = $this->catid ? '&catid=' . $this->catid : ''; ?> <script type="text/javascript"> <!-- jQuery(document).ready(function($){ CrossWordFactory.init_details_page(); }); //--> </script> <div id="crossword-details"> <?php if ($this->crossword) { ?> <div class="toolbar"> <ul class="submenu"> <li><a href="<?php echo JRoute::_('index.php?option=' . $option . '&view=crosswords&task=list' . $itemid); ?> " class="active icon-home"><?php echo JText::_('LBL_HOME'); ?> </a></li>
function &get_crossword($cid, $details = true) { $db =& JFactory::getDBO(); $user =& JFactory::getUser(); $cwConfig =& CrosswordsHelper::getConfig(); $query = "select a.id, a.catid, a.title, a.alias, a.created_by, a.created, a.questions, a.rows, a.columns," . " u." . $cwConfig[USER_NAME] . ", c.title as category" . " from " . TABLE_CROSSWORDS . " a" . " left join " . TABLE_CROSSWORDS_CATEGORIES . " c on a.catid=c.id" . " left join #__users u on a.created_by=u.id" . " where a.id=" . $cid; $db->setQuery($query); $crossword = $db->loadObject(); if (!empty($crossword) && $details) { $crossword->response_id = 0; $crossword->solved = 0; if (!$user->guest) { $query = "select id, solved from " . TABLE_CROSSWORDS_RESPONSES . " where cid=" . $cid . " and created_by=" . $user->id; $db->setQuery($query); $result = $db->loadObject(); $crossword->solved = $result->solved ? $result->solved : 0; $crossword->response_id = $result->id ? $result->id : 0; } // Get questions $query = "select q.id, k.keyword, r.answer, k.question, q.row, q.column, q.axis, q.position" . " from " . TABLE_CROSSWORDS_QUESTIONS . " q" . " left join " . TABLE_CROSSWORDS_KEYWORDS . " k on q.keyid=k.id" . " left join " . TABLE_CROSSWORDS_RESPONSE_DETAILS . " r on q.id=r.question_id and r.response_id=" . $crossword->response_id . " where q.cid=" . $cid; $db->setQuery($query); $questions = $db->loadObjectList(); if (empty($questions)) { return false; } // Form grid cells $cells = array(); for ($x = 0; $x < $crossword->rows; $x++) { for ($y = 0; $y < $crossword->columns; $y++) { $cells[$x][$y]->letter = null; } } foreach ($questions as $question) { if ($question->axis == 1) { $cells[$question->row][$question->column]->number = $question->position; $cells[$question->row][$question->column]->axis = 2; for ($y = 0; $y < strlen($question->keyword); $y++) { $cellnum = $question->column + $y; $cells[$question->row][$cellnum]->letter = $question->answer ? substr($question->answer, $y, 1) : " "; $cells[$question->row][$cellnum]->class = $cells[$question->row][$cellnum]->class ? $cells[$question->row][$cellnum]->class . " letters-1-" . $question->position : "letters-1-" . $question->position; } } else { $cells[$question->row][$question->column]->number = $question->position; $cells[$question->row][$question->column]->axis = 1; for ($x = 0; $x < strlen($question->keyword); $x++) { $cellnum = $question->row + $x; $cells[$cellnum][$question->column]->letter = $question->answer ? substr($question->answer, $x, 1) : " "; $cells[$cellnum][$question->column]->class = $cells[$cellnum][$question->column]->class ? $cells[$cellnum][$question->column]->class . " letters-2-" . $question->position : "letters-2-" . $question->position; } } } // Get users who solved this $query = "select r.created_by, u." . $cwConfig[USER_NAME] . " as username, r.created" . " from " . TABLE_CROSSWORDS_RESPONSES . " r " . " left join #__users u on r.created_by = u.id " . " where r.cid=" . $cid . " and r.solved=1" . " order by r.created_by desc"; $db->setQuery($query, 0, 10); $users = $db->loadObjectList(); $query = "select count(*) from " . TABLE_CROSSWORDS_RESPONSES . " where cid=" . $cid . " and solved=1"; $db->setQuery($query); $user_count = (int) $db->loadResult(); $crossword->questions = $questions; $crossword->cells = $cells; $crossword->users_solved = $users; $crossword->user_count = $user_count - 15; } return $crossword; }