'blocks_stories_block2', 'func_edit' => 'blocks_stories_select2', 'func_update' => 'blocks_stories_update2', 'text_type' => 'Stories', 'text_type_long' => 'Story Titles', 'allow_multiple' => true, 'form_content' => false, 'form_refresh' => false, 'show_preview' => true ); pnSecAddSchema('Stories11block::', 'Block title::'); function blocks_stories_block2($row) { list($dbconn) = pnDBGetConn(); $pntable = pnDBGetTables(); $currentlang = pnUserGetLang(); if (!pnSecAuthAction(0, 'Storie11sblock::', "$row[title]::", ACCESS_READ)) { return; } // Break out options from our content field $vars = pnBlockVarsFromContent($row['content']); // Defaults if (!isset($vars['storiestype'])) { $vars['storiestype'] = 2; } if (!isset($vars['topic'])) { $vars['topic'] = 11; } if (!isset($vars['category'])) { $vars['category'] = -1; } if (!isset($vars['limit'])) { $vars['limit'] = 10; } $row['content'] = ""; $query_started = false; // Base query $storiescolumn = $pntable['stories_column']; $storiescatcolumn= $pntable['stories_cat_column']; $topicscolumn = $pntable['topics_column']; $query = "SELECT $storiescolumn[aid] AS \"aid\", $storiescolumn[catid] AS \"cid\", $storiescatcolumn[title] AS \"cattitle\", $storiescolumn[sid] AS \"sid\", $topicscolumn[topicid] AS \"tid\", $storiescolumn[time] AS \"time\", $storiescolumn[title] AS \"title\", $topicscolumn[topicname] AS \"topicname\" FROM $pntable[stories]"; // Assume mysql start $query .= " LEFT JOIN $pntable[stories_cat] ON $storiescolumn[catid] = $storiescatcolumn[catid] LEFT JOIN $pntable[topics] ON $storiescolumn[topic] = $topicscolumn[topicid]"; // Assume mysql end $query .= " WHERE"; // check language if (pnConfigGetVar('multilingual') == 1) { $query_started = true; $query .= " ($storiescolumn[alanguage]='" . pnUserGetLang() . "' OR $storiescolumn[alanguage]='')"; } // Qualifier for front-page/not front-page news // storiestype = 3 - front-page news // storiestype = 1 - not front-page news // storiestype = 2 - all news if ($vars['storiestype'] != 2) { // where clause already started? if ($query_started == true) { $query .= " AND"; } $query_started = true; $query .= " $storiescolumn[ihome]=" . pnVarPrepForStore($vars['storiestype']); } // Qualifier for particular topic // topic = -1 - all topics? if ($vars['topic'] != -1) { // where clause already started? if ($query_started == true) { $query .= " AND"; } $query_started = true; $query .= " $storiescolumn[topic]=" . pnVarPrepForStore($vars['topic']); } // Qualifier for particular category // category = -1 - all categories if ($vars['category'] != -1) { // where clause already started? if ($query_started = true) { $query .= " AND"; } $query .= " $storiescolumn[cid]=" . pnVarPrepForStore($vars['category']); } // Qualifier for how many stories $query .= " ORDER BY $storiescolumn[time] DESC"; $result = $dbconn->SelectLimit($query, pnVarPrepForStore($vars['limit'])); while(list($aid, $cid, $cattitle, $sid, $tid, $time, $title, $topicname) = $result->fields) { $time=$result->UnixTimeStamp($time); if(!isset($aid)) { $aid = ''; } if (pnSecAuthAction(0, 'Stories::', "$aid:$cattitle:$sid", ACCESS_READ) && pnSecAuthAction(0, 'Topics::Topic', "$topicname::$tid", ACCESS_READ) ) { $row['content'] .= "" . pnVarPrepForDisplay($title) . " - ".ml_ftime(_DATEBRIEF,$time)." (".pnVarPrepForDisplay($topicname).")
----------------------------
\n"; } $result->MoveNext(); } if (!empty($row['content'])) { return themesideblock($row); } } function blocks_stories_select2($row) { list($dbconn) = pnDBGetConn(); $pntable = pnDBGetTables(); // Break out options from our content field $vars = pnBlockVarsFromContent($row['content']); // Defaults if (empty($vars['storiestype'])) { $vars['storiestype'] = 2; } if (empty($vars['topic'])) { $vars['topic'] = -1; } if (empty($vars['category'])) { $vars['category'] = -1; } if (empty($vars['limit'])) { $vars['limit'] = 10; } $row['content'] = ""; // Which stories to list $output = '' . _STORIESDISPLAYALL . ':'; // Which category $output .= '' . _STORIESCATEGORY . ':"; // Number of stories $output .= '' . _STORIESMAXNUM . ':'; return $output; } function blocks_stories_update2($row) { list($vars['storiestype'], $vars['topic'], $vars['category'], $vars['limit']) = pnVarCleanFromInput('storiestype', 'topic', 'category', 'limit'); $row['content'] = pnBlockVarsToContent($vars); return($row); } ?>