'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 = '