} // build up the tag links $taglinks = "<div class=\"taglist hide\" id=\"tag_" . $nodeid . "\">\n"; $tagCount = 0; if (!empty($node['taglist'])) { $node['taglist'] = explode(',', $node['taglist']); $tagCount = count($node['taglist']); foreach ($node['taglist'] as $tagtext) { $tagid = $tags[$tagtext]; $taglinks .= "<div class=\"h-margin-top-s\"><a href=\"#\" onclick=\"js_cms_showtags('" . $tagid . "', 0);\">{$tagtext}</a></div>"; } } $taglinks .= "<a href=\"#\" onclick=\"js_cms_showtags({$nodeid}, -1)\"" . $icon['big_x'] . "></a>"; $taglinks .= "</div>"; $taglinks = "<a id=\"tagcount_" . $nodeid . "\" href=\"#\" onclick=\"js_cms_showtags({$nodeid}, 1);\" data-tags=\"" . $node['taglist'] . "\">" . $tagCount . "</a>" . $taglinks; $url = vB5_Route::buildURL($node['routeid'] . '|fullurl', $node, array()); $cell = array(); // checkbox, title, contenttype, categories, ... $cell[] = "<input type=\"checkbox\" name=\"select_node[" . $nodeid . "]\" id=\"select_" . $nodeid . "\" onchange=\"js_cms_select_node(" . $nodeid . ");\"/>"; // the phrase content_link_date_by doesn't have a space before the "by", so we insert it if a valid date is // to be inserted. If it's unpublished (publishdate = 0), we skip the date. $publishdate = $node['publishdate'] > 0 ? vbdate($dateFormat, $node['publishdate']) . ' ' : ''; $cell[] = construct_phrase($vbphrase['content_link_date_by'], $url, $node['htmltitle'], $publishdate, $node['authorname']); $cell[] = $contentTypes_id_class[$node['contenttypeid']]; // articles and static pages do not have distinct contenttypes. $cell[] = $channelInfoArray[$node['parentid']]['title']; // tags, status, permissionpreview, ... $cell[] = $taglinks; $cell[] = $node['showpublished'] ? $vbphrase['yes'] : $vbphrase['no']; $cell[] = $node['public_preview'] ? $vbphrase['yes'] : $vbphrase['no']; // todo make it an icon