public function q_list($q_list)
{
if (!empty($q_list['qs'])) { // first check it is not an empty list and the feature is turned on
// Collect the question ids of all items in the question list (so we can do this in one DB query)
$postids = array();
foreach ($q_list['qs'] as $question)
{
if (isset($question['raw']['postid']))
$postids[] = $question['raw']['postid'];
}
if (!empty($postids)) {
// Retrieve the content for these questions from the database and put into an array fetching
// the minimal amount of characters needed to determine the string should be shortened or not
$result = qa_db_query_sub('SELECT postid, content, format FROM ^posts WHERE postid IN (#)', $postids);
$postinfo = qa_db_read_all_assoc($result, 'postid');
// Get the regular expression fragment to use for blocked words and the maximum length of content to show
$blockwordspreg = qa_get_block_words_preg();
// Now add the popup to the title for each question
foreach ($q_list['qs'] as $index => $question)
{
if (isset($postinfo[$question['raw']['postid']])) {
$thispost = $postinfo[$question['raw']['postid']];
$text = qa_viewer_html($thispost['content'], $thispost['format'], array('blockwordspreg' => $blockwordspreg));
// Extract image source from content
preg_match_all('/<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]*>/i', $text, $matches);
// If content has image than show it!
if (!empty($matches[0])) {
// assign image to the variable
$image = '<img src="' . $matches[1][0] . '" alt="image" class="q-list-image" max-width="100%"/>'; // change the size using attr or css
$q_list['qs'][$index]['content'] = $image;
}
}
}
}
}
qa_html_theme_base::q_list($q_list);
}