Friendica Communications Platform (please note that this is a clone of the repository at github, issues are handled there) https://friendi.ca
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

theme.php 2.9 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /*
  3. * Name: Frost
  4. * Description: Like frosted glass
  5. * Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0).
  6. * Version: Version 0.4
  7. * Author: Zach P <techcity@f.shmuz.in>
  8. * Maintainer: Zach P <techcity@f.shmuz.in>
  9. */
  10. function frost_init(&$a) {
  11. $a->videowidth = 400;
  12. $a->videoheight = 330;
  13. $a->theme_thread_allow = false;
  14. set_template_engine($a, 'smarty3');
  15. }
  16. function frost_content_loaded(&$a) {
  17. // I could do this in style.php, but by having the CSS in a file the browser will cache it,
  18. // making pages load faster
  19. if( $a->module === 'home' || $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) {
  20. //$a->page['htmlhead'] = str_replace('$stylesheet', App::get_baseurl() . '/view/theme/frost/login-style.css', $a->page['htmlhead']);
  21. $a->theme['stylesheet'] = App::get_baseurl() . '/view/theme/frost/login-style.css';
  22. }
  23. if ( $a->module === 'login' ) {
  24. $a->page['end'] .= '<script type="text/javascript"> $(document).ready(function() { $("#id_" + window.loginName).focus();} );</script>';
  25. }
  26. }
  27. function frost_install() {
  28. register_hook('prepare_body_final', 'view/theme/frost/theme.php', 'frost_item_photo_links');
  29. logger("installed theme frost");
  30. }
  31. function frost_uninstall() {
  32. unregister_hook('bbcode', 'view/theme/frost/theme.php', 'frost_bbcode');
  33. logger("uninstalled theme frost");
  34. }
  35. function frost_item_photo_links(&$a, &$body_info) {
  36. require_once('include/Photo.php');
  37. $phototypes = Photo::supportedTypes();
  38. $occurence = 1;
  39. $p = bb_find_open_close($body_info['html'], "<a", ">");
  40. while($p !== false && ($occurence++ < 500)) {
  41. $link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
  42. $matches = array();
  43. preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
  44. if($matches) {
  45. // Replace the link for the photo's page with a direct link to the photo itself
  46. $newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link);
  47. // Add a "quiet" parameter to any redir links to prevent the "XX welcomes YY" info boxes
  48. $newlink = preg_replace("/href=\"([^\"]+)\/redir\/([^\"]+)&url=([^\"]+)\"/", 'href="$1/redir/$2&quiet=1&url=$3"', $newlink);
  49. // Having any arguments to the link for Colorbox causes it to fetch base64 code instead of the image
  50. $newlink = preg_replace("/\/[?&]zrl=([^&\"]+)/", '', $newlink);
  51. $body_info['html'] = str_replace($link, $newlink, $body_info['html']);
  52. }
  53. $p = bb_find_open_close($body_info['html'], "<a", ">", $occurence);
  54. }
  55. }