]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch 'master' of /var/www/trunk
authorRobin Millette <millette@plantard.controlezvous.ca>
Fri, 23 Jan 2009 07:51:02 +0000 (07:51 +0000)
committerRobin Millette <millette@plantard.controlezvous.ca>
Fri, 23 Jan 2009 07:51:02 +0000 (07:51 +0000)
15 files changed:
actions/avatarsettings.php
actions/facebookhome.php
actions/facebooklogin.php [new file with mode: 0644]
actions/facebooksettings.php
doc/groups [new file with mode: 0644]
doc/help
doc/sms [new file with mode: 0644]
doc/tags [new file with mode: 0644]
htaccess.sample
lib/action.php
lib/facebookaction.php
lib/facebookutil.php
scripts/update_facebook.php
theme/base/css/display.css
theme/default/css/display.css

index 1db35237ed2d3d64eb3e34ce505c1070b1462892..19f53b882850d62e60e74c16b7b398a7c99e620f 100644 (file)
@@ -119,9 +119,8 @@ class AvatarsettingsAction extends AccountSettingsAction
 
         $this->elementStart('ul', 'form_data');
         if ($original) {
-            $this->elementStart('li',
-                                array('id' => 'avatar_original',
-                                      'class' => 'avatar_view'));
+            $this->elementStart('li', array('id' => 'avatar_original',
+                                            'class' => 'avatar_view'));
             $this->element('h2', null, _("Original"));
             $this->elementStart('div', array('id'=>'avatar_original_view'));
             $this->element('img', array('src' => $original->url,
@@ -135,16 +134,16 @@ class AvatarsettingsAction extends AccountSettingsAction
         $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
 
         if ($avatar) {
-            $this->elementStart('li',
-                                array('id' => 'avatar_preview',
-                                      'class' => 'avatar_view'));
+            $this->elementStart('li', array('id' => 'avatar_preview',
+                                            'class' => 'avatar_view'));
             $this->element('h2', null, _("Preview"));
             $this->elementStart('div', array('id'=>'avatar_preview_view'));
-            $this->element('img', array('src' => $original->url,//$avatar->url,
+            $this->element('img', array('src' => $original->url,
                                         'width' => AVATAR_PROFILE_SIZE,
                                         'height' => AVATAR_PROFILE_SIZE,
                                         'alt' => $user->nickname));
             $this->elementEnd('div');
+            $this->elementEnd('li');
         }
 
         $this->elementStart('li', array ('id' => 'settings_attach'));
index b05e51b9114aa6c9c8cc7074bd2722bc5853dda8..9510e7f087db1e97e01a07560e6553ab9f478a99 100644 (file)
@@ -57,29 +57,30 @@ class FacebookhomeAction extends FacebookAction
             $this->user = $this->flink->getUser();
 
             // If this is the first time the user has started the app
-             // prompt for Facebook status update permission
-             if (!$this->facebook->api_client->users_hasAppPermission('status_update')) {
+            // prompt for Facebook status update permission
+            if (!$this->facebook->api_client->users_hasAppPermission('status_update')) {
 
                  if ($this->facebook->api_client->data_getUserPreference(
-                         FACEBOOK_PROMPTED_UPDATE_PREF) != 'true') {
-                     $this->getUpdatePermission();
-                     return;
+                    FACEBOOK_PROMPTED_UPDATE_PREF) != 'true') {
+                        $this->getUpdatePermission();
+                        return;
                  }
              }
 
              // Make sure the user's profile box has the lastest notice
              $notice = $this->user->getCurrentNotice();
-             $this->updateProfileBox($notice);
+             if ($notice) {
+                 $this->updateProfileBox($notice);
+             }
 
-            if ($this->arg('status_submit') == 'Send') {            
+             if ($this->arg('status_submit') == 'Send') {            
                 $this->saveNewNotice();
-            }
+             }
 
             // User is authenticated and has already been prompted once for
             // Facebook status update permission? Then show the main page
             // of the app
             $this->showPage();
-
             
         } else {
 
@@ -201,13 +202,13 @@ class FacebookhomeAction extends FacebookAction
         $this->elementEnd('p');
 
         $this->elementStart('form', array('method' => 'post',
-                                           'action' => $app_url,
+                                           'action' => "$app_url/index.php",
                                            'id' => 'facebook-skip-permissions'));
 
         $this->elementStart('ul', array('id' => 'fb-permissions-list'));
         $this->elementStart('li', array('id' => 'fb-permissions-item'));
         $this->elementStart('fb:prompt-permission', array('perms' => 'status_update',
-            'next_fbjs' => 'document.setLocation(\'' . $this->app_uri . '\')'));
+            'next_fbjs' => 'document.setLocation(\'' . "$this->app_uri/index.php" . '\')'));
         $this->element('span', array('class' => 'facebook-button'),
             sprintf(_('Allow %s to update my Facebook status'), $this->app_name));
         $this->elementEnd('fb:prompt-permission');
diff --git a/actions/facebooklogin.php b/actions/facebooklogin.php
new file mode 100644 (file)
index 0000000..94d494a
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+/*
+ * Laconica - a distributed open-source microblogging tool
+ * Copyright (C) 2008, Controlez-Vous, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.     If not, see <http://www.gnu.org/licenses/>.
+ */
+
+if (!defined('LACONICA')) { exit(1); }
+
+require_once(INSTALLDIR.'/lib/facebookaction.php');
+
+class FacebookinviteAction extends FacebookAction
+{
+
+    function handle($args)
+    {
+        parent::handle($args);
+        
+        $this->error = $error;
+        
+        if ($this->flink) {
+            if (!$this->facebook->api_client->users_hasAppPermission('status_update') &&
+                $this->facebook->api_client->data_getUserPreference(
+                     FACEBOOK_PROMPTED_UPDATE_PREF) == 'true') {
+    
+                echo '<h1>REDIRECT TO HOME</h1>';
+            }
+        } else {   
+            $this->showPage();
+        }
+    }
+
+
+    function showContent()
+    {
+                
+        // If the user has opted not to initially allow the app to have
+        // Facebook status update permission, store that preference. Only
+        // promt the user the first time she uses the app
+        if ($this->arg('skip')) {
+            $this->facebook->api_client->data_setUserPreference(
+                FACEBOOK_PROMPTED_UPDATE_PREF, 'true');
+        }
+
+        if ($this->flink) {
+
+            $this->user = $this->flink->getUser();
+
+            // If this is the first time the user has started the app
+             // prompt for Facebook status update permission
+             if (!$this->facebook->api_client->users_hasAppPermission('status_update')) {
+
+                 if ($this->facebook->api_client->data_getUserPreference(
+                         FACEBOOK_PROMPTED_UPDATE_PREF) != 'true') {
+                     $this->getUpdatePermission();
+                     return;
+                 }
+             }
+            
+        } else {
+            $this->showLoginForm();
+        }
+                
+    }
+
+    function showSuccessContent()
+    {
+
+
+
+    }
+
+    function showFormContent()
+    {
+
+    }
+    
+    function title() 
+    {
+        return sprintf(_('Login'));
+    }
+    
+    function redirectHome() 
+    {
+        
+    }
+
+}
index e40496c187a28bcbdda380ffe2421f3dd7ab3ac0..236460c1c9a42f1f15463aa69959fddb802fbf97 100644 (file)
@@ -132,7 +132,7 @@ class FacebooksettingsAction extends FacebookAction
             $this->elementStart('ul', array('id' => 'fb-permissions-list'));
             $this->elementStart('li', array('id' => 'fb-permissions-item'));
             $this->elementStart('fb:prompt-permission', array('perms' => 'status_update',
-                'next_fbjs' => 'document.setLocation(\'' . "$this->app_url/settings.php" . '\')'));
+                'next_fbjs' => 'document.setLocation(\'' . "$this->app_uri/settings.php" . '\')'));
             $this->element('span', array('class' => 'facebook-button'),
                 sprintf(_('Allow %s to update my Facebook status'), common_config('site', 'name')));
             $this->elementEnd('fb:prompt-permission');
diff --git a/doc/groups b/doc/groups
new file mode 100644 (file)
index 0000000..645390e
--- /dev/null
@@ -0,0 +1,42 @@
+Users on %%site.name%% can create *groups* that other users can join.
+Groups can be a great way to share information and entertainment with
+a group of people who have a common interest or background.
+
+You can find out about groups on the server on the
+[Groups](%%action.groups%%) page. You can join a group by clicking on
+the "Join" button either in the group list or on the group's home page.
+
+Starting a new group
+--------------------
+
+If you want, you can start a new group for friends and people with
+common interests. Note that all groups are free for anyone to join.
+
+To start a new group, use the [new group](%%action.newgroup%%) tool
+and fill out the form. Describe your group as best you can if you want
+people to be able to find it.
+
+When choosing the nickname for your group, try to keep it short. The
+nickname is included in every message to and from the group, so the
+less chars the better. Try using acronyms for organizations, or
+airport codes for places (like 'pdx' instead of 'portland').
+
+Sending messages to a group
+---------------------------
+
+You can send a message to a group using the syntax "!groupname"
+anywhere in the message. If you have more than one group named, the
+notice will go to each group. Only members can send notices to a
+group, and groups do not respond to direct messages (DMs).
+
+Receiving messages
+------------------
+
+New group messages will appear in your inbox, and will also come to
+your phone or IM client if you've set them up to receive notices.
+
+Remote groups
+-------------
+
+While it's technically possible, this version of Laconica does not
+support remote group membership.
index 5b60072e263c76c5fd0cff9ab0d5924d3f99959e..a8cfccd2b368132486a0439828ca1996a72d44f0 100644 (file)
--- a/doc/help
+++ b/doc/help
@@ -23,6 +23,9 @@ Here are some documents that you might find helpful in understanding
 * [FAQ](%%doc.faq%%) - frequently-asked questions about %%site.name%%
 * [Contact](%%doc.contact%%) - who to contact with questions about the service
 * [IM](%%doc.im%%) - using the instant-message (IM) features of %%site.name%%
+* [SMS](%%doc.sms%%) - tying your cellphone to %%site.name%%
+* [tags](%%doc.tags%%) - different ways to use tagging
+* [Groups](%%doc.groups%%) - joining together in groups
 * [OpenID](%%doc.openid%%) - what OpenID is and how to use it with this service
 * [OpenMicroBlogging](%%doc.openmublog%%) - subscribing to remote users
 * [Privacy](%%doc.privacy%%) - %%site.name%%'s privacy policy
diff --git a/doc/sms b/doc/sms
new file mode 100644 (file)
index 0000000..1beb497
--- /dev/null
+++ b/doc/sms
@@ -0,0 +1,68 @@
+You can post messages to %%site.name%% using a many kinds of cell
+phones that support SMS messaging. This site does not support SMS
+directly; rather, it uses your carrier's email gateway to send and
+receive messages.
+
+Managing your SMS settings
+--------------------------
+
+Use the [SMS settings](%%action.smssettings%%) page to set your SMS
+preferences. You can add or change your SMS number and set the
+flags for SMS updates.
+
+When you add or change your phone number, you'll receive a message on your
+phone with a verification code. Enter it into the SMS settings page to
+confirm that the owner of the phone authorizes sending it messages.
+
+Note that only the carriers listed in the drop down list on the form
+are supported by %%site.name%%. They're the only ones we know how to
+make email addresses for.
+
+Receiving messages
+------------------
+
+Once you've verified your phone number, you can enable sending
+messages to your phone. If you have a lot of friends and a typical
+phone, it can be hard to keep up.
+
+Sending messages
+----------------
+
+To send a message, you must send an email to the incoming email
+address visible on your SMS settings page. The method for sending
+email from your phone varies from carrier to carrier and from handset
+to handet; if in doubt, ask your carrier.
+
+Keep your incoming email address a secret -- it's the only way we know
+you're really you!
+
+Commands
+--------
+
+You can use the following commands with %%site.name%%.
+
+* on - turn on notifications
+* off - turn off notifications
+* help - show this help
+* follow <nickname> - subscribe to user
+* leave <nickname> - unsubscribe from user
+* d <nickname> <text> - direct message to user
+* get <nickname> - get last notice from user
+* whois <nickname> - get profile info on user
+* fav <nickname> - add user's last notice as a 'fave'
+* stats - get your stats
+* stop - same as 'off'
+* quit - same as 'off'
+* sub <nickname> - same as 'follow'
+* unsub <nickname> - same as 'leave'
+* last <nickname> - same as 'get'
+* on <nickname> - not yet implemented.
+* off <nickname> - not yet implemented.
+* nudge <nickname> - not yet implemented.
+* invite <phone number> - not yet implemented.
+* track <word> - not yet implemented.
+* untrack <word> - not yet implemented.
+* track off - not yet implemented.
+* untrack all - not yet implemented.
+* tracks - not yet implemented.
+* tracking - not yet implemented.
diff --git a/doc/tags b/doc/tags
new file mode 100644 (file)
index 0000000..2ed352e
--- /dev/null
+++ b/doc/tags
@@ -0,0 +1,40 @@
+%%site.name%% supports
+[tags](http://en.wikipedia.org/wiki/Tag_(metadata)) to help you
+organize your activities here. You can use tags for people and for
+notices.
+
+Tagging a notice
+----------------
+
+You can tag a notice using a *hashtag*; a # character followed by
+letters and numbers as well as '.', '-', and '_'. Note that accented
+latin characters are not supported, and non-roman scripts are right out.
+
+The HTML for the notice will link to a stream of all the other notices
+with that tag. This can be a great way to keep track of a conversation.
+
+The most popular current tags on the site can be found in the [public
+tag cloud](%%action.publictagcloud%%). Their size shows their
+popularity and recency.
+
+Tagging yourself
+----------------
+
+You can also add tags for yourself on your [profile
+settings](%%action.profilesettings%%) page. Use single words to
+describe yourself, your experiences and your interest. The tags will
+become links on your profile page to a list of all the users on the
+site who use that same tag. It can be a nice way to find people who
+are related to you geographically or who have a common interest.
+
+Tagging your subscriptions
+--------------------------
+
+You can also tag your subscriptions, on the subscriptions page. This
+makes it easy to organize your subscriptions into groups and sort
+through them separately.
+
+You can also send a notice "to the attention of" everyone you've
+marked with a particular tag (note: *not* people who've marked
+themselves with that tag). "@#family hello" will send a notice to
+everyone you've marked with the tag 'family'.
\ No newline at end of file
index f187395ec84e8e8cc3ec7666a57628df39c62830..d94652bfd13187f719380c908e0754dedf934c2a 100644 (file)
@@ -21,6 +21,9 @@ RewriteRule ^doc/openid$ index.php?action=doc&title=openid [L,QSA]
 RewriteRule ^doc/openmublog$ index.php?action=doc&title=openmublog [L,QSA]
 RewriteRule ^doc/privacy$ index.php?action=doc&title=privacy [L,QSA]
 RewriteRule ^doc/source$ index.php?action=doc&title=source [L,QSA]
+RewriteRule ^doc/tags$ index.php?action=doc&title=tags [L,QSA]
+RewriteRule ^doc/groups$ index.php?action=doc&title=groups [L,QSA]
+RewriteRule ^doc/sms$ index.php?action=doc&title=sms [L,QSA]
 
 RewriteRule ^facebook/$ index.php?action=facebookhome [L,QSA]
 RewriteRule ^facebook/index.php$ index.php?action=facebookhome [L,QSA]
index bf053424f15484bfe5a0fa5881b00041ab986974..8f02b36bf5aab5e58f52ec6266fe83e35de8696c 100644 (file)
@@ -156,10 +156,6 @@ class Action extends HTMLOutputter // lawsuit
                                      'type' => 'text/css',
                                      'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION,
                                      'media' => 'screen, projection, tv'));
-        $this->element('link', array('rel' => 'stylesheet',
-                                     'type' => 'text/css',
-                                     'href' => theme_path('css/thickbox.css', 'base') . '?version=' . LACONICA_VERSION,
-                                     'media' => 'screen, projection, tv'));
         $this->element('link', array('rel' => 'stylesheet',
                                      'type' => 'text/css',
                                      'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION,
index a20e618d3a96671406d8208704e7df1b84a2eb9d..2dbe1597086daff4bd79ddc4965a8cc7fdd27117 100644 (file)
@@ -68,6 +68,8 @@ class FacebookAction extends Action
             $this->fbuid = $flink->foreign_id; 
             $this->user = $flink->getUser();
         }
+        
+        $this->args = array();
     }
   
     function prepare($argarray)
index 81737e4d534ba65fc9da0b7a9dc073c3d65f0c60..a2a2d7cb1bdf68d55b08a3010d4afc1d44d9b2f1 100644 (file)
@@ -57,7 +57,7 @@ function getFacebookBaseCSS()
 {
     # Add a timestamp to the CSS file so Facebook cache wont ignore our changes
     $ts = filemtime(INSTALLDIR.'/theme/base/css/facebookapp.base.css');
-    $cssurl = INSTALLDIR.'/theme/base/css/facebookapp.base.css' . "?ts=$ts";
+    $cssurl = theme_path('css/facebookapp.base.css', 'base') . "?ts=$ts";
     return $cssurl;
 }
 
index 1574b9e09e518d9860a84b758786321adc6cb775..d2c1c3ffb92f8390dbc6141aeae08194cb9ce47e 100755 (executable)
@@ -34,7 +34,7 @@ require_once INSTALLDIR . '/lib/facebookutil.php';
 $last_updated_file = INSTALLDIR . '/scripts/facebook_last_updated';
 
 // Lock file name
-$tmp_file = "/tmp/update_facebook.lock";
+$tmp_file = INSTALLDIR . '/scripts/update_facebook.lock';
 
 // Make sure only one copy of the script is running at a time
 if (!($tmp_file = @fopen($tmp_file, "w")))
index b4f3ffd54afb3fb7824c444232c65b84ed480776..1769dc1c13e2353ed2465f5db1c10e60d63ecf64 100644 (file)
@@ -226,7 +226,7 @@ position:absolute;
 right:0;
 top:49px;
 float:right;
-width:322px;
+width:300px;
 }
 #page_notice {
 clear:both;
@@ -371,7 +371,7 @@ border-radius:7px;
 #content_inner {
 position:relative;
 width:100%;
-float;left;
+float:left;
 }
 
 #aside_primary {
index 2b71b071966b82c21b7b262fa2be299c22e98cb9..c68b0a3c441a654020b3a3d7515eea2e2ed069c7 100644 (file)
@@ -1,8 +1,16 @@
-/* theme: identica */
+/** theme: default
+ *
+ * @package   Laconica
+ * @author Sarven Capadisli <csarven@controlyourself.ca>
+ * @copyright 2009 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
 html,
 body,
 a:active {
-background-color:#CEE1E9;
+background-color:#97BFD1;
 }
 body {
 font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
@@ -18,14 +26,17 @@ display:none;
 input, textarea, select, option {
 font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
 }
-input, textarea, select {
+input, textarea, select,
+.entity_remote_subscribe {
 border-color:#aaa;
 }
 
+
 input.submit,
 #form_notice.warning #notice_text-count,
 #nav_register a,
-.form_settings .form_note {
+.form_settings .form_note,
+.entity_remote_subscribe {
 background-color:#A9BF4F;
 }
 
@@ -34,35 +45,47 @@ input:focus, textarea:focus, select:focus,
 border-color:#A9BF4F;
 }
 input.submit,
-#nav_register a {
-color:#F5FDFD;
+#nav_register a,
+.entity_remote_subscribe {
+color:#fff;
 }
 
 a,
-div.notice-options input {
+div.notice-options input,
+.form_user_block input.submit,
+.form_user_unblock input.submit,
+#entity_send-a-message a,
+.form_user_nudge input.submit,
+#entity_nudge p {
 color:#002E6E;
 }
 
-.notice p.entry-content a:visited {
+.notice,
+.profile {
+border-top-color:#D1D9E4;
+}
+.section .notice,
+.section .profile {
+border-top-color:#97BFD1;
+}
+
+
+#content .notice p.entry-content a:visited {
 background-color:#fcfcfc;
 }
-.notice p.entry-content .vcard a {
+#content .notice p.entry-content .vcard a {
 background-color:#fcfffc;
 }
 
-#aside_primary,
-#user_subscribe a,
-#TB_window input.submit,
-.form_user_subscribe input.submit {
-background-color:#fff;
+#aside_primary {
+background-color:#CEE1E9;
 }
 
 
 #notice_text-count {
 color:#333;
 }
-#form_notice.warning #notice_text-count,
-#user_actions a {
+#form_notice.warning #notice_text-count {
 color:#000;
 }
 
@@ -81,11 +104,11 @@ padding:2px 4px;
 
 #content,
 #site_nav_local_views a {
-border-color:#F5FDFD;
+border-color:#fff;
 }
 #content,
 #site_nav_local_views .current a {
-background-color:#F5FDFD;
+background-color:#fff;
 }
 
 #site_nav_local_views a {
@@ -105,6 +128,20 @@ background-color:#F7E8E8;
 background-color:#EFF3DC;
 }
 
+
+#anon_notice {
+background-color:#97BFD1;
+color:#fff;
+border-color:#fff;
+}
+
+#showstream #anon_notice {
+background-color:#A9BF4F;
+}
+
+
+
+
 #export_data li a {
 background-repeat:no-repeat;
 background-position:0 45%;
@@ -123,32 +160,41 @@ background-image:url(../../base/images/icons/icon_vcard.gif);
 }
 
 
-/*user_actions*/
-#user_actions li {
-border-top-color:#eee;
-}
-#user_subscribe a,
-#TB_window input.submit,
-.form_user_subscribe input.submit {
-background-image: url(../images/icons/twotone/green/shield.gif);
-background-position: 0 45%;
+#entity_send-a-message a,
+.form_user_nudge input.submit,
+.form_user_block input.submit,
+.form_user_unblock input.submit,
+#entity_nudge p {
+background-position: 0 40%;
 background-repeat: no-repeat;
+background-color:transparent;
 }
+.form_group_join input.submit,
+.form_group_leave input.submit
+.form_user_subscribe input.submit,
 .form_user_unsubscribe input.submit {
-background-color:#647819;
-color:#F5FDFD;
+background-color:#A9BF4F;
+color:#fff;
 }
-#user_send-a-message a {
-background:url(../images/icons/twotone/green/quote.gif) 0 45% no-repeat;
+.form_user_unsubscribe input.submit,
+.form_group_leave input.submit {
+background-color:#97BFD1;
+}
+
+#entity_send-a-message a {
+background-image:url(../images/icons/twotone/green/quote.gif);
 }
+#entity_nudge p,
 .form_user_nudge input.submit {
-background:url(../images/icons/twotone/green/mail.gif) 0 45% no-repeat;
+background-image:url(../images/icons/twotone/green/mail.gif);
 }
-.form_user_block input.submit {
-background:url(../images/icons/twotone/green/against.gif) 0 45% no-repeat;
+.form_user_block input.submit,
+.form_user_unblock input.submit {
+background-image:url(../images/icons/twotone/green/shield.gif);
 }
 
 
+
 /* NOTICES */
 .notices li.over {
 background-color:#fcfcfc;
@@ -195,9 +241,11 @@ background:transparent url(../images/icons/twotone/green/disfavourite.gif) no-re
 background:transparent url(../images/icons/twotone/green/trash.gif) no-repeat 0 45%;
 }
 
-div.notice-options {
-opacity:0.3;
+.notices div.entry-content,
+.notices div.notice-options {
+opacity:0.4;
 }
+.notices li.hover div.entry-content,
 .notices li.hover div.notice-options {
 opacity:1;
 }
@@ -214,6 +262,10 @@ background-color:#fcfcfc;
 /*END: NOTICES */
 
 
+#groups #new_group a {
+background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%;
+}
+
 
 .pagination .nav_prev a,
 .pagination .nav_next a {
@@ -227,19 +279,3 @@ background-position:0 45%;
 background-image:url(../images/icons/twotone/green/arrow-right.gif);
 background-position:100% 45%;
 }
-
-
-
-#home #intro #guide_steps li a {
-border-color:#ccc;
-color:#F5FDFD;
-}
-#home #intro #step_join-now a {
-background-color:#f00;
-}
-#home #intro #step_start-a-group a {
-background-color:#0f0;
-}
-#home #intro #step_create-a-community a {
-background-color:#00f;
-}
\ No newline at end of file