]> git.mxchange.org Git - friendica.git/commitdiff
archive widget
authorfriendica <info@friendica.com>
Wed, 13 Jun 2012 03:46:30 +0000 (20:46 -0700)
committerfriendica <info@friendica.com>
Wed, 13 Jun 2012 03:46:30 +0000 (20:46 -0700)
include/items.php
mod/network.php
mod/profile.php
view/categories_widget.tpl
view/contact_block.tpl
view/posted_date_widget.tpl [new file with mode: 0644]
view/theme/duepuntozero/style.css
view/theme/slackr/style.css

index bb81d1a451f6afd0ef9dfc1680b9c852c4b3dbd6..8a655594ef1a14a03402f51b30a51fb23b92688c 100755 (executable)
@@ -3390,3 +3390,50 @@ function drop_item($id,$interactive = true) {
        }
        
 }
+
+
+function first_post_date($uid,$wall = false) {
+       $r = q("select created from item 
+               where uid = %d and wall = %d and deleted = 0 and visible = 1 AND moderated = 0 
+               order by created asc limit 1",
+               intval($uid),
+               intval($wall ? 1 : 0)
+       );
+       if(count($r))
+               return substr($r[0]['created'],0,10);
+       return false;
+}
+
+function posted_dates($uid,$wall) {
+       $dnow = datetime_convert('','','now','Y-m-d');
+
+       $dthen = first_post_date($uid,$wall);
+       if(! $dthen)
+               return array();
+
+       $ret = array();
+       while($dnow >= $dthen) {
+               $start_month = datetime_convert('','','first day of ' . $dnow,'Y-m-d');
+               $end_month = datetime_convert('','','last day of ' . $dnow,'Y-m-d');
+               $str = day_translate(datetime_convert('','',$dnow,'F Y'));
+               $ret[] = array($str,$end_month,$start_month);
+               $dnow = datetime_convert('','',$dnow . ' -1 month', 'Y-m-d');
+       }
+       return $ret;
+}
+
+
+function posted_date_widget($url,$uid,$wall) {
+       $o = '';
+       $ret = posted_dates($uid,$wall);
+       if(! count($ret))
+               return $o;
+
+       $o = replace_macros(get_markup_template('posted_date_widget.tpl'),array(
+               '$title' => t('Archives'),
+               '$size' => ((count($ret) > 6) ? 6 : count($ret)),
+               '$url' => $url,
+               '$dates' => $ret
+       ));
+       return $o;
+}
\ No newline at end of file
index a733f3fb3c97351cd5aa62882927ac29f5e41a1d..c31260b44f1e9f061f2d0779a7d7f7f0507b9353 100644 (file)
@@ -7,6 +7,16 @@ function network_init(&$a) {
                return;
        }
        
+       $is_a_date_query = false;
+
+       if($a->argc > 1) {
+               for($x = 1; $x < $a->argc; $x ++) {
+                       if(is_a_date_arg($a->argv[$x])) {
+                               $is_a_date_query = true;
+                               break;
+                       }
+               }
+       }
        
        // fetch last used tab and redirect if needed
        $sel_tabs = network_query_get_sel_tab($a);
@@ -24,7 +34,11 @@ function network_init(&$a) {
                
                // redirect if current selected tab is 'no_active' and
                // last selected tab is _not_ 'all_active'. 
-               if ($sel_tabs[0] == 'active' && $last_sel_tabs[0]!='active') {
+               // and this isn't a date query
+
+               if ($sel_tabs[0] == 'active' && $last_sel_tabs[0]!='active' && (! $is_a_date_query)) {
+
+
                        $k = array_search('active', $last_sel_tabs);
                        //echo "<pre>"; var_dump($sel_tabs, $last_sel_tabs, $tab_urlsm, $k, $tab_urls[$k]); killme();
                        goaway($a->get_baseurl() . $tab_urls[$k]);
@@ -35,6 +49,7 @@ function network_init(&$a) {
                  
        require_once('include/group.php');
        require_once('include/contact_widgets.php');
+       require_once('include/items.php');
 
        if(! x($a->page,'aside'))
                $a->page['aside'] = '';
@@ -66,8 +81,9 @@ function network_init(&$a) {
        if(x($_GET,'search')) {
                $a->page['content'] .= '<h2>' . t('Search Results For:') . ' '  . $search . '</h2>';
        }
-       
+
        $a->page['aside'] .= group_side('network','network',true,$group_id);
+       $a->page['aside'] .= posted_date_widget($a->get_baseurl() . '/network',local_user(),false);     
        $a->page['aside'] .= networks_widget($a->get_baseurl(true) . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
        $a->page['aside'] .= saved_searches($search);
        $a->page['aside'] .= fileas_widget($a->get_baseurl(true) . '/network',(x($_GET, 'file') ? $_GET['file'] : ''));
@@ -246,43 +262,46 @@ function network_content(&$a, $update = 0) {
        // if no tabs are selected, defaults to comments
        if ($no_active=='active') $all_active='active';
        //echo "<pre>"; var_dump($no_active, $all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active); killme();
-       
+
+       $cmd = (($datequery) ? '' : $a->cmd);
+       $len_naked_cmd = strlen(str_replace('/new','',$cmd));           
+
        // tabs
        $tabs = array(
                array(
                        'label' => t('Commented Order'),
-                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
+                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
                        'sel'=>$all_active,
                        'title'=> t('Sort by Comment Date'),
                ),
                array(
                        'label' => t('Posted Order'),
-                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
+                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
                        'sel'=>$postord_active,
                        'title' => t('Sort by Post Date'),
                ),
 
                array(
                        'label' => t('Personal'),
-                       'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
+                       'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
                        'sel' => $conv_active,
                        'title' => t('Posts that mention or involve you'),
                ),
                array(
                        'label' => t('New'),
-                       'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
+                       'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ($len_naked_cmd ? '/' : '') . 'new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
                        'sel' => $new_active,
                        'title' => t('Activity Stream - by date'),
                ),
                array(
                        'label' => t('Starred'),
-                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
+                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
                        'sel'=>$starred_active,
                        'title' => t('Favourite Posts'),
                ),
                array(
                        'label' => t('Shared Links'),
-                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
+                       'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
                        'sel'=>$bookmarked_active,
                        'title'=> t('Interesting Links'),
                ),      
@@ -470,10 +489,10 @@ function network_content(&$a, $update = 0) {
        $sql_extra3 = '';
 
        if($datequery) {
-               $sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert('','',$datequery))));
+               $sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
        }
        if($datequery2) {
-               $sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert('','',$datequery2))));
+               $sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
        }
 
        $sql_extra2 = (($nouveau) ? '' : " AND `item`.`parent` = `item`.`id` ");
index 2ac8fe586deefa181f5c27463d9f5b753c6e25be..24e03d6eac25589bf2bab80e391dfd508d8d6225 100644 (file)
@@ -94,6 +94,8 @@ function profile_content(&$a, $update = 0) {
        require_once('include/security.php');
        require_once('include/conversation.php');
        require_once('include/acl_selectors.php');
+       require_once('include/items.php');
+
        $groups = array();
 
        $tab = 'posts';
@@ -168,6 +170,7 @@ function profile_content(&$a, $update = 0) {
 
                $celeb = ((($a->profile['page-flags'] == PAGE_SOAPBOX) || ($a->profile['page-flags'] == PAGE_COMMUNITY)) ? true : false);
 
+               $a->page['aside'] .= posted_date_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],$a->profile['profile_uid'],true); 
                $a->page['aside'] .= categories_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],(x($category) ? xmlify($category) : ''));
 
                if(can_write_wall($a,$a->profile['profile_uid'])) {
@@ -218,10 +221,10 @@ function profile_content(&$a, $update = 0) {
                }
 
                if($datequery) {
-                       $sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert('','',$datequery))));
+                       $sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
                }
                if($datequery2) {
-                       $sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert('','',$datequery2))));
+                       $sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
                }
 
 
index 061821beb5646ffab16776fb9de8b0fa1781706e..5dbd871a899936090cd7ea6039c07df115c244bf 100644 (file)
@@ -1,4 +1,3 @@
-<div class="clear"></div>
 <div id="categories-sidebar" class="widget">
        <h3>$title</h3>
        <div id="nets-desc">$desc</div>
index eb46c6c43ccdc86d9ef5a1dab03f73c304205b2c..a796487122f9040d17457da80f3ed7c8970b5c2b 100644 (file)
@@ -9,3 +9,4 @@
                </div>
 {{ endif }}
 </div>
+<div class="clear"></div>
diff --git a/view/posted_date_widget.tpl b/view/posted_date_widget.tpl
new file mode 100644 (file)
index 0000000..3e2ee5a
--- /dev/null
@@ -0,0 +1,9 @@
+<div id="datebrowse-sidebar" class="widget">
+       <h3>$title</h3>
+<script>function dateSubmit(dateurl) { window.location.href = dateurl; } </script>
+<select id="posted-date-selector" name="posted-date-select" onchange="dateSubmit($(this).val());" size="$size">
+{{ for $dates as $d }}
+<option value="$url/$d.1/$d.2" >$d.0</option>
+{{ endfor }}
+</select>
+</div>
index ab660888f228a64b124a792affb96978e9c9925e..3264caf52365014116957c124e9590f047e0d79f 100644 (file)
@@ -3226,3 +3226,7 @@ ul.menu-popup {
 .autocomplete { color:#000; border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px;  _margin:0; _overflow-x:hidden; }
 .autocomplete .selected { background:#F0F0F0; }
 .autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; }
+
+#datebrowse-sidebar select {
+       margin-left: 25px;
+}
index aa4d4b80002b350d6b05d1efc9885f6fd0636271..8a8f8c7264645e314ac1805d8a1d1b031cb7b6f0 100644 (file)
@@ -88,6 +88,20 @@ nav #site-location {
        box-shadow: 4px 4px 3px 0 #444444;
 }
 
+#datebrowse-sidebar select {
+       margin-left: 25px;
+       border-radius: 3px;
+       -moz-border-radius: 3px;
+       opacity: 0.3;
+       filter:alpha(opacity=30);
+}
+
+#datebrowse-sidebar select:hover {
+       opacity: 1.0;
+       filter:alpha(opacity=100);
+}
+
+
 .contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected {
        border-radius: 3px;
        -moz-border-radius: 3px;