Note: this list is kept only as a demonstration for CVSNotice. For the latest CVS notices, see the Xaraya and Postnuke sites
View Statistics - Next Notice - Previous NoticeDirectory filter : [ all ] / postnuke_modules / articles [ view in CVS ]
| Date | Directory [filter] | File(s) [view] | Author [filter] |
| 27 Jul 2002 17:23:14 | postnuke_modules/articles | pninit.php,1.14,1.15 pntables.php,1.5,1.6 | Mike |
| rollback to proposed .80 feature set - nuncanada, please check mail from last week | |||
Update of /home/cvsroot/postnuke_modules/articles
In directory ns7.hostnuke.net:/tmp/cvs-serv23669
Modified Files:
pninit.php pntables.php
Log Message:
rollback to proposed .80 feature set - nuncanada, please check mail from last week
Index: pninit.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pninit.php,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** pninit.php 19 Jul 2002 21:45:59 -0000 1.14
--- pninit.php 27 Jul 2002 17:23:12 -0000 1.15
***************
*** 29,63 ****
function articles_init()
{
! $init_functions = Array (
! 'create_articlestable',
! 'create_notestable',
! 'create_workflowtable',
! 'create_textstable',
! 'create_texreltable',
! 'add_cats'
! );
! foreach ($init_functions as $function) {
! $ok = {articles_init_$function} ();
! }
! // Set up module variables
! pnModSetVar('articles', 'itemsperpage', 10);
! pnModSetVar('articles', 'number_of_categories', 2);
! pnModSetVar('articles', 'SupportShortURLs', 0);
! // You cant pass an array to pnModSetVar... But you can serialize it
! // Better right?
! pnModSetVar('articles', 'presetcids', serialize())
! // pnModSetVar('articles', 'newscid', );
! // pnModSetVar('articles', 'sectioncid', );
! // pnModSetVar('articles', 'reviewcid', );
! // pnModSetVar('articles', 'faqcid', );
! // Initialisation successful
! return true;
! }
! // TODO: switch to pnDBCreateTable()
! // AdoDB should take care of that... When will they make it a real abstraction
! // library?
// NOTE: the good thing is, those fields also happen to be mentioned in RFC 1,
--- 29,47 ----
function articles_init()
{
! // Get database information
! list($dbconn) = pnDBGetConn();
! $pntable = pnDBGetTables();
! // TODO: switch to pnDBCreateTable()
! // TODO: add pn_status : e.g. 0 = submitted, 1 = approved, 2 = approved for
! // homepage (=equivalent of old ihome field) to support Add-Story and
! // Submit-News queue equivalents in .80
! // Somewhere in the future, this would be managed by a workflow module.
! // TODO: add pn_notes to support equivalent of editor notes in .80
!
! // TODO: (in interface, queries etc.) allow pn_pubdate to be set at some other
! // date than the current one for equivalent of Add-Story autonews in .80
// NOTE: the good thing is, those fields also happen to be mentioned in RFC 1,
***************
*** 67,84 ****
// for .80, if you ask me...
- // TODO: (in interface, queries etc.) allow pn_pubdate to be set at some other
- // date than the current one for equivalent of Add-Story autonews in .80
- // DONE: pubdate is going to be set as the date after which the article will
- // be avaliable
- // So let�s set in the main page articles SELECT with conditions : wid = 0
- // And pubdate < 'Actual Unix Time'
-
- // NOTICE: No main text in here! It�s gonna be handled in the text table
- function articles_init_create_articlestable ()
- {
- // Get database information
- list($dbconn) = pnDBGetConn();
- $pntable = pnDBGetTables();
-
// Create tables
$articlestable = $pntable['articles'];
--- 51,54 ----
***************
*** 88,160 ****
$articlescolumn[title] TEXT NOT NULL DEFAULT '',
$articlescolumn[summary] TEXT,
$articlescolumn[authorid] INT(11) NOT NULL,
- $articlescolumn[authdate] INT UNSIGNED NOT NULL,
$articlescolumn[pubdate] INT UNSIGNED NOT NULL,
! $articlescolumn[wid] TINYINT UNSIGNED NOT NULL,
! PRIMARY KEY($articlescolumn[aid]))";
! $dbconn->Execute($sql);
!
! // Check database result
! if ($dbconn->ErrorNo() != 0) {
! // Report failed initialisation attempt
! pnSessionSetVar('errormsg', _CREATETABLEFAILED . $dbconn->ErrorMsg());
! return false;
! }
!
! return true;
! }
!
! // TODO: add pn_notes to support equivalent of editor notes in .80
! // DONE: here
! // Fields names are almost identical to the article�s => take care on join
! // Or change the field names?
! function articles_init_create_notestable ()
! {
! // Get database information
! list($dbconn) = pnDBGetConn();
! $pntable = pnDBGetTables();
!
! // Create tables
! $articlesnotestable = $pntable['articles_notes'];
! $artnotescolumn = &$pntable['articles_notes_column'];
! $sql = "CREATE TABLE $articlesnotestable (
! $artnotescolumn[nid] INT(10) NOT NULL AUTO_INCREMENT,
! $artnotescolumn[aid] INT(10) NOT NULL,
! $artnotescolumn[authorid] INT(10) NOT NULL,
! $artnotescolumn[text] TINYTEXT,
! $artnotescolumn[pubdate] INT UNSIGNED NOT NULL,
! PRIMARY KEY($artnotescolumn[nid]))";
! $dbconn->Execute($sql);
!
! // Check database result
! if ($dbconn->ErrorNo() != 0) {
! // Report failed initialisation attempt
! pnSessionSetVar('errormsg', _CREATETABLEFAILED . $dbconn->ErrorMsg());
! return false;
! }
! }
!
! // TODO: add pn_status : e.g. 0 = submitted, 1 = approved, 2 = approved for
! // homepage (=equivalent of old ihome field) to support Add-Story and
! // Submit-News queue equivalents in .80
! // Somewhere in the future, this would be managed by a workflow module.
! // From Nuncanada : Let�s change it to match a simple workflow already.
! // 0= approved for homepage, > 0 means its inside the workflow
!
! function articles_init_create_workflowtable ()
! {
! // Get database information
! list($dbconn) = pnDBGetConn();
! $pntable = pnDBGetTables();
!
! // Workflow table
! // Table name & Column names
! $articles_workflow = $pntable['articles_workflow'];
! $artworkflowcolumn = &$pntable['articles_wrokflow_column'];
! // Create Table
! $sql = "CREATE TABLE $articles_workflow (
! $artworkflowcolumn[wid] INT(4) NOT NULL,
! $artworkflowcolumn[gid] INT(10) NOT NULL,
! UNIQUE KEY($artworkflowcolumn[wid]))";
$dbconn->Execute($sql);
--- 58,68 ----
$articlescolumn[title] TEXT NOT NULL DEFAULT '',
$articlescolumn[summary] TEXT,
+ $articlescolumn[body] TEXT,
$articlescolumn[authorid] INT(11) NOT NULL,
$articlescolumn[pubdate] INT UNSIGNED NOT NULL,
! $articlescolumn[pubtypeid] INT(4) NOT NULL DEFAULT '1',
! $articlescolumn[pages] INT UNSIGNED NOT NULL,
! $articlescolumn[language] VARCHAR(30) NOT NULL DEFAULT '',
! PRIMARY KEY(pn_aid))";
$dbconn->Execute($sql);
***************
*** 165,192 ****
return false;
}
- }
-
- // This is where the text are stored
- // Language translation should be treated here or thru the translation module???
- // I think it should thru the translation module...
- // Here is where the versioning will be handled too
-
- function articles_init_create_textstable ()
- {
- // Get database information
- list($dbconn) = pnDBGetConn();
- $pntable = pnDBGetTables();
// Create tables
! $articlestextstable = $pntable['articles_texts'];
! $arttextscolumn = &$pntable['articles_texts_column'];
! $sql = "CREATE TABLE $articlestextstable (
! $arttextscolumn[tid] INT(10) NOT NULL AUTO_INCREMENT,
! $arttextscolumn[aid] INT(10) NOT NULL,
! $arttextscolumn[version] TINYINT(3) NOT NULL UNSIGNED,
! $arttextscolumn[authorid] INT(10) NOT NULL,
! $arttextscolumn[date] INT UNSIGNED NOT NULL,
! $arttextscolumn[text] TEXT
! PRIMARY KEY($arttextscolumn[tid]))";
$dbconn->Execute($sql);
--- 73,85 ----
return false;
}
// Create tables
! $pubtypestable = $pntable['publication_types'];
! $pubtypescolumn = &$pntable['publication_types_column'];
! $sql = "CREATE TABLE $pubtypestable (
! $pubtypescolumn[pubtypeid] INT(4) NOT NULL AUTO_INCREMENT,
! $pubtypescolumn[pubtypename] VARCHAR(30) NOT NULL,
! $pubtypescolumn[pubtypedescr] VARCHAR(255) NOT NULL DEFAULT '',
! PRIMARY KEY(pn_pubtypeid))";
$dbconn->Execute($sql);
***************
*** 197,286 ****
return false;
}
- }
-
- // I want to make the versioning relationship able to handle
- // situations as complex as possible, like article�s splitting
- // or grouping
- // So categories wont work... As it is a 1 parent to N children (hierarchical)
- // We need N parents to N children (non-hierarchical)...
- function articles_init_create_texreltable ()
- {
- // Get database information
- list($dbconn) = pnDBGetConn();
- $pntable = pnDBGetTables();
-
- // Create tables
- $arttexreltable = $pntable['articles_texrel'];
- $arttexrelcolumn = &$pntable['articles_texrel_column'];
- $sql = "CREATE TABLE $arttexreltable (
- $arttexrelcolumn[pid] INT(10) NOT NULL,
- $arttexrelcolumn[tid] INT(10) NOT NULL,
- INDEX $arttexrelcolumn[tid] ($arttexrelcolumn[tid])
- INDEX $arttexrelcolumn[pid] ($arttexrelcolumn[pid]))";
- $dbconn->Execute($sql);
-
- // Check database result
- if ($dbconn->ErrorNo() != 0) {
- // Report failed initialisation attempt
- pnSessionSetVar('errormsg', _CREATETABLEFAILED . $dbconn->ErrorMsg());
- return false;
- }
- }
-
// TODO: refine according to RFC 1
! // I would create them as categories inside something like Documents
! // Or PostNuke�s core category.
! function articles_init_add_cats ()
! {
$values = array(
! array('news', 'News Articles'),
! array('section', 'Section Documents'),
! array('review', 'Reviews'),
! array('faq', 'Frequently Asked Questions')
);
- // TODO: Add exception handling
-
- pnModAPILoad('categories','admin');
-
- $pubcid = pnModAPIFunc('categories',
- 'admin',
- 'create',
- Array('name' => 'Publication Types',
- 'description' => 'Old PHP-Nuke�s modules of content',
- 'image' => '',
- 'parent_id' => pnConfigGetVar('globalcid')
- ));
-
- pnModSetVar('articles', 'pubcid', $pubcid);
-
- $cids = Array ();
foreach ($values as $value) {
! list($name,$descr) = $value;
! $cids[] = pnModAPIFunc('categories',
! 'admin',
! 'create',
! Array('name' => $name,
! 'description' => $descr,
! 'image' => '',
! 'parent_id' => $pubcid
! ));
}
- }
! // I think Publication Types are an PHP-Nuke artefact
! // With the categorization and having a module to change templates
! // for each category, they are superfluous
!
! /*
! // Create tables
! $pubtypestable = $pntable['publication_types'];
! $pubtypescolumn = &$pntable['publication_types_column'];
! $sql = "CREATE TABLE $pubtypestable (
! $pubtypescolumn[pubtypeid] INT(4) NOT NULL AUTO_INCREMENT,
! $pubtypescolumn[pubtypename] VARCHAR(30) NOT NULL,
! $pubtypescolumn[pubtypedescr] VARCHAR(255) NOT NULL DEFAULT '',
! PRIMARY KEY(pn_pubtypeid))";
$dbconn->Execute($sql);
--- 90,128 ----
return false;
}
// TODO: refine according to RFC 1
!
$values = array(
! array(1, 'news', 'News Articles'),
! array(2, 'section', 'Section Documents'),
! array(3, 'review', 'Reviews'),
! array(4, 'faq', 'Frequently Asked Questions'),
);
foreach ($values as $value) {
! list($id,$name,$descr) = $value;
! $sql = "INSERT INTO $pubtypestable
! (pn_pubtypeid, pn_pubtypename, pn_pubtypedescr)
! VALUES ($id, '$name', '$descr')";
! $dbconn->Execute($sql);
!
! // Check database result
! if ($dbconn->ErrorNo() != 0) {
! pnSessionSetVar('errormsg', _CREATETABLEFAILED . $dbconn->ErrorMsg());
! // Report failed initialisation attempt
! return false;
! }
}
! // TODO: the following tables are unused (cfr. RFC 1 for more generic approach)
!
! $articlespagestable = $pntable['articles_pages'];
! $articlespagescolumn = &$pntable['articles_pages_column'];
! $sql = "CREATE TABLE $articlespagestable (
! $articlespagescolumn[pid] INT(4) NOT NULL AUTO_INCREMENT,
! $articlespagescolumn[aid] INT(10) NOT NULL,
! $articlespagescolumn[page] INT(4) NOT NULL,
! $articlespagescolumn[body] TEXT NOT NULL,
! PRIMARY KEY(pn_pid))";
$dbconn->Execute($sql);
***************
*** 291,299 ****
return false;
}
- */
- // I dont think this is the right place to handle this
- // There should be a 'image' module?
- /*
$articlesimagestable = $pntable['articles_images'];
$articlesimagescolumn = &$pntable['articles_images_column'];
--- 133,137 ----
***************
*** 311,316 ****
return false;
}
- */
/**
--- 149,161 ----
return false;
}
+ // Set up module variables
+ pnModSetVar('articles', 'itemsperpage', 10);
+ pnModSetVar('articles', 'number_of_categories', 2);
+ pnModSetVar('articles', 'SupportShortURLs', 0);
+
+ // Initialisation successful
+ return true;
+ }
/**
***************
*** 383,389 ****
break;
! case 1.1:
// Code to upgrade from version 2.0 goes here
-
break;
case 2.5:
--- 228,233 ----
break;
! case 2.0:
// Code to upgrade from version 2.0 goes here
break;
case 2.5:
Index: pntables.php
===================================================================
RCS file: /home/cvsroot/postnuke_modules/articles/pntables.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** pntables.php 19 Jul 2002 21:45:59 -0000 1.5
--- pntables.php 27 Jul 2002 17:23:12 -0000 1.6
***************
*** 36,132 ****
// Column names
! // Not text column here...
! // Let text have it�s own specialized table, where we can
! // have better versioning/workflow
! $pntable['articles_column'] = array('aid' => $articles . '.pn_aid',
! 'title' => $articles . '.pn_title',
! 'summary' => $articles . '.pn_summary',
! 'authorid' => $articles . '.pn_authorid',
! // Date the article was created
! 'date' => $articles . '.pn_date',
! // Where in the workflow tree
! // this article is stuck at.
! // 0 => published
! // Higher means inside the hierarchy
! 'wid' => $articles . '.pn_wid'
! );
!
!
! // Add flexible notes...
! // Everyone with right perms can add a note...
!
! // Name for articles database entities
! $articles_notes = pnConfigGetVar('prefix') . '_articles_notes';
! // Table name
! $pntable['articles_notes'] = $articles_notes;
! // Column names
! $pntable['articles_notes_column'] = array('nid' => $articles_notes . '.pn_nid',
! 'aid' => $articles_notes . '.pn_aid',
! 'authorid' => $articles_notes . '.pn_authorid',
! 'date' => $articles_notes . '.pn_date',
! 'text' => $articles_notes . '.pn_text'
! );
!
! // Workflow table
!
! // Name for articles database entities
! $articles_workflow = pnConfigGetVar('prefix') . '_articles_workflow';
! // Table name
! $pntable['articles_workflow'] = $articles_workflow;
! // Column names
! $pntable['articles_workflow_column'] = array(
! // Workflow ID will be reverse
! // 1 => the latest before publishing
! // How higher the nearer to the
! // start in the workflow tree
! 'wid' => $articles_notes . '.pn_tid',
! // Group ID feeded from the groups_module
! 'gid' => $articles_notes . '.pn_gid'
! );
!
!
! // Flexible queue... We need a workflow builder
! // Translation queue ... A special queue as option in the workflow builder
!
! // Area to introduce the actual text should be handled
! // by an editor mechanism... (An standard one, that should
! // be used to translate the text too)
! // Name for articles database entities
! $articles_notes = pnConfigGetVar('prefix') . '_articles_texts';
! // Table name
! $pntable['articles_texts'] = $articles_notes;
! // Column names
! $pntable['articles_texts_column'] = array('tid' => $articles_texts . '.pn_tid',
! // The article�s ID
! 'aid' => $articles_texts . '.pn_aid',
! // Automatic Versioning
! 'version' => $articles_texts . '.pn_version',
! // Foreign User ID
! 'authorid' => $articles_texts . '.pn_authorid',
! // date of insertion in the database
! 'date' => $articles_texts . '.pn_date',
! // The article�s text
! 'text' => $articles_texts . '.pn_text'
! );
!
! // Name for articles database entities
! $articles_texrel = pnConfigGetVar('prefix') . '_articles_texrel';
! // Table name
! $pntable['articles_texrel'] = $articles_texrel;
! // Column names for Texts Relationships
! $pntable['articles_texrel_column'] = array('tid' => $articles_texrel . '.pn_tid',
! 'pid' => $articles_texrel . '.pn_pid'
! );
!
! //Note to mikespub:
! // Are these pubtypes really necessary or superfluous?
! // I think they are just PHPNuke�s scheme heritage,
! // They dont add any actual useful information about
! // the articles/news or review�s article or section�s article
- // Now we can categorize these the way we want, and we will be able to
- // chage the template depending on category -> Different templates
- // for Reviews/Articles/News/Section
-
// Name for publication types table
$publicationtypes = pnConfigGetVar('prefix') . '_publication_types';
--- 36,49 ----
// Column names
! $pntable['articles_column'] = array('aid' => $articles . '.pn_aid',
! 'title' => $articles . '.pn_title',
! 'summary' => $articles . '.pn_summary',
! 'authorid' => $articles . '.pn_authorid',
! 'pubdate' => $articles . '.pn_pubdate',
! 'pubtypeid' => $articles . '.pn_pubtypeid',
! 'pages' => $articles . '.pn_pages',
! 'body' => $articles . '.pn_body',
! 'language' => $articles . '.pn_language');
// Name for publication types table
$publicationtypes = pnConfigGetVar('prefix') . '_publication_types';
***************
*** 142,151 ****
// TODO: the following tables are unused (cfr. RFC 1 for more generic approach)
! // People still want a paging mechanism!
! // Let�s redo all of it but keep the feature...
! // Probably having in the editing mechanism a <page> tag?
! // Now that we are going to have a versioning of the text, having
! // pages separated in the database will lead to a big mess/bad useability
! /*
// Name for articles database pages
$articlespages = pnConfigGetVar('prefix') . '_articles_pages';
--- 59,63 ----
// TODO: the following tables are unused (cfr. RFC 1 for more generic approach)
!
// Name for articles database pages
$articlespages = pnConfigGetVar('prefix') . '_articles_pages';
***************
*** 160,168 ****
'body' => $articlespages . '.pn_body');
! */
! // This shouldn�t be handled this way...
! // RFC-1 suggests having metatypes which can be refered to, and
! // having some nice way to implement them into a template.
! /*
// Name for articles database images
$articlesimages = pnConfigGetVar('prefix') . '_articles_images';
--- 72,76 ----
'body' => $articlespages . '.pn_body');
!
// Name for articles database images
$articlesimages = pnConfigGetVar('prefix') . '_articles_images';
***************
*** 176,180 ****
'image' => $articlesimages . '.pn_image');
! */
// Return table information
return $pntable;
--- 84,88 ----
'image' => $articlesimages . '.pn_image');
!
// Return table information
return $pntable;
View Statistics - Next Notice - Previous Notice
| Visit Developer Site - Browse CVS Repository |
Syndicate via backend.rss (max. once per hour please) | Powered by CVSNotice 0.1.3 |