Skip to content

Commit

Permalink
MDL-5875 forum: Option to display post word count
Browse files Browse the repository at this point in the history
  • Loading branch information
Frederic Massart committed Feb 11, 2013
1 parent 6319737 commit 506522d
Show file tree
Hide file tree
Showing 11 changed files with 48 additions and 17 deletions.
2 changes: 1 addition & 1 deletion mod/forum/backup/moodle2/backup_forum_stepslib.php
Expand Up @@ -44,7 +44,7 @@ protected function define_structure() {
'maxbytes', 'maxattachments', 'forcesubscribe', 'trackingtype',
'rsstype', 'rssarticles', 'timemodified', 'warnafter',
'blockafter', 'blockperiod', 'completiondiscussions', 'completionreplies',
'completionposts'));
'completionposts', 'displaywordcount'));

$discussions = new backup_nested_element('discussions');

Expand Down
3 changes: 2 additions & 1 deletion mod/forum/db/install.xml 100644 → 100755
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="mod/forum/db" VERSION="20120122" COMMENT="XMLDB file for Moodle mod/forum"
<XMLDB PATH="mod/forum/db" VERSION="20130205" COMMENT="XMLDB file for Moodle mod/forum"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd"
>
Expand Down Expand Up @@ -29,6 +29,7 @@
<FIELD NAME="completiondiscussions" TYPE="int" LENGTH="9" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Nonzero if a certain number of posts are required to mark this forum completed for a user."/>
<FIELD NAME="completionreplies" TYPE="int" LENGTH="9" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Nonzero if a certain number of replies are required to mark this forum complete for a user."/>
<FIELD NAME="completionposts" TYPE="int" LENGTH="9" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Nonzero if a certain number of posts or replies (total) are required to mark this forum complete for a user."/>
<FIELD NAME="displaywordcount" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
Expand Down
28 changes: 21 additions & 7 deletions mod/forum/db/upgrade.php
Expand Up @@ -44,19 +44,33 @@
function xmldb_forum_upgrade($oldversion) {
global $CFG, $DB, $OUTPUT;

$dbman = $DB->get_manager(); // loads ddl manager and xmldb classes
$dbman = $DB->get_manager(); // Loads ddl manager and xmldb classes.

// Moodle v2.2.0 release upgrade line.
// Put any upgrade step following this.

// Moodle v2.2.0 release upgrade line
// Put any upgrade step following this
// Moodle v2.3.0 release upgrade line.
// Put any upgrade step following this.

// Moodle v2.3.0 release upgrade line
// Put any upgrade step following this
// Moodle v2.4.0 release upgrade line.
// Put any upgrade step following this.

// Moodle v2.5.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2013020500) {

// Moodle v2.4.0 release upgrade line
// Put any upgrade step following this
// Define field displaywordcount to be added to forum.
$table = new xmldb_table('forum');
$field = new xmldb_field('displaywordcount', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0', 'completionposts');

// Conditionally launch add field displaywordcount.
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}

// Forum savepoint reached.
upgrade_mod_savepoint(true, 2013020500, 'forum');
}

return true;
}
Expand Down
2 changes: 2 additions & 0 deletions mod/forum/lang/en/forum.php
Expand Up @@ -135,6 +135,8 @@
$string['displayperiod'] = 'Display period';
$string['displaystart'] = 'Display start';
$string['displaystart_help'] = 'This setting specifies whether a forum post should be displayed from a certain date. Note that administrators can always view forum posts.';
$string['displaywordcount'] = 'Display word count';
$string['displaywordcount_help'] = 'This setting specifies whether the word count of each post should be displayed or not.';
$string['eachuserforum'] = 'Each person posts one discussion';
$string['edit'] = 'Edit';
$string['editedby'] = 'Edited by {$a->name} - original submission {$a->date}';
Expand Down
8 changes: 7 additions & 1 deletion mod/forum/lib.php
Expand Up @@ -3451,16 +3451,22 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa
$postclass = 'shortenedpost';
$postcontent = format_text(forum_shorten_post($post->message), $post->messageformat, $options, $course->id);
$postcontent .= html_writer::link($discussionlink, get_string('readtherest', 'forum'));
$postcontent .= html_writer::tag('span', '('.get_string('numwords', 'moodle', count_words(strip_tags($post->message))).')...', array('class'=>'post-word-count'));
$postcontent .= html_writer::tag('div', '('.get_string('numwords', 'moodle', count_words($post->message)).')',
array('class'=>'post-word-count'));
} else {
// Prepare whole post
$postclass = 'fullpost';
$postcontent = format_text($post->message, $post->messageformat, $options, $course->id);
if (!empty($highlight)) {
$postcontent = highlight($highlight, $postcontent);
}
if (!empty($forum->displaywordcount)) {
$postcontent .= html_writer::tag('div', get_string('numwords', 'moodle', count_words($post->message)),
array('class'=>'post-word-count'));
}
$postcontent .= html_writer::tag('div', $attachedimages, array('class'=>'attachedimages'));
}

// Output the post content
$output .= html_writer::tag('div', $postcontent, array('class'=>'posting '.$postclass));
$output .= html_writer::end_tag('div'); // Content
Expand Down
5 changes: 5 additions & 0 deletions mod/forum/mod_form.php
Expand Up @@ -82,6 +82,11 @@ function definition() {
$mform->addHelpButton('maxattachments', 'maxattachments', 'forum');
$mform->setDefault('maxattachments', $CFG->forum_maxattachments);

$mform->addElement('selectyesno', 'displaywordcount', get_string('displaywordcount', 'forum'));
$mform->addHelpButton('displaywordcount', 'displaywordcount', 'forum');
$mform->setDefault('displaywordcount', 0);
$mform->setAdvanced('displaywordcount');

if ($CFG->enablerssfeeds && isset($CFG->forum_enablerssfeeds) && $CFG->forum_enablerssfeeds) {
//-------------------------------------------------------------------------------
$mform->addElement('header', '', get_string('rss'));
Expand Down
3 changes: 3 additions & 0 deletions mod/forum/styles.css
Expand Up @@ -19,6 +19,7 @@
* div.left
* div.options
* div.commands
* div.post-word-count
* div.forum-post-rating
* div.link
* div.footer
Expand All @@ -40,6 +41,8 @@
.forumpost .options .forum-post-rating {float:left;}
.forumpost .content .posting {overflow:auto;max-width:100%;}
.forumpost .content .attachedimages img {max-width:100%;}
.forumpost .post-word-count { font-size: .85em; font-style: italic; }
.forumpost .shortenedpost .post-word-count { display: inline; padding: 0 .3em; }

.dir-rtl .forumpost .row .topic,
.dir-rtl .forumpost .row .content-mask,
Expand Down
4 changes: 2 additions & 2 deletions mod/forum/version.php
Expand Up @@ -25,7 +25,7 @@

defined('MOODLE_INTERNAL') || die();

$module->version = 2012112902; // The current module version (Date: YYYYMMDDXX)
$module->requires = 2012112900; // Requires this Moodle version
$module->version = 2013020500; // The current module version (Date: YYYYMMDDXX)
$module->requires = 2012112900; // Requires this Moodle version
$module->component = 'mod_forum'; // Full name of the plugin (used for diagnostics)
$module->cron = 60;
4 changes: 2 additions & 2 deletions theme/anomaly/style/general.css
Expand Up @@ -465,7 +465,7 @@ h2.tagline {
padding-right: 10px;
}
.forumpost .content .shortenedpost a,
.forumpost .content .shortenedpost span.post-word-count,
.forumpost .content .post-word-count,
.forumpost .commands,
.forumpost .topic .author,
.forumpost .options .link {
Expand Down Expand Up @@ -710,4 +710,4 @@ h2.tagline {
#adminsettings .form-buttons {
margin: 0;
text-align: center;
}
}
4 changes: 2 additions & 2 deletions theme/standard/style/modules.css
Expand Up @@ -80,8 +80,8 @@ table.mod_index {width:90%;margin:1em auto;}
.forumpost.firstpost .row.header {background-color:#DDD;}
.forumpost .topic .author {font-size: 0.8em;padding:4px;}
.forumpost .topic .subject {font-weight: bold;padding:4px 4px 0;}
.forumpost .content div,
.forumpost .options div {padding:4px;}
.forumpost .content > div,
.forumpost .options > div {padding:4px;}
.forumpost.unread {background: #9EBEFF;}
.forumpost.unread .content {border:2px solid #0046C7;} /** inside border of unread posts in nested format in */
.forumpost .comment-ctrl,
Expand Down
2 changes: 1 addition & 1 deletion version.php
Expand Up @@ -30,7 +30,7 @@
defined('MOODLE_INTERNAL') || die();


$version = 2013020800.00; // YYYYMMDD = weekly release date of this DEV branch
$version = 2013020800.01; // YYYYMMDD = weekly release date of this DEV branch
// RR = release increments - 00 in DEV branches
// .XX = incremental changes

Expand Down

0 comments on commit 506522d

Please sign in to comment.