This repository has been archived on 2024-08-19. You can view files and clone it, but cannot push or open issues or pull requests.
core/Zotlabs/Module
2019-04-30 11:00:13 +02:00
..
Admin fix revert accidental moving of Features.php 2019-03-23 22:01:46 +01:00
Settings fix revert accidental moving of Features.php 2019-03-23 22:01:46 +01:00
Achievements.php
Acl.php fix typo 2019-03-23 20:17:35 +01:00
Admin.php MySQL 8 admin summary compatibility 2019-02-17 22:47:08 +01:00
Affinity.php missing use app 2019-02-14 14:48:16 +01:00
Api.php
Appman.php regression: the ability to order apps messed up since adding pinned apps to the ordering 2018-12-12 19:11:30 -08:00
Apporder.php regression: the ability to order apps messed up since adding pinned apps to the ordering 2018-12-12 19:11:30 -08:00
Apps.php move chat from feature to apps 2018-09-13 11:32:43 +02:00
Article_edit.php Status editor hook 2018-09-29 20:22:27 +02:00
Articles.php Add return if no local_channel() 2018-12-15 19:49:59 -05:00
Attach.php
Authorize.php oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
Authtest.php
Block.php
Blocks.php Status editor hook 2018-09-29 20:22:27 +02:00
Bookmarks.php bookmarks: change wording 2018-10-06 14:50:17 +02:00
Branchtopic.php
Cal.php use different settings for cal_first_day in events and cdav/calendar. This is a tradeoff. It would be better to have one setting for both but if we want to preserve the *all settings* view, this would break its functionality 2018-09-23 19:40:52 +02:00
Card_edit.php Status editor hook 2018-09-29 20:22:27 +02:00
Cards.php Correct and extend Doxygen comments. 2019-01-23 22:25:47 +01:00
Cdav.php Add translation to update button 2019-04-19 21:11:34 +02:00
Changeaddr.php fix 48 hours timeframe check and remove unused var in mod changeaddr 2019-03-23 20:32:15 +01:00
Channel.php fix typos 2019-03-18 21:58:18 +01:00
Chanview.php macke mod chanview aware of zot6 2019-01-24 18:06:27 +01:00
Chat.php Update Chat.php 2018-09-28 19:46:20 +02:00
Chatsvc.php we must now provide the full path to the profile image for the cavatar plugin to work 2018-05-15 10:20:20 +02:00
Cloud_tiles.php
Cloud.php SECURITY: provide option to disable the cloud 'root' directory and make the cloud module require a target channel nickname. This is a low impact change as there is currently no disclosure of private information. The presence of a file browser for all the channels on the site could be (and is reported to be) a concern to some people and there is no reason why it shouldn't be optional. 2018-06-13 20:27:10 -07:00
Common.php
Connect.php Update Connect.php 2018-09-28 19:46:36 +02:00
Connections.php add backend support for connections ordering 2019-03-27 20:42:56 +01:00
Connedit.php add zot6 to clonable networks 2019-03-13 17:48:00 +01:00
Contactgroup.php Update Contactgroup.php 2018-09-28 00:11:03 +02:00
Cover_photo.php Save cover photo thumbnails in filesystem or database 2019-04-12 15:03:59 +02:00
Dav.php
Defperms.php defperm app 2018-10-04 13:26:45 +02:00
Directory.php use urlencode 2019-03-18 13:29:08 +01:00
Dirsearch.php fix variables for xporof_locale and xprof_postcode 2019-03-23 20:57:22 +01:00
Display.php Add displaying support for threaded comments 2019-04-30 11:00:13 +02:00
Dreport.php clone systems apps to the extent possible, auto-configure imagick thumbnail binary during setup if possible 2019-03-18 09:35:53 +01:00
Editblock.php Status editor hook 2018-09-29 20:22:27 +02:00
Editlayout.php Status editor hook 2018-09-29 20:22:27 +02:00
Editpost.php Status editor hook 2018-09-29 20:22:27 +02:00
Editwebpage.php Status editor hook 2018-09-29 20:22:27 +02:00
Email_resend.php Merge remote-tracking branch 'mike/master' into dev 2018-01-28 00:18:29 +01:00
Email_validation.php several email validation issues 2018-02-28 21:15:26 -08:00
Embed.php work on repeat/share for Hubzilla 2019-02-06 17:26:09 -08:00
Embedphotos.php missing endTime on Zot6 encoded events, optimise the url fetch of embedphotos 2019-04-08 16:45:07 -07:00
Events.php fix linkify_tags() so it works with xchans across multiple protocols, also some fixes to activity parsing from upstream. 2019-02-03 16:53:49 -08:00
Fbrowser.php
Feed.php
Fhublocs.php
File_upload.php
Filer.php
Filerm.php
Filestorage.php fix ability for file storage creators (visitors) to be able to delete their own content 2019-02-19 13:14:19 -08:00
Follow.php more work with unicode usernames 2018-03-14 18:42:07 -07:00
Getfile.php Fix wrong image resolution selection 2019-04-10 22:09:10 +02:00
Go.php provide new member widget which sits beneath the notifications for the first 60 days after an account creation. 2018-02-28 19:49:33 -08:00
Group.php Add remaining hook insertions 2019-01-22 12:13:16 +01:00
Hashtags.php allow case independence of replacements as well as patterns 2018-03-30 01:59:32 -07:00
Hcard.php
Help.php
Home.php do not default to channel_startpage if startpage app is not installed 2018-10-01 12:38:04 +02:00
Hostxrd.php
Hq.php some more xss prevention 2019-03-18 21:30:25 +01:00
Id.php hubzilla has uuid - use that instead of wildcard 2019-02-19 13:36:53 -08:00
Impel.php add item.uuid to relevant places 2018-11-15 16:34:09 -08:00
Import_items.php
Import.php backslash 2019-03-29 15:51:31 +01:00
Invite.php Update Invite.php 2018-09-28 19:47:20 +02:00
Item.php Add initial threaded comments support 2019-04-29 23:26:20 +02:00
Lang.php Update Lang.php 2018-09-28 19:47:37 +02:00
Layouts.php Status editor hook 2018-09-29 20:22:27 +02:00
Like.php Merge remote-tracking branch 'mike/master' into dev 2018-12-21 12:19:52 +01:00
Linkinfo.php use count() instead of sizeof() 2018-12-19 11:08:28 +01:00
Lockview.php Update Lockview.php 2018-09-28 00:06:26 +02:00
Locs.php
Login.php refactor the 'where does the register link point?' logic 2018-05-14 19:19:25 -07:00
Logout.php channel delegation: push current identity and pop it on logout from the delegated channel. This fixes the known issue of being forced to log back in after leaving the delegated channel. 2018-04-11 17:40:04 -07:00
Lostpass.php
Magic.php SECURITY: signature issue 2018-10-09 22:37:53 -07:00
Mail.php fix linkify_tags() so it works with xchans across multiple protocols, also some fixes to activity parsing from upstream. 2019-02-03 16:53:49 -08:00
Manage.php only explain how to select a channel if there are channels to select 2018-09-23 20:54:36 +02:00
Menu.php fix wrong value being used for menu_id 2018-10-20 16:55:54 -04:00
Message.php add alt_pager to mod_moderate, remove legacy $a parameter from all occurrences of alt_pager 2018-04-17 23:36:35 -07:00
Mitem.php some work to make menus editable by visitors with webpage write permissions; this needed to revise the link structure so that the page specified an owner channel in the url. Otherwise we could only operate on menus owned by local_channel(). Have done some basic regression testing but have not yet fully tested guest editing functionality. 2018-06-05 21:12:42 -07:00
Moderate.php add alt_pager to mod_moderate, remove legacy $a parameter from all occurrences of alt_pager 2018-04-17 23:36:35 -07:00
Mood.php add item.uuid to relevant places 2018-11-15 16:34:09 -08:00
Network.php some more xss prevention 2019-03-18 21:30:25 +01:00
New_channel.php do not count removed channels 2019-01-10 13:35:27 +01:00
Notes.php Extend documentation. 2019-01-28 23:58:19 +01:00
Notifications.php this is messing with names containing a comma and is superfluous now 2018-07-06 08:44:25 +02:00
Notify.php
Oauth2.php Update Oauth2.php 2018-09-28 19:48:44 +02:00
Oauth2testvehicle.php disable the oauth2testvehicle completely until it is safe 2018-04-03 21:58:11 -07:00
Oauth.php Update Oauth.php 2018-09-28 19:48:25 +02:00
Oauthinfo.php oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
Ochannel.php prevent reload loop if somebody lands on /ochannel (without channel_address and without trailing slash) 2018-03-22 13:55:23 +01:00
Oembed.php
Oep.php mod_oep: photos/album/xxxxx is no longer hex2bin/bin2hex but the album hash and is throwing php warnings when trying to decode 2019-03-04 20:07:01 -08:00
Oexchange.php
Ofeed.php
Online.php
Owa.php z6 updates to owa, linkinfo improved image detection 2018-11-04 13:56:32 -08:00
Page.php
Pconfig.php fix preg_match(): Delimiter must not be alphanumeric or backslash warning 2019-01-02 17:53:28 +01:00
Pdledit.php Update Pdledit.php 2018-09-28 19:49:02 +02:00
Permcat.php
Permcats.php fix issues with bs accordions 2018-10-04 22:21:20 +02:00
Photo.php Use goaway() base function 2019-04-27 21:38:54 +02:00
Photos.php use urlencode 2019-03-18 13:29:08 +01:00
Ping.php home notifications won't expand if there are more than 300 unseen network notifications ahead of them. 2018-12-09 20:24:04 -08:00
Poco.php
Poke.php Update Poke.php 2018-09-28 19:49:42 +02:00
Post.php
Prate.php
Pretheme.php
Probe.php remote diagnostics app 2018-10-06 15:21:22 +02:00
Profile_photo.php Add remove profile photo button 2019-04-19 15:30:05 +02:00
Profile.php
Profiles.php fix linkify_tags() so it works with xchans across multiple protocols, also some fixes to activity parsing from upstream. 2019-02-03 16:53:49 -08:00
Profperm.php
Pubsites.php
Pubstream.php some more xss prevention 2019-03-18 21:30:25 +01:00
Randprof.php randprof app 2018-10-06 15:27:46 +02:00
Rate.php
Ratings.php
Ratingsearch.php
Rbmark.php
React.php mid -> uuid conversions for basic reactions 2018-11-15 16:02:29 -08:00
README.md
Regdir.php
Register.php Remove servicelevel logic 2018-09-29 00:17:55 +02:00
Regmod.php refactor the 'where does the register link point?' logic 2018-05-14 19:19:25 -07:00
Regver.php
Removeaccount.php
Removeme.php wrong default param for pubstream_incl (this checkin also picked up a few minor and hopefully non-significant changes) 2018-05-18 16:57:45 -07:00
Rmagic.php rmagic discovery for z6 networks 2018-12-09 16:37:15 -08:00
Rpost.php Status editor hook 2018-09-29 20:22:27 +02:00
Search_ac.php
Search.php Fix double escaping after xss fix 2018-11-13 23:06:00 -05:00
Service_limits.php
Settings.php
Setup.php clone systems apps to the extent possible, auto-configure imagick thumbnail binary during setup if possible 2019-03-18 09:35:53 +01:00
Share.php disable repeat unless mid is a resolvable uri since this will do radically different things on different network stacks (e.g. Diaspora) and it turns out there is no possible way to make Diaspora reshares compatible with ActivityPub or Zot6 repeat/announce/boost/whatever. 2019-02-07 14:38:05 -08:00
Sharedwithme.php remove profile_tabs() which has been deprecated and replaced by channel_apps() 2018-09-13 10:59:37 +02:00
Siteinfo.php the root cause for doubled entries is fixed now 2018-10-08 11:25:49 +02:00
Sitelist.php fix some issues with friend suggestions on standalone sites with no 'suggestme' volunteers. This wrongly pulled up a site directory suggesting everybody on the site. While a better outcome than finding nobody, this does not fit with our ethical design goals. If there are no friends of friends, we will only suggest those who volunteer to be on the default suggestion list. Also do not attempt to load poco data from dead sites. 2018-03-04 17:40:38 -08:00
Smilies.php
Snap.php
Sources.php Update Sources.php 2018-09-28 19:49:56 +02:00
Sslify.php Keep remote site headers for caching 2018-12-17 09:34:30 +01:00
Starred.php
Subthread.php fix subthread on sys channel items 2019-03-23 22:48:52 +01:00
Suggest.php pubstream app 2018-10-06 16:08:15 +02:00
Tagger.php fix typo 2019-03-23 22:49:27 +01:00
Tagrm.php
Tasks.php
Theme_info.php
Thing.php There was no pdl for mod_thing; add one because it's only a link away from profile creation and remains on that page until you go elsewhere and new members may need help to find their way out 2018-03-03 15:19:39 -08:00
Toggle_mobile.php
Toggle_safesearch.php
Token.php Fixes to OAuth2 connect-with-openid. Add zothash Claim. Add zotwebbie Claim. 2018-08-10 12:01:05 -04:00
Tokens.php Update Tokens.php 2018-09-28 19:50:15 +02:00
Uexport.php uexport app 2018-10-04 11:50:38 +02:00
Update.php
Userinfo.php Fixes to OAuth2 connect-with-openid. Add zothash Claim. Add zotwebbie Claim. 2018-08-10 12:01:05 -04:00
View.php
Viewconnections.php use urlencode 2019-03-18 13:29:08 +01:00
Viewsrc.php fix summary and use item_normal_search() for viewsrc so we can also view the source for articles, cards, etc. 2019-02-21 08:48:47 +01:00
Wall_attach.php
Wall_upload.php
Webfinger.php imagemagick preserves exif when scaling. GD does not. We do not want to preserve exif on thumbnails which we have rotated, as a browser reading the exif information could rotate them yet again. This checkin adds an abstract function to the generic photo driver which makes the behaviour consistent by stripping EXIF from imagick processed images. However, we will attempt to preserve any ICC colour profiles. See http://php.net/manual/en/imagick.stripimage.php 2018-04-22 18:12:16 -07:00
Webpages.php Status editor hook 2018-09-29 20:22:27 +02:00
Well_known.php oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
Wfinger.php partial solution for obj|tgt multiple (zot and zot6) encodings; the zot6 version will be stored under $item['obj']['asld'] 2018-12-03 20:09:57 -08:00
Wiki.php fix wiki preview issue with hyperlinks 2018-12-15 18:19:29 +01:00
Xchan.php
Xpoco.php
Xrd.php
Xref.php
Zfinger.php add app_options field 2018-08-02 22:49:30 -07:00
Zot_probe.php missing files 2018-08-15 21:33:11 -07:00
Zot.php push recent changes 2018-11-19 15:04:08 -08:00
Zotfeed.php
Zping.php

Zotlabs/Module

This directory contains controller modules for handling web requests. The lowercase class name indicates the head of the URL path which this module handles. There are other methods of attaching (routing) URL paths to controllers, but this is the primary method used in this project.

Module controllers MUST reside in this directory and namespace to be autoloaded (unless other specific routing methods are employed). They typically use and extend the class definition in Zotlabs/Web/Controller as a template.

Template:

<?php

namespace Zotlabs\Web;


class Controller {

	function init() {}
	function post() {}
	function get() {}

}

Typical Module declaration for the '/foo' URL route:

<?php
namespace Zotlabs\Module;

class Foo extends \Zotlabs\Web\Controller {

	function init() {
		// init() handler goes here
	}

	function post() {
		// post handler goes here
	}

	function get() {
		return 'Hello world.' . EOL;
	}

}

This model provides callbacks for public functions named init(), post(), and get(). init() is always called. post() is called if $_POST variables are present, and get() is called if none of the prior functions terminated the handler. The get() method typically retuns a string which represents the contents of the content region of the resulting page. Modules which emit json, xml or other machine-readable formats typically emit their contents inside the init() function and call 'killme()' to terminate the Module.

Modules are passed the URL path as argc,argv arguments. For a path such as

https://mysite.something/foo/bar/baz

The app will typically invoke the Module class 'Foo' and pass it

$x = argc(); // $x = 3

$x = argv(0); // $x = 'foo'
$x = argv(1); // $x = 'bar'
$x = argv(2); // $x = 'baz'

These are handled in a similar fashion to their counterparts in the Unix shell or C/C++ languages. Do not confuse the argc(),argv() functions with the global variables $argc,$argv which are passed to command line programs. These are handled separately by command line and Zotlabs/Daemon class functions.