diff -urp blogger.old/blogger.module blogger/blogger.module --- blogger.old/blogger.module 2009-04-08 14:13:15.000000000 +0200 +++ blogger/blogger.module 2009-04-14 13:45:43.000000000 +0200 @@ -12,17 +12,19 @@ function blogger_help($section) { switch ($section) { case 'admin/help#blogger': - $output = '

'. t('The Blogger module displays a list of bloggers.') .'

'; - $output .= t("

You can configure:" - ."

" - ."

"); + $output = '

'. t('The Blogger module displays a list of bloggers.') .'

'; + $output .= t( + "

You can configure:" + ."

" + ."

" + ); return $output; case 'admin/modules#description': return t('Displays list of bloggers.'); @@ -39,7 +41,7 @@ function blogger_perm() { function blogger_admin_settings() { // only administrators can access this function - + // Generate the form - settings applying to all patterns first $form['blogger_settings'] = array( '#type' => 'fieldset', @@ -48,37 +50,52 @@ function blogger_admin_settings() { '#collapsible' => TRUE, '#collapsed' => FALSE ); - + $form['blogger_settings']['blogger_maxdisp'] = array( '#type' => 'textfield', '#title' => t('Maximum number of bloggers'), - '#default_value' => variable_get('blogger_maxdisp', 10), - '#description' => t("The maximum number of bloggers to display in the block."), - '#maxlength' => '5', '#size' => '5'); - + '#default_value' => variable_get('blogger_maxdisp', 10), + '#description' => t('The maximum number of bloggers to display in the block.'), + '#maxlength' => '5', + '#size' => '5' + ); + $form['blogger_settings']['blogger_shownum'] = array( '#type' => 'checkbox', '#title' => t('Show number of written blogs.'), - '#default_value' => variable_get('blogger_shownum', 0), - '#description' => t("Display how many blogs has been written, i.e: Samuel(7), Linda(10)."), - '#maxlength' => '1', '#size' => '1'); - + '#default_value' => variable_get('blogger_shownum', 0), + '#description' => t('Display how many blogs has been written, i.e: Samuel(7), Linda(10).'), + '#maxlength' => '1', + '#size' => '1' + ); + $form['blogger_settings']['blogger_order'] = array( '#type' => 'radios', '#title' => t('Order by'), - '#default_value' => variable_get('blogger_order', 0), - '#options' => array(t('none'), t('Name'), - t('Blog Count'), t('Date'), t('Random')), - '#description' => t("Order by none, Name or Numbers of blogs.") - ); - + '#default_value' => variable_get('blogger_order', 0), + '#options' => array( + t('none'), + t('Name'), + t('Blog Count'), + t('Date (created)'), + t('Random'), + t('Date (changed)'), + ), + '#description' => t('Order by none, Name or Numbers of blogs.') + ); + $form['blogger_settings']['blogger_case'] = array( '#type' => 'select', '#title' => t('Case format'), - '#default_value' => variable_get('blogger_case', 0), - '#options' => array(t('None'), t('Smallcase'), t('Uppercase'), t('Wordcase')), - '#description' => t("Change case format of the blogger's name.") - ); + '#default_value' => variable_get('blogger_case', 0), + '#options' => array( + t('None'), + t('Smallcase'), + t('Uppercase'), + t('Wordcase') + ), + '#description' => t('Change case format of the blogger\'s name.') + ); $form['blogger_settings_advanced'] = array( '#type' => 'fieldset', @@ -87,20 +104,22 @@ function blogger_admin_settings() { '#collapsible' => TRUE, '#collapsed' => TRUE ); - + $form['blogger_settings_advanced']['blogger_on_blog_only'] = array( '#type' => 'checkbox', '#title' => t('Show Blogger module when content type is blog only.'), - '#default_value' => variable_get('blogger_on_blog_only', 0), - '#description' => t("Show Blogger module when content type is blog only, otherwise hide this module."), - '#maxlength' => '1', '#size' => '1'); - + '#default_value' => variable_get('blogger_on_blog_only', 0), + '#description' => t("Show Blogger module when content type is blog only, otherwise hide this module."), + '#maxlength' => '1', '#size' => '1' + ); + $form['blogger_settings_advanced']['blogger_exclude'] = array( '#type' => 'textfield', '#title' => t('Exlude these UIDs'), - '#default_value' => variable_get('blogger_exclude', "'0'"), - '#description' => t("Exclude any UIDs, i.e to exlude user with UID 5 and 7: '5','7'
CAUTION: to display all blogger don't make this field blank, instead fill with: '0'")); - + '#default_value' => variable_get('blogger_exclude', "'0'"), + '#description' => t("Exclude any UIDs, i.e to exlude user with UID 5 and 7: '5','7'
CAUTION: to display all blogger don't make this field blank, instead fill with: '0'") + ); + $form['blogger_settings_avatar'] = array( '#type' => 'fieldset', '#weight' => -10, @@ -108,27 +127,34 @@ function blogger_admin_settings() { '#collapsible' => TRUE, '#collapsed' => TRUE ); - + $form['blogger_settings_avatar']['blogger_avatar'] = array( '#type' => 'checkbox', '#title' => t('Show blogger\'s avatar.'), - '#default_value' => variable_get('blogger_avatar', 0), - '#description' => t("Display blogger's avatar. The avatar file will displayed on block and page."), - '#maxlength' => '1', '#size' => '1'); - + '#default_value' => variable_get('blogger_avatar', 0), + '#description' => t('Display blogger\'s avatar. The avatar file will displayed on block and page.'), + '#maxlength' => '1', + '#size' => '1' + ); + $form['blogger_settings_avatar']['blogger_avatar_width'] = array( '#type' => 'textfield', '#title' => t('Avatar width'), - '#default_value' => variable_get('blogger_avatar_width', 20), - '#description' => t("Set avatar width in px. Set to 0 (zero) if you want to use original width. If you want to set 200 px width then just enter 200 (without px). Tip: to keep picture aspect ratio then you can set the width to certain value but set to 0 (zero) the height value."), - '#maxlength' => '5', '#size' => '5'); - + '#default_value' => variable_get('blogger_avatar_width', 20), + '#description' => t('Set avatar width in px. Set to 0 (zero) if you want to use original width. If you want to set 200 px width then just enter 200 (without px). Tip: to keep picture aspect ratio then you can set the width to certain value but set to 0 (zero) the height value.'), + '#maxlength' => '5', + '#size' => '5' + ); + $form['blogger_settings_avatar']['blogger_avatar_height'] = array( '#type' => 'textfield', '#title' => t('Avatar height'), - '#default_value' => variable_get('blogger_avatar_height', 20), + '#default_value' => variable_get('blogger_avatar_height', 20), '#description' => t("Set avatar height in px. Set to 0 (zero) if you want to use original height."), - '#maxlength' => '5', '#size' => '5'); + '#maxlength' => '5', + '#size' => '5' + ); + //return $form; return system_settings_form($form); } @@ -142,23 +168,25 @@ function blogger_menu($may_cache) { // Add main CSS functionality. drupal_add_css(drupal_get_path('module', 'blogger') .'/blogger.css'); $items = array(); - + $items[] = array( - 'path' => 'admin/settings/blogger', - 'title' => t('Blogger'), - 'description' => t('Control how blogger displayed.'), - 'callback' => 'drupal_get_form', - 'callback arguments' => array('blogger_admin_settings'), - 'access' => user_access('administer blogger'), - 'type' => MENU_NORMAL_ITEM); + 'path' => 'admin/settings/blogger', + 'title' => t('Blogger'), + 'description' => t('Control how blogger displayed.'), + 'callback' => 'drupal_get_form', + 'callback arguments' => array('blogger_admin_settings'), + 'access' => user_access('administer blogger'), + 'type' => MENU_NORMAL_ITEM + ); $items[] = array( - 'path' => 'blogger/list', - 'title' => t('Blogger'), - 'callback' => 'blogger_page_list', - 'access' => user_access('access blogger'), - 'type' => MENU_CALLBACK); - + 'path' => 'blogger/list', + 'title' => t('Blogger'), + 'callback' => 'blogger_page_list', + 'access' => user_access('access blogger'), + 'type' => MENU_CALLBACK + ); + return $items; } @@ -168,159 +196,182 @@ function blogger_menu($may_cache) { * Generates blogger block */ function blogger_block($op = 'list', $delta = 0) { - if ($op == 'list') - { + if ($op == 'list') { $blocks[0]['info'] = t('Bloggers'); return $blocks; } - - if ($op == 'view' && user_access('access blogger')) - { - $maxdisp = variable_get("blogger_maxdisp", 10); - $shownum = variable_get("blogger_shownum", 0); - $blogger_order = variable_get("blogger_order", 0); - $blogger_exclude = variable_get("blogger_exclude", "'0'"); - - $blogger_case = variable_get("blogger_case", 0); - $blogger_avatar = variable_get("blogger_avatar", 0); - $blogger_avatar_width = variable_get("blogger_avatar_width", 20); - $blogger_avatar_height = variable_get("blogger_avatar_height", 20); - $blogger_on_blog_only = variable_get("blogger_on_blog_only", 0); - - if ($blogger_on_blog_only) { - if (arg(0) != 'blog') { - if (arg(0) == 'node' && is_numeric(arg(1))) { + + if ($op == 'view' && user_access('access blogger')) { + $maxdisp = variable_get('blogger_maxdisp', 10); + $shownum = variable_get('blogger_shownum', 0); + $blogger_order = variable_get('blogger_order', 0); + $blogger_exclude = variable_get('blogger_exclude', "'0'"); + + $blogger_case = variable_get('blogger_case', 0); + $blogger_avatar = variable_get('blogger_avatar', 0); + $blogger_avatar_width = variable_get('blogger_avatar_width', 20); + $blogger_avatar_height = variable_get('blogger_avatar_height', 20); + $blogger_on_blog_only = variable_get('blogger_on_blog_only', 0); + + if ($blogger_on_blog_only) { + if (arg(0) != 'blog') { + if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); $content_type = $node->type; - if ($content_type!='blog') {return FALSE;} - } else { - return FALSE; - } - } - } - - $sql = " SELECT n.uid, u.name, count(u.name) AS numitems, u.picture " - ." FROM {node} n " - ." INNER JOIN {users} u ON u.uid = n.uid " - ." WHERE n.type = 'blog' and n.status = 1 " - ." and n.uid not in ($blogger_exclude) " - ." GROUP BY n.uid" - .($blogger_order<>0 ? " ORDER BY " : "") - .($blogger_order==1 ? "u.name" : "") - .($blogger_order==2 ? "numitems DESC, u.name" : "") - .($blogger_order==3 ? "n.created DESC, u.name" : "") - .($blogger_order==4 ? "RAND()" : "") - ." LIMIT $maxdisp" - ; - $results = db_query($sql); - - $block_content = '
'; - - if (!db_num_rows($results)) { - $block_content .= 'No blogger'; - $block_content .= '
'; - } else { - - $block_content .= ''; - $i = 0; - while ( $data = db_fetch_object($results) ) { - $i++; - switch ($blogger_case) { - default: - case 0: - break; - case 1: //smallcase - $data->name = strtolower($data->name); - break; - case 2: //uppercase - $data->name = strtoupper($data->name); - break; - case 3: //Wordcase - $data->name = ucwords($data->name); - break; + if ($content_type != 'blog') { + return FALSE; + } + } else { + return FALSE; + } + } + } + + if ($shownum) { + $itemcount = ', COUNT(u.name) AS numitems '; + } + + switch ($blogger_order) { + case '1': + $order_filter = 'u.name'; + break; + case '2': + $order_filter = 'ORDER BY numitems DESC, u.name'; + break; + case '3': + $order_filter = 'n.created DESC, u.name'; + break; + case '4': + $order_filter = 'RAND()'; + break; + case '5': + $order_filter = 'n.changed DESC, u.name'; + break; + } + + if ($order_filter) { + $order_filter = ' ORDER BY '. $order_filter; + } + + $results = db_query(" + SELECT n.uid, u.name, u.picture $itemcount + FROM {node} n + INNER JOIN {users} u ON u.uid = n.uid + WHERE n.type = 'blog' and n.status = 1 AND n.uid NOT IN ($blogger_exclude) + GROUP BY n.uid + %s + LIMIT %d", + $order_filter, $maxdisp + ); + + $block_content = '
'; + + if (!db_num_rows($results)) { + $block_content .= t('No blogger'); + $block_content .= '
'; + } else { + + $block_content .= '
'; + $i = 0; + while ( $data = db_fetch_object($results) ) { + $i++; + switch ($blogger_case) { + default: + case 0: + break; + case 1: //smallcase + $data->name = strtolower($data->name); + break; + case 2: //uppercase + $data->name = strtoupper($data->name); + break; + case 3: //Wordcase + $data->name = ucwords($data->name); + break; + } + $showdata = ($shownum ? $data->name.' ('.$data->numitems.')' : $data->name); + + if ($blogger_avatar AND !empty($data->picture)) { + $blogger_img = base_path() . $data->picture; + $showpict = "0 ? " width=$blogger_avatar_width " : " ") + .($blogger_avatar_height<>0 ? " height=$blogger_avatar_height " : " ") + .">"; + } else { + $showpict = ""; + } + + $block_content .= ''; + if ($blogger_avatar) { + $block_content .= ''; + } + + $block_content .= ''; + $block_content .= ''; + + //$block_content = 'ssadsdsd 123'; } - $showdata = ($shownum ? $data->name.' ('.$data->numitems.')' : $data->name); - - if (($blogger_avatar) AND ($data->picture<>"")) { - $blogger_img = base_path().$data->picture; - $showpict = "0 ? " width=$blogger_avatar_width " : " ") - .($blogger_avatar_height<>0 ? " height=$blogger_avatar_height " : " ") - .">"; - } else { - $showpict = ""; - } - - $block_content .= ''; - if ($blogger_avatar) { - $block_content .= ''; - } - - $block_content .= ''; - $block_content .= ''; - - //$block_content = 'ssadsdsd 123'; + $block_content .= '
0 ? " width=$blogger_avatar_width " : " ").'>'.$showpict.''. l($showdata, "blog/$data->uid").'
0 ? " width=$blogger_avatar_width " : " ").'>'.$showpict.''. l($showdata, "blog/$data->uid").'
'; + $block_content .= ''; + + // add a more link to our page that displays all the links + $block_content .= + ''; + } - $block_content .= ''; - $block_content .= ''; - - // add a more link to our page that displays all the links - $block_content .= - ''; - - } - - $block['subject'] = t('Bloggers'); - $block['content'] = $block_content; + + $block['subject'] = t('Bloggers'); + $block['content'] = $block_content; return $block; } } -function blogger_page_list() -{ - $maxdisp = 25; - $shownum = variable_get("blogger_shownum", 0); +function blogger_page_list() { + $maxdisp = 25; + $shownum = variable_get("blogger_shownum", 0); $blogger_order = variable_get("blogger_order", 0); $blogger_exclude = variable_get("blogger_exclude", "'0'"); - - $blogger_case = variable_get("blogger_case", 0); - $blogger_avatar = variable_get("blogger_avatar", 0); + + $blogger_case = variable_get("blogger_case", 0); + $blogger_avatar = variable_get("blogger_avatar", 0); $blogger_avatar_width = variable_get("blogger_avatar_width", 0); $blogger_avatar_height = variable_get("blogger_avatar_height", 0); - - $sql_counts = " SELECT DISTINCT (u.name)" - ." FROM {users} u" - ." INNER JOIN {node} n ON n.uid=u.uid" - ." WHERE u.name<>'' AND n.type='blog' AND n.status=1" - ; + + $sql_counts = " + SELECT DISTINCT (u.name) + FROM {users} u + INNER JOIN {node} n ON n.uid = u.uid + WHERE u.name <> '' AND n.type = 'blog' AND n.status = 1 + "; + $dse_sql_counts = db_query($sql_counts); $cnt_sql_counts = db_num_rows($dse_sql_counts); $sql_counts = "SELECT $cnt_sql_counts"; - - $sql = " SELECT n.uid, u.name, count(u.name) AS numitems, u.picture, n.title " - ." FROM {node} n " - ." INNER JOIN {users} u ON u.uid = n.uid " - ." WHERE n.type = 'blog' AND n.status=1 " - ." and n.uid not in ($blogger_exclude) " - ." GROUP BY n.uid" - .($blogger_order<>0 ? " ORDER BY " : "") - .($blogger_order==1 ? "u.name" : "") - .($blogger_order==2 ? "numitems DESC, u.name" : "") - .($blogger_order==3 ? "n.created DESC, u.name" : "") - .($blogger_order==4 ? "RAND()" : "") - ; + + $sql = " + SELECT n.uid, u.name, count(u.name) AS numitems, u.picture, n.title + FROM {node} n + INNER JOIN {users} u ON u.uid = n.uid + WHERE n.type = 'blog' AND n.status = 1 AND n.uid NOT IN ($blogger_exclude) + GROUP BY n.uid" + .($blogger_order<>0 ? " ORDER BY " : "") + .($blogger_order==1 ? "u.name" : "") + .($blogger_order==2 ? "numitems DESC, u.name" : "") + .($blogger_order==3 ? "n.created DESC, u.name" : "") + .($blogger_order==4 ? "RAND()" : "") + .($blogger_order==5 ? 'n.changed DESC, u.name': "") + ; $sql = db_rewrite_sql($sql); - + //$results = pager_query($sql, 1, 0, $sql_count, COMMENT_PUBLISHED, $uid, $uid); $results = pager_query($sql, $maxdisp, 0, $sql_counts); - - $i=1; - while ($node = db_fetch_object($results)) { + + $i = 1; + while ($node = db_fetch_object($results)) { //l($node->title, "node/$node->nid") .' '. theme('mark', node_mark($node->nid, $node->changed)), - switch ($blogger_case) - { + switch ($blogger_case) { default: case 0: break; @@ -334,46 +385,59 @@ function blogger_page_list() $node->name = ucwords($node->name); break; } - + //Latest blog - $sql = " SELECT n.title, nid " - ." FROM {node} n " - ." WHERE n.uid = '$node->uid' AND n.type='blog' AND n.status=1" - ." ORDER BY n.created DESC" - ." LIMIT 1" - ; - $latest_blogs = db_query($sql); - $latest_blog = db_fetch_object($latest_blogs); - // - if (($blogger_avatar) AND ($node->picture<>"")) - { - $blogger_img = base_path().$node->picture; - $showpict = "0 ? " width=$blogger_avatar_width " : " ") - .($blogger_avatar_height<>0 ? " height=$blogger_avatar_height " : " ") - .">"; - } - else - { $showpict = ""; } - // - if (!$blogger_avatar) - { + $latest_blog = db_fetch_object( + db_query(" + SELECT n.title, nid + FROM {node} n + WHERE n.uid = %d AND n.type = 'blog' AND n.status = 1 + ORDER BY n.created DESC + LIMIT 1", + $node->uid + ) + ); + + if ($blogger_avatar AND !empty($node->picture)) { + $blogger_img = base_path().$node->picture; + $showpict = "0 ? " width=$blogger_avatar_width " : " ") + .($blogger_avatar_height<>0 ? " height=$blogger_avatar_height " : " ") + .">"; + } else { + $showpict = ''; + } + + if (!$blogger_avatar) { $rows[] = array( - l($node->name, "blog/$node->uid"), + l($node->name, 'blog/'. $node->uid), $node->numitems, - l($latest_blog->title, "node/$latest_blog->nid") + l($latest_blog->title, 'node/'. $latest_blog->nid) ); } else { - $rows[] = array( - l($node->name, "blog/$node->uid"), + $rows[] = array( + l($node->name, 'blog/'. $node->uid), $node->numitems, - l($latest_blog->title, "node/$latest_blog->nid"), - "$showpict" - ); - } + l($latest_blog->title, 'node/'. $latest_blog->nid), + $showpict + ); + } + } + + if (!$blogger_avatar) { + $header = array( + t('Name'), + t('Numbers of Blogs'), + t('Latest Blog') + ); + } else { + $header = array( + t('Name'), + t('Numbers of Blogs'), + t('Latest Blog'), + t('Avatar') + ); } - if (!$blogger_avatar) { $header = array( t('Name'), t('Numbers of Blogs'),t('Latest Blog') ); } - else { $header = array( t('Name'), t('Numbers of Blogs'),t('Latest Blog'), t('Avatar') ); } $output = '
'; $output .= theme('table', $header, $rows); @@ -382,4 +446,3 @@ function blogger_page_list() return $output; } -