#216 Improve layout of knowledgebase section

merge-requests/2/head
Mike Koch 9 years ago
parent 0efb2250f3
commit b103a39b90

@ -394,3 +394,11 @@ button.dropdown-submit {
.plaintext-editor { .plaintext-editor {
font-family: monospace; font-family: monospace;
} }
.table-fixed {
table-layout: fixed;
}
.indent-15 {
margin-left: 15px;
}

@ -383,4 +383,16 @@ vertical-align: middle;
max-height: 80px; max-height: 80px;
max-width: 80px; max-width: 80px;
cursor: pointer; cursor: pointer;
}
.plaintext-editor {
font-family: monospace;
}
.table-fixed {
table-layout: fixed;
}
.indent-15 {
margin-right: 15px;
} }

@ -94,10 +94,10 @@ function hesk_kbTopArticles($how_many, $index = 1)
<div class="panel-heading"> <div class="panel-heading">
<h4 class="text-left"><?php echo $hesklang['popart_no_colon']; ?></h4> <h4 class="text-left"><?php echo $hesklang['popart_no_colon']; ?></h4>
</div> </div>
<table border="0" width="100%" class="table table-striped"> <table border="0" width="100%" class="table table-striped table-fixed">
<thead> <thead>
<tr> <tr>
<th>&nbsp;</th> <th class="col-xs-8 col-sm-9">&nbsp;</th>
<?php <?php
/* Get list of articles from the database */ /* Get list of articles from the database */
$res = hesk_dbQuery("SELECT `t1`.`id`,`t1`.`subject`,`t1`.`views` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` AS `t1` $res = hesk_dbQuery("SELECT `t1`.`id`,`t1`.`subject`,`t1`.`views` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` AS `t1`
@ -108,7 +108,7 @@ function hesk_kbTopArticles($how_many, $index = 1)
/* Show number of views? */ /* Show number of views? */
if ($hesk_settings['kb_views'] && hesk_dbNumRows($res) != 0) if ($hesk_settings['kb_views'] && hesk_dbNumRows($res) != 0)
{ {
echo '<th><i>' . $hesklang['views'] . '</i></th>'; echo '<th class="col-xs-4 col-sm-3"><i>' . $hesklang['views'] . '</i></th>';
} }
?> ?>
</tr> </tr>
@ -141,12 +141,12 @@ function hesk_kbTopArticles($how_many, $index = 1)
{ {
echo ' echo '
<tr> <tr>
<td '.$colspan.'> <td class="col-xs-8 col-sm-9" '.$colspan.'>
<i class="fa fa-file"></i> <a href="knowledgebase.php?article="'.$article['id'].'">'.$article['subject'].'</a> <i class="fa fa-file"></i> <a href="knowledgebase.php?article='.$article['id'].'">'.$article['subject'].'</a>
</td> </td>
'; ';
if ($hesk_settings['kb_views']) { if ($hesk_settings['kb_views']) {
echo '<td>'.$article['views'].'</td>'; echo '<td class="col-xs-4 col-sm-3">'.$article['views'].'</td>';
} }
echo '</tr>'; echo '</tr>';
} }
@ -197,7 +197,7 @@ function hesk_kbLatestArticles($how_many, $index = 1)
<div class="panel-heading"> <div class="panel-heading">
<h4 class="text-left"><?php echo $hesklang['latart_no_colon']; ?></h4> <h4 class="text-left"><?php echo $hesklang['latart_no_colon']; ?></h4>
</div> </div>
<table class="table table-striped"> <table class="table table-striped table-fixed">
<thead> <thead>
<tr> <tr>
<?php <?php
@ -214,10 +214,10 @@ function hesk_kbLatestArticles($how_many, $index = 1)
/* Show number of views? */ /* Show number of views? */
if (hesk_dbNumRows($res) != 0) if (hesk_dbNumRows($res) != 0)
{ {
echo '<th '.$colspan.'>&nbsp;</th>'; echo '<th class="col-xs-9" '.$colspan.'>&nbsp;</th>';
if ($hesk_settings['kb_date']) if ($hesk_settings['kb_date'])
{ {
echo '<th><i>' . $hesklang['dta'] . '</i></th>'; echo '<th class="col-xs-3"><i>' . $hesklang['dta'] . '</i></th>';
} }
} }
?> ?>
@ -248,14 +248,16 @@ function hesk_kbLatestArticles($how_many, $index = 1)
{ {
echo ' echo '
<tr> <tr>
<td '.$colspan.'> <td class="col-xs-9" '.$colspan.'>
<i class="fa fa-file"></i> <a href="knowledgebase.php?article='.$article['id'].'">'.$article['subject'].'</a> <i class="fa fa-file"></i> <a href="knowledgebase.php?article='.$article['id'].'">'.$article['subject'].'</a>
</td>'; </td>';
if ($hesk_settings['kb_date']) { if ($hesk_settings['kb_date']) {
echo '<td>' . hesk_date($article['dt'], true) . '</td>'; echo '<td class="col-xs-3">' . hesk_date($article['dt'], true) . '</td>';
} }
echo '</tr>'; echo '</tr>';
} ?> } ?>
</tbody>
</table>
</div> </div>
<?php <?php

@ -139,7 +139,7 @@ else
{ {
hesk_show_kb_category($catid); hesk_show_kb_category($catid);
} }
echo '</div>';
require_once(HESK_PATH . 'inc/footer.inc.php'); require_once(HESK_PATH . 'inc/footer.inc.php');
exit(); exit();
@ -276,8 +276,15 @@ function hesk_show_kb_article($artid)
{ {
hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` SET `views`=`views`+1 WHERE `id`={$artid} LIMIT 1"); hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` SET `views`=`views`+1 WHERE `id`={$artid} LIMIT 1");
} }
if (!isset($_GET['suggest'])) {
$historyNumber = isset($_GET['rated']) ? '-2' : '-1';
$goBackText = '<a href="javascript:history.go('.$historyNumber.')">
<i class="fa fa-arrow-circle-left" data-toggle="tooltip" data-placement="top" title="'.$hesklang['back'].'"></i></a>';
} else {
$goBackText = '';
}
echo '<h3 class="text-left">'.$article['subject'].'</h3> echo '<h3 class="text-left">'.$goBackText.'&nbsp;'.$article['subject'].'</h3>
<div class="footerWithBorder blankSpace"></div> <div class="footerWithBorder blankSpace"></div>
<h4 class="text-left">'.$hesklang['as'].'</h4> <h4 class="text-left">'.$hesklang['as'].'</h4>
<div class="kbContent">' <div class="kbContent">'
@ -409,22 +416,7 @@ function hesk_show_kb_article($artid)
</div> </div>
<?php } ?> <?php } ?>
</div> </div>
<?php
<?php
if (!isset($_GET['suggest']))
{
?>
<p><a href="javascript:history.go(<?php echo isset($_GET['rated']) ? '-2' : '-1'; ?>)"><span class="glyphicon glyphicon-circle-arrow-left"></span> <?php echo $hesklang['back']; ?></a></p>
<?php
}
else
{
?>
<p>&nbsp;</p>
<?php
}
} // END hesk_show_kb_article() } // END hesk_show_kb_article()
@ -456,8 +448,7 @@ function hesk_show_kb_category($catid, $is_search = 0) {
if ($thiscat['parent']) if ($thiscat['parent'])
{ {
$link = ($thiscat['parent'] == 1) ? 'knowledgebase.php' : 'knowledgebase.php?category='.$thiscat['parent']; $link = ($thiscat['parent'] == 1) ? 'knowledgebase.php' : 'knowledgebase.php?category='.$thiscat['parent'];
echo '<h3 class="text-left">'.$hesklang['kb_cat'].': '.$thiscat['name'].' </h3> echo '<h3 class="text-left"><a href="javascript:history.go(-1)"><i class="fa fa-arrow-circle-left" data-toggle="tooltip" data-placement="top" title="'.$hesklang['back'].'"></i></a>&nbsp;'.$hesklang['kb_cat'].': '.$thiscat['name'].' </h3>
<p class="text-left"><a href="javascript:history.go(-1)" title="'.$hesklang['back'].'"><span class="glyphicon glyphicon-circle-arrow-left"></span>'.$hesklang['back'].'</a></p>
<div class="footerWithBorder blankSpace"></div> <div class="footerWithBorder blankSpace"></div>
<div class="blankSpace"></div> <div class="blankSpace"></div>
'; ';
@ -468,153 +459,137 @@ function hesk_show_kb_category($catid, $is_search = 0) {
{ {
?> ?>
<h4 class="text-left"><?php echo $hesklang['kb_cat_sub']; ?></h4> <div class="panel panel-default">
<div class="footerWithBorder blankSpace"></div> <div class="panel-heading">
<h4 class="text-left"><?php echo $hesklang['kb_cat_sub']; ?></h4>
<table border="0" cellspacing="1" cellpadding="3" width="100%"> </div>
<table class="table table-striped">
<?php <?php
$per_col = $hesk_settings['kb_cols']; $per_col = $hesk_settings['kb_cols'];
$i = 1; $i = 1;
while ($cat = hesk_dbFetchAssoc($result)) while ($cat = hesk_dbFetchAssoc($result))
{ {
if ($i == 1) if ($i == 1)
{ {
echo '<tr>'; echo '<tr>';
} }
echo ' echo '
<td width="50%" valign="top"> <td width="50%" valign="top">
<table border="0"> <table border="0">
<tr><td><span class="glyphicon glyphicon-folder-close"></span>&nbsp;<a href="knowledgebase.php?category='.$cat['id'].'">'.$cat['name'].'</a></td></tr> <tr><td><i class="fa fa-folder"></i>&nbsp;<a href="knowledgebase.php?category='.$cat['id'].'">'.$cat['name'].'</a></td></tr>
'; ';
/* Print most popular/sticky articles */ /* Print most popular/sticky articles */
if ($hesk_settings['kb_numshow'] && $cat['articles']) if ($hesk_settings['kb_numshow'] && $cat['articles'])
{ {
$res = hesk_dbQuery("SELECT `id`,`subject` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `catid`='{$cat['id']}' AND `type`='0' ORDER BY `sticky` DESC, `views` DESC, `art_order` ASC LIMIT " . (intval($hesk_settings['kb_numshow']) + 1) ); $res = hesk_dbQuery("SELECT `id`,`subject` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `catid`='{$cat['id']}' AND `type`='0' ORDER BY `sticky` DESC, `views` DESC, `art_order` ASC LIMIT " . (intval($hesk_settings['kb_numshow']) + 1) );
$num = 1; $num = 1;
while ($art = hesk_dbFetchAssoc($res)) while ($art = hesk_dbFetchAssoc($res))
{ {
echo ' echo '
<tr> <tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="glyphicon glyphicon-file"></span> <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="glyphicon glyphicon-file"></span>
<a href="knowledgebase.php?article='.$art['id'].'" class="article">'.$art['subject'].'</a></td> <a href="knowledgebase.php?article='.$art['id'].'" class="article">'.$art['subject'].'</a></td>
</tr>'; </tr>';
if ($num == $hesk_settings['kb_numshow']) if ($num == $hesk_settings['kb_numshow'])
{ {
break; break;
} }
else else
{ {
$num++; $num++;
} }
} }
if (hesk_dbNumRows($res) > $hesk_settings['kb_numshow']) if (hesk_dbNumRows($res) > $hesk_settings['kb_numshow'])
{ {
echo '<tr><td>&raquo; <a href="knowledgebase.php?category='.$cat['id'].'"><i>'.$hesklang['m'].'</i></a></td></tr>'; echo '<tr><td>&raquo; <a href="knowledgebase.php?category='.$cat['id'].'"><i>'.$hesklang['m'].'</i></a></td></tr>';
} }
} }
echo ' echo '
</table> </table>
</td> </td>
'; ';
if ($i == $per_col) if ($i == $per_col)
{ {
echo '</tr>'; echo '</tr>';
$i = 0; $i = 0;
} }
$i++; $i++;
} }
/* Finish the table if needed */ /* Finish the table if needed */
if ($i != 1) if ($i != 1)
{ {
for ($j=1;$j<=$per_col;$j++) for ($j=1;$j<=$per_col;$j++)
{ {
echo '<td width="50%">&nbsp;</td>'; echo '<td width="50%">&nbsp;</td>';
if ($i == $per_col) if ($i == $per_col)
{ {
echo '</tr>'; echo '</tr>';
break; break;
} }
$i++; $i++;
} }
} }
?>
</table>
</td> ?>
<td class="roundcornersright">&nbsp;</td> </table>
</tr> </div>
</table>
<?php <?php
} // END if NumRows > 0 } // END if NumRows > 0
?> ?>
<h4 class="text-left"><?php echo $hesklang['ac']; ?></h4> <div class="panel panel-default">
<div class="footerWithBorder blankSpace"></div> <div class="panel-heading">
<h4 class="text-left"><?php echo $hesklang['ac_no_colon']; ?></h4>
<table width="100%" border="0" cellspacing="0" cellpadding="0"> </div>
<table class="table table-striped">
<tr> <tbody>
<td> <?php
$res = hesk_dbQuery("SELECT `id`, `subject`, LEFT(`content`, ".max(200, $hesk_settings['kb_substrart'] * 2).") AS `content`, `rating` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `catid`='{$catid}' AND `type`='0' ORDER BY `sticky` DESC, `art_order` ASC");
<?php if (hesk_dbNumRows($res) == 0)
$res = hesk_dbQuery("SELECT `id`, `subject`, LEFT(`content`, ".max(200, $hesk_settings['kb_substrart'] * 2).") AS `content`, `rating` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` WHERE `catid`='{$catid}' AND `type`='0' ORDER BY `sticky` DESC, `art_order` ASC"); {
if (hesk_dbNumRows($res) == 0) echo '<tr><td><i>'.$hesklang['noac'].'</i></td></tr>';
{ }
echo '<p><i>'.$hesklang['noac'].'</i></p>'; else
} {
else while ($article = hesk_dbFetchAssoc($res))
{ {
echo '<div align="center"><table border="0" cellspacing="1" cellpadding="3" width="100%">'; $txt = hesk_kbArticleContentPreview($article['content']);
while ($article = hesk_dbFetchAssoc($res))
{
$txt = hesk_kbArticleContentPreview($article['content']);
if ($hesk_settings['kb_rating'])
{
$alt = $article['rating'] ? sprintf($hesklang['kb_rated'], sprintf("%01.1f", $article['rating'])) : $hesklang['kb_not_rated'];
$rat = '<td width="1" valign="top"><img src="img/star_'.(hesk_round_to_half($article['rating'])*10).'.png" width="85" height="16" alt="'.$alt.'" title="'.$alt.'" border="0" style="vertical-align:text-bottom" /></td>';
}
else
{
$rat = '';
}
echo ' if ($hesk_settings['kb_rating'])
<tr> {
<td> $alt = $article['rating'] ? sprintf($hesklang['kb_rated'], sprintf("%01.1f", $article['rating'])) : $hesklang['kb_not_rated'];
<table border="0" width="100%" cellspacing="0" cellpadding="1"> $rat = '<td><img src="img/star_'.(hesk_round_to_half($article['rating'])*10).'.png" width="85" height="16" alt="'.$alt.'" title="'.$alt.'" border="0" style="vertical-align:text-bottom" /></td>';
<tr> }
<td width="1" valign="top"><span class="glyphicon glyphicon-file"></span></td> else
<td valign="top"><a href="knowledgebase.php?article='.$article['id'].'">'.$article['subject'].'</a></td> {
'.$rat.' $rat = '';
</tr> }
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="1">
<tr>
<td width="1" valign="top"><img src="img/blank.gif" width="16" height="10" style="vertical-align:middle" alt="" /></td>
<td><span class="article_list">'.$txt.'</span></td>
</tr>
</table>
</td>
</tr>';
}
echo '</table></div>';
}
?>
</td> echo '
</tr> <tr>
</table> <td>
<i class="fa fa-file"></i>
<a href="knowledgebase.php?article='.$article['id'].'">'.$article['subject'].'</a>
<br>
<span class="indent-15">'.$txt.'</span>
</td>
'.$rat.'
</tr>';
}
}
?>
</tbody>
</table>
</div>
<?php <?php
/* On the main KB page print out top and latest articles if needed */ /* On the main KB page print out top and latest articles if needed */
@ -626,6 +601,5 @@ function hesk_show_kb_category($catid, $is_search = 0) {
/* Get list of latest articles */ /* Get list of latest articles */
hesk_kbLatestArticles($hesk_settings['kb_latest'], 0); hesk_kbLatestArticles($hesk_settings['kb_latest'], 0);
} }
} // END hesk_show_kb_category() } // END hesk_show_kb_category()
?> ?>

@ -22,8 +22,9 @@ $hesklang['_COLLATE']='utf8_unicode_ci';
$hesklang['EMAIL_HR']='------ Reply above this line ------'; $hesklang['EMAIL_HR']='------ Reply above this line ------';
// ADDED OR MODIFIED IN Mods for HESK 2.2.1 // ADDED OR MODIFIED IN Mods for HESK 2.2.1
$hesklang['popart_no_colon']='Top Knowledgebase Articles'; $hesklang['popart_no_colon']='Top Knowledgebase Articles'; // same as $hesklang['popart'] but without a colon (:)
$hesklang['latart_no_colon']='Latest Knowledgebase Articles'; $hesklang['latart_no_colon']='Latest Knowledgebase Articles'; // same as $hesklang['latart'] but without a colon (:)
$hesklang['ac_no_colon']='Articles in this Category'; // same as $hesklang['ac'] but without a colon (:)
// ADDED OR MODIFIED IN Mods for HESK 2.2.0 // ADDED OR MODIFIED IN Mods for HESK 2.2.0
$hesklang['email_templates'] = 'Email templates'; $hesklang['email_templates'] = 'Email templates';

Loading…
Cancel
Save