]> git.mxchange.org Git - friendica.git/blobdiff - view/theme/dispy/theme.php
Don't replace data-src with src in acl-template
[friendica.git] / view / theme / dispy / theme.php
index d0f6797cbaa92c617dfc1f55f4b2c02a768b750c..a1de5498e6ea68e3fd3d1c244a9c6929ff878ce2 100644 (file)
 
 /*
  * Name: Dispy
- * Description: Dispy, Friendica theme
- * Version: 1.0
- * Author: unknown
+ * Description: Dispy family (light, dark): Sleek and Functional Themes 
+ * Version: 1.2.1
+ * Author: Simon <http://simon.kisikew.org/>
  * Maintainer: Simon <http://simon.kisikew.org/>
  * Screenshot: <a href="screenshot.jpg">Screenshot</a>
  */
 
+/* If you borrow any of these functions, make sure to
+ * RENAME your functions, otherwise both themes get conflicts,
+ * and the friendica instance will get HTTP 500 errors.
+ * To paraphrase Mike: "Might wish to wrap
+ * function_name with "if(! function_exists('function_name')) ... "
+ * or rename to prefix1_function_name (prefix2_function_name), etc.
+ */
+
+$a = get_app();
 $a->theme_info = array(
-       'extends' => 'dispy',
+    'family' => 'dispy',
+       'version' => '1.2.2'
 );
+set_template_engine($a, 'smarty3');
+
+function dispy_init(&$a) {
+
+    /** @purpose set some theme defaults
+    */
+    $cssFile = null;
+    $colour = get_pconfig(local_user(), "dispy", "colour");
+       $baseurl = $a->get_baseurl($ssl_state);
+
+    if ($colour === false) { $colour = "light"; }
+    if ($colour == "light") {
+               $colour_path = "/light/";
+               require_once ('light/theme.php');
+       }
+    if ($colour == "dark") {
+               $colour_path = "/dark/";
+               require_once ('dark/theme.php');
+       }
+
+    /** @purpose aside on profile page
+    */
+       if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
+               dispy_community_info();
+       }
+
+       $a->page['htmlhead'] .= <<<EOT
+       <script type="text/javascript" src="$baseurl/view/theme/dispy/js/modernizr.custom.2.5.3.min.js"></script>
+       <script type="text/javascript">
+       $(document).ready(function() {
+               // Select all links with lightbox class
+               $("a.lightbox").fancybox();
+
+       $('.group-edit-icon').hover(
+                       function() {
+                               $(this).addClass('icon');
+                               $(this).removeClass('iconspacer'); },
+
+                       function() {
+                               $(this).removeClass('icon');
+                               $(this).addClass('iconspacer'); }
+               );
+
+               $('.sidebar-group-element').hover(
+                       function() {
+                               id = $(this).attr('id');
+                               $('#edit-' + id).addClass('icon');
+                               $('#edit-' + id).removeClass('iconspacer'); },
+
+                       function() {
+                               id = $(this).attr('id');
+                               $('#edit-' + id).removeClass('icon');
+                               $('#edit-' + id).addClass('iconspacer'); }
+               );
+
+               $('.savedsearchdrop').hover(
+                       function() {
+                               $(this).addClass('drop');
+                               $(this).addClass('icon');
+                               $(this).removeClass('iconspacer'); },
+
+                       function() {
+                               $(this).removeClass('drop');
+                               $(this).removeClass('icon');
+                               $(this).addClass('iconspacer'); }
+               );
+
+               $('.savedsearchterm').hover(
+                       function() {
+                               id = $(this).attr('id');
+                               $('#drop-' + id).addClass('icon');
+                               $('#drop-' + id).addClass('drophide');
+                               $('#drop-' + id).removeClass('iconspacer'); },
+
+                       function() {
+                               id = $(this).attr('id');
+                               $('#drop-' + id).removeClass('icon');
+                               $('#drop-' + id).removeClass('drophide');
+                               $('#drop-' + id).addClass('iconspacer'); }
+                       );
+
+               // click outside notifications menu closes it
+               $('html').click(function() {
+                       $('#nav-notifications-linkmenu').removeClass('selected');
+                       $('#nav-notifications-menu').css({display: 'none'});
+               });
+
+               $('#nav-notifications-linkmenu').click(function(event) {
+                       event.stopPropagation();
+               });
+               // click outside profiles menu closes it
+               $('html').click(function() {
+                       $('#profiles-menu-trigger').removeClass('selected');
+                       $('#profiles-menu').css({display: 'none'});
+               });
+
+               $('#profiles-menu').click(function(event) {
+                       event.stopPropagation();
+               });
+
+               // main function in toolbar functioning
+               function toggleToolbar() {
+                       if ( $('#nav-floater').is(':visible') ) {
+                               $('#nav-floater').slideUp('fast');
+                               $('.floaterflip').css({
+                                       backgroundPosition: '-210px -60px' 
+                               });
+                               $('.search-box').slideUp('fast');
+                       } else {
+                               $('#nav-floater').slideDown('fast');
+                               $('.floaterflip').css({
+                                       backgroundPosition: '-190px -60px'
+                               });
+                               $('.search-box').slideDown('fast');
+                       }
+               };
+               // our trigger for the toolbar button
+               $('.floaterflip').click(function() {
+                       toggleToolbar();
+                       return false;
+               });
+
+               // (attempt to) change the text colour in a top post
+               $('#profile-jot-text').focusin(function() {
+                       $(this).css({color: '#eec'});
+               });
+
+               $('a[href=#top]').click(function() {
+                       $('html, body').animate({scrollTop:0}, 'slow');
+                       return false;
+               });
 
-$a->page['htmlhead'] .= <<< EOT
-<script>
-$(document).ready(function() {
-    $('.group-edit-icon').hover(
-        function() {
-            $(this).addClass('icon');
-            $(this).removeClass('iconspacer'); },
-
-        function() {
-            $(this).removeClass('icon');
-            $(this).addClass('iconspacer'); }
-    );
-
-    $('.sidebar-group-element').hover(
-        function() {
-            id = $(this).attr('id');
-            $('#edit-' + id).addClass('icon');
-            $('#edit-' + id).removeClass('iconspacer'); },
-
-        function() {
-            id = $(this).attr('id');
-            $('#edit-' + id).removeClass('icon');
-            $('#edit-' + id).addClass('iconspacer'); }
-    );
-
-    $('.savedsearchdrop').hover(
-        function() {
-            $(this).addClass('drop');
-            $(this).addClass('icon');
-            $(this).removeClass('iconspacer'); },
-
-        function() {
-            $(this).removeClass('drop');
-            $(this).removeClass('icon');
-            $(this).addClass('iconspacer'); }
-    );
-
-    $('.savedsearchterm').hover(
-        function() {
-            id = $(this).attr('id');
-            $('#drop-' + id).addClass('icon');
-            $('#drop-' + id).addClass('drophide');
-            $('#drop-' + id).removeClass('iconspacer'); },
-
-        function() {
-            id = $(this).attr('id');
-            $('#drop-' + id).removeClass('icon');
-            $('#drop-' + id).removeClass('drophide');
-            $('#drop-' + id).addClass('iconspacer'); }
-        );
-
-       // click outside notifications menu closes it
-       $('html').click(function() {
-               $('#nav-notifications-linkmenu').removeClass('selected');
-               document.getElementById("nav-notifications-menu").style.display = "none";
-       });
-
-       $('#nav-notifications-linkmenu').click(function(event) {
-               event.stopPropagation();
        });
-       // click outside profiles menu closes it
-       $('html').click(function() {
-               $('#profiles-menu-trigger').removeClass('selected');
-               document.getElementById("profiles-menu").style.display = "none";
+       // shadowing effect for floating toolbars
+       $(document).scroll(function(e) {
+               var pageTop = $('html').scrollTop();
+               if (pageTop) {
+                       $('#nav-floater').css({boxShadow: '3px 3px 10px rgba(0, 0, 0, 0.7)'});
+                       $('.search-box').css({boxShadow: '3px 3px 10px rgba(0, 0, 0, 0.7)'});
+               } else {
+                       $('#nav-floater').css({boxShadow: '0 0 0 0'});
+                       $('.search-box').css({boxShadow: '0 0 0 0'});
+               }
        });
+       </script>
+EOT;
 
-       $('#profiles-menu').click(function(event) {
-               event.stopPropagation();
-       });
+    // custom css
+    if (!is_null($cssFile)) {
+        $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
+    }
 
-       // main function in toolbar functioning
-    function toggleToolbar() {
-        if ( $('#nav-floater').is(':visible') ) {
-            $('#nav-floater').slideUp('fast');
-            $('.floaterflip').css({
-                backgroundPosition: '-210px -60px' 
-            });
-                       $('.search-box').slideUp('fast');
-        } else {
-            $('#nav-floater').slideDown('fast');
-            $('.floaterflip').css({
-                backgroundPosition: '-190px -60px'
-            });
-                       $('.search-box').slideDown('fast');
-        }
-    };
-       // our trigger for the toolbar button
-    $('.floaterflip').click(function() {
-        toggleToolbar();
-        return false;
-    });
-
-       // (attempt) to change the text colour in a top post
-       $('#profile-jot-text').focusin(function() {
-               $(this).css({color: '#eec'});
-       });
-
-});
-</script>
-EOT;
+       _js_in_foot();
+}
 
 function dispy_community_info() {
+    /** @purpose some sidebar stuff for new users
+    */
        $a = get_app();
-
-       $fostitJS = "javascript: (function() {
-               the_url = '".$a->get_baseurl($ssl_state)."/view/theme/dispy-dark/fpostit/fpostit.php?url=' +
-               encodeURIComponent(window.location.href) + '&title=' + encodeURIComponent(document.title) + '&text=' +
-               encodeURIComponent(''+(window.getSelection ? window.getSelection() : document.getSelection ?
-               document.getSelection() : document.selection.createRange().text));
-               a_funct = function() {
-                       if (!window.open(the_url, 'fpostit', 'location=yes,links=no,scrollbars=no,toolbar=no,width=600,height=300')) {
-                               location.href = the_url;
-                       }
-                       if (/Firefox/.test(navigator.userAgent)) {
-                               setTimeout(a_funct, 0)
-                       } else {
-                               a_funct();
-                       }
-               })();";
-
-       $aside['$fostitJS'] = $fostitJS;
        $url = $a->get_baseurl($ssl_state);
        $aside['$url'] = $url;
 
-    $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
-       $a->page['aside_bottom'] = replace_macros($tpl, $aside);
+       $tpl = get_markup_template('communityhome.tpl');
+       return $a->page['aside_bottom'] = replace_macros($tpl, $aside);
 }
 
-// aside on profile page
-if (($a->argv[0] . $a->argv[1]) === ("profile" . $a->user['nickname'])) {
-       dispy_community_info();
+if(! function_exists('_js_in_foot')) {
+       function _js_in_foot() {
+               /** @purpose insert stuff in bottom of page
+               */
+               $a = get_app();
+               $baseurl = $a->get_baseurl($ssl_state);
+               $bottom['$baseurl'] = $baseurl;
+               $tpl = get_markup_template('bottom.tpl');
+
+               return $a->page['bottom'] = replace_macros($tpl, $bottom);
+       }
 }