Example #1
0
function showFolderWithContent(&$k, $folder, $i, $topic_id, $checked, $span, $in_folder = null)
{
    global $JLMS_DB, $max_lvl;
    $manage = $in_folder ? 0 : 1;
    JLMS_topic_html::showDocumentRow($k, $folder, $i, $topic_id, $checked, $manage, $in_folder, $span);
    $query = "SELECT a.*, b.file_name FROM #__lms_documents as a LEFT JOIN #__lms_files as b ON a.file_id = b.id AND a.folder_flag = 0 WHERE a.parent_id={$folder->id} ORDER BY ordering";
    $JLMS_DB->setQuery($query);
    $rows = $JLMS_DB->loadObjectList();
    $new_rows = array();
    for ($j = 0; $j < count($rows); $j++) {
        if ($rows[$j]->folder_flag == 3) {
            $query = "SELECT a.*, b.file_name FROM #__lms_outer_documents as a LEFT JOIN #__lms_files as b ON a.file_id = b.id AND a.folder_flag = 0 " . "\n WHERE a.folder_flag = 0 AND a.id = " . $rows[$j]->file_id . " AND a.allow_link = 1";
            $JLMS_DB->SetQuery($query);
            $out_row = $JLMS_DB->LoadObjectList();
            if (count($out_row)) {
                $rows[$j]->doc_name = $out_row[0]->doc_name;
                $rows[$j]->file_name = $out_row[0]->file_name;
                $rows[$j]->doc_description = $out_row[0]->doc_description;
                $rows[$j]->file_id = $out_row[0]->file_id;
                $new_rows[] = $rows[$j];
            } else {
                $rows[$j]->doc_name = _JLMS_LP_RESOURSE_ISUNAV;
            }
        } else {
            $new_rows[] = $rows[$j];
        }
    }
    unset($rows);
    $rows = $new_rows;
    $rows = AppendFileIcons_toList($rows);
    if (@$in_folder[$max_lvl - $span - 1] == 2) {
        $in_folder[$max_lvl - $span - 1] = 0;
    }
    $in_folder[$max_lvl - $span] = 1;
    for ($j = 0; $j < count($rows) - 1; $j++) {
        $rows[$j]->allow_up = 0;
        $rows[$j]->allow_down = 0;
        if ($rows[$j]->folder_flag == 1) {
            showFolderWithContent($k, $rows[$j], $i, $topic_id, '&nbsp;', $span - 1, $in_folder);
        } else {
            JLMS_topic_html::showDocumentRow($k, $rows[$j], $i, '', '&nbsp;', 0, $in_folder, $span - 1);
        }
    }
    $in_folder[$max_lvl - $span] = 2;
    if (isset($rows[$j])) {
        $rows[$j]->allow_up = 0;
        $rows[$j]->allow_down = 0;
        if ($rows[$j]->folder_flag == 1) {
            showFolderWithContent($k, $rows[$j], $i, $topic_id, '&nbsp;', $span - 1, $in_folder);
        } else {
            JLMS_topic_html::showDocumentRow($k, $rows[$j], $i, '', '&nbsp;', 0, $in_folder, $span - 1);
        }
    }
}
    function showTopicElements($course_id, $topic, $links, $elements, $span = 1)
    {
        global $option, $Itemid, $max_lvl, $JLMS_CONFIG;
        $usertype = $JLMS_CONFIG->get('current_usertype', 0);
        $date_format = $JLMS_CONFIG->get('date_format_fdow', 1);
        ob_start();
        ?>
			<table border="0" cellpadding="0" cellspacing="0" width="100%" id="topic_<?php 
        echo $topic->id;
        ?>
_elements_table" class="<?php 
        echo JLMSCSS::_('jlmslist');
        ?>
">
				<tr>
					<<?php 
        echo JLMSCSS::tableheadertag();
        ?>
 class="<?php 
        echo JLMSCSS::_('sectiontableheader');
        ?>
" style="width:1%;"><?php 
        echo $usertype != 2 ? '#' : '&nbsp;';
        ?>
</<?php 
        echo JLMSCSS::tableheadertag();
        ?>
>
					<?php 
        if ($usertype != 2) {
            ?>
<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" style="width:1%;"><input type="checkbox" onclick="checkAll_mod(<?php 
            echo count($links[$topic->id]);
            ?>
, 'cb<?php 
            echo $topic->id . '_';
            ?>
', 'topicForm_<?php 
            echo $topic->id;
            ?>
');" value="" name="toggle"/></<?php 
            echo JLMSCSS::tableheadertag();
            ?>
><?php 
        }
        ?>
					<<?php 
        echo JLMSCSS::tableheadertag();
        ?>
 class="<?php 
        echo JLMSCSS::_('sectiontableheader');
        ?>
" style="width:95%;" colspan="<?php 
        echo $span + 1;
        ?>
"><?php 
        echo _JLMS_TOPIC_E_NAME;
        ?>
</<?php 
        echo JLMSCSS::tableheadertag();
        ?>
>
					<?php 
        if ($usertype != 2) {
            ?>
<<?php 
            echo JLMSCSS::tableheadertag();
            ?>
 class="<?php 
            echo JLMSCSS::_('sectiontableheader');
            ?>
" colspan="3" align="center" style="width:1%;"><?php 
            echo _JLMS_TOPIC_E_CONTROLS;
            ?>
</<?php 
            echo JLMSCSS::tableheadertag();
            ?>
><?php 
        }
        ?>
					<<?php 
        echo JLMSCSS::tableheadertag();
        ?>
 class="<?php 
        echo JLMSCSS::_('sectiontableheader');
        ?>
" colspan="<?php 
        echo $usertype != 2 ? 2 : 3;
        ?>
" align="center" style="width:1%;"><?php 
        echo _JLMS_TOPIC_E_DETAILS;
        ?>
</<?php 
        echo JLMSCSS::tableheadertag();
        ?>
>
					<<?php 
        echo JLMSCSS::tableheadertag();
        ?>
 class="<?php 
        echo JLMSCSS::_('sectiontableheader');
        ?>
" style="width:1%;"><span style="display: block; width:150px;"><?php 
        echo _JLMS_TOPIC_E_DESRIPTION;
        ?>
</span></<?php 
        echo JLMSCSS::tableheadertag();
        ?>
>
				</tr>
				<?php 
        $i = 0;
        $vis_mode = 0;
        $k = 2;
        $displayed = 0;
        if ($count = count($links[$topic->id])) {
            //checks if there are elements in topic
            foreach ($links[$topic->id] as $link) {
                if (isset($link->item_type) && $link->item_type == _DOCUMENT_ID) {
                    if (!isset($elements[_DOCUMENT_ID][$link->item_id])) {
                        continue;
                    }
                    /* (23 July 2008) - added by DEN */
                }
                // 01.12.2007 '$i' chenged to '$topic_id*1000+$i' by DEN - to avoid dublicate id's
                $iii = $topic->id . '_' . $i;
                $checked = '<input type="checkbox" id="cb' . $iii . '" name="cid[]" value="' . $link->id . '" onclick="isChecked_mod(this.checked, \'topicForm_' . $topic->id . '\');" />';
                switch ($link->item_type) {
                    case _DOCUMENT_ID:
                        $elements[_DOCUMENT_ID][$link->item_id]->allow_up = $i > 0 ? 1 : 0;
                        $elements[_DOCUMENT_ID][$link->item_id]->allow_down = $i < $count - 1 ? 1 : 0;
                        $elements[_DOCUMENT_ID][$link->item_id]->show = $link->show;
                        $elements[_DOCUMENT_ID][$link->item_id]->ordering = $link->ordering;
                        $elements[_DOCUMENT_ID][$link->item_id]->link_id = $link->id;
                        $publish_options = publishUtility($elements[_DOCUMENT_ID][$link->item_id]->published, $elements[_DOCUMENT_ID][$link->item_id]->show, $elements[_DOCUMENT_ID][$link->item_id]->publish_start, $elements[_DOCUMENT_ID][$link->item_id]->publish_end, $elements[_DOCUMENT_ID][$link->item_id]->start_date, $elements[_DOCUMENT_ID][$link->item_id]->end_date);
                        if ($usertype == 2 && $publish_options->show * $publish_options->state == 0) {
                            continue;
                        }
                        if (!$elements[_DOCUMENT_ID][$link->item_id]->folder_flag || $elements[_DOCUMENT_ID][$link->item_id]->folder_flag == 3 || $elements[_DOCUMENT_ID][$link->item_id]->folder_flag == 2) {
                            JLMS_topic_html::showDocumentRow($k, $elements[_DOCUMENT_ID][$link->item_id], $i, $topic->id, $checked, 1, 0, $span);
                        } else {
                            showFolderWithContent($k, $elements[_DOCUMENT_ID][$link->item_id], $i, $topic->id, $checked, $span);
                        }
                        $displayed++;
                        break;
                    case _LINK_ID:
                        $elements[_LINK_ID][$link->item_id]->allow_up = $i > 0 ? 1 : 0;
                        $elements[_LINK_ID][$link->item_id]->allow_down = $i < $count - 1 ? 1 : 0;
                        $elements[_LINK_ID][$link->item_id]->show = $link->show;
                        $elements[_LINK_ID][$link->item_id]->ordering = $link->ordering;
                        $elements[_LINK_ID][$link->item_id]->link_id = $link->id;
                        if ($usertype == 2 && $elements[_LINK_ID][$link->item_id]->show * $elements[_LINK_ID][$link->item_id]->published == 0) {
                            continue;
                        }
                        JLMS_topic_html::showLinkRow($k, $elements[_LINK_ID][$link->item_id], $i, $topic->id, $checked, 1, $span);
                        $displayed++;
                        break;
                    case _QUIZ_ID:
                        $elements[_QUIZ_ID][$link->item_id]->allow_up = $i > 0 ? 1 : 0;
                        $elements[_QUIZ_ID][$link->item_id]->allow_down = $i < $count - 1 ? 1 : 0;
                        $elements[_QUIZ_ID][$link->item_id]->show = $link->show;
                        $elements[_QUIZ_ID][$link->item_id]->ordering = $link->ordering;
                        $elements[_QUIZ_ID][$link->item_id]->link_id = $link->id;
                        if ($usertype == 2 && $elements[_QUIZ_ID][$link->item_id]->show * $elements[_QUIZ_ID][$link->item_id]->published == 0) {
                            continue;
                        }
                        JLMS_topic_html::showQuizRow($k, $elements[_QUIZ_ID][$link->item_id], $i, $topic->id, $checked, 1, $span);
                        $displayed++;
                        break;
                    case _LPATH_ID:
                        $elements[_LPATH_ID][$link->item_id]->allow_up = $i > 0 ? 1 : 0;
                        $elements[_LPATH_ID][$link->item_id]->allow_down = $i < $count - 1 ? 1 : 0;
                        $elements[_LPATH_ID][$link->item_id]->show = $link->show;
                        $elements[_LPATH_ID][$link->item_id]->ordering = $link->ordering;
                        $elements[_LPATH_ID][$link->item_id]->link_id = $link->id;
                        if (isset($link->lpath_name)) {
                            $elements[_LPATH_ID][$link->item_id]->lpath_name = $link->lpath_name;
                        }
                        if (isset($link->is_link)) {
                            $elements[_LPATH_ID][$link->item_id]->is_link = $link->is_link;
                        }
                        // 01.12.2007 - (DEN) - esli v topike ni odin element ne 'shown' - vyletaet notice
                        if (!isset($elements[_LPATH_ID][$link->item_id]->published)) {
                            $elements[_LPATH_ID][$link->item_id]->published = 0;
                        }
                        if ($usertype == 2 && $elements[_LPATH_ID][$link->item_id]->show * $elements[_LPATH_ID][$link->item_id]->published == 0) {
                            continue;
                        }
                        $displayed += JLMS_topic_html::showLPathRow($k, $elements[_LPATH_ID][$link->item_id], $i, $topic->id, $checked, 1, $span);
                        break;
                }
                $i++;
            }
        }
        ?>
			</table>
			<?php 
        if ($displayed == 0) {
            ?>
			<script type="text/javascript" language="javascript">
			document.getElementById('topic_<?php 
            echo $topic->id;
            ?>
_elements_table').style.display='none';
			</script>
			<?php 
        }
        ?>
			<?php 
        $return = ob_get_clean();
        return $return;
    }