streams/Zotlabs/Module
Mario 1b7781a159 Merge branch 'add-delivery-status-info' into 'dev'
Fix: Authors unable to comment on posts they authored when under owned by others…

See merge request hubzilla/core!1268
2018-09-02 09:17:29 +02:00
..
Admin Add translation for missed string 2018-08-10 16:56:22 +02:00
Settings Merge branch 'oauth2-ui-pr' into 'dev' 2018-08-12 14:06:24 +02:00
Achievements.php remove the app $a passed to profile_load, also add profile_load to mod_wiki which should fix issue #431 2016-06-26 22:13:59 -07:00
Acl.php disable log noise until it is needed 2018-06-25 13:42:21 -07:00
Admin.php do not count sys channel in totals 2018-09-01 13:43:32 +02:00
Api.php scrutinizer issues: none worthy of including in 3.0, there will likely be a few hundred more before all is said and done. 2018-01-08 14:45:21 -08:00
Appman.php app sellpage not being stored 2018-03-24 15:13:19 -07:00
Apporder.php fix issues with apporder related to recent pinned apps changes 2017-11-19 22:42:16 +01:00
Apps.php don't provide manage apps button when viewing all available 2018-07-05 22:03:41 -07:00
Article_edit.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
Articles.php tweak archive widget for articles 2018-08-22 13:30:16 -07:00
Attach.php check code rights on cloud files 2017-09-05 21:38:07 -07:00
Authorize.php oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
Authtest.php module updates 2016-04-18 20:38:38 -07:00
Block.php remove unused page_widgets.php include and provide a general function for loading sql from file to use in the cdav migration 2017-06-22 22:43:08 -07:00
Blocks.php remove the app $a passed to profile_load, also add profile_load to mod_wiki which should fix issue #431 2016-06-26 22:13:59 -07:00
Bookmarks.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Branchtopic.php module updates 2016-04-18 20:38:38 -07:00
Cal.php rename channel app events to calendar and add nav_set_selected() to /cal 2017-11-07 11:22:11 +01:00
Card_edit.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
Cards.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
Cdav.php strip acct: from OWA auth to API endpoints 2017-12-07 18:56:26 -08:00
Changeaddr.php allow channel address to be changed 2017-08-04 19:02:41 -07:00
Channel.php more code optimisation 2018-08-20 22:02:08 -07:00
Chanview.php make unicode usernames work in chanview module 2018-03-14 00:50:12 -07:00
Chat.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +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.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
Cloud_tiles.php make most recent cloud_tiles setting for local channels persistent across logins 2017-11-07 19:34:00 -08:00
Common.php some basic work on mod common 2017-10-03 11:37:45 +02:00
Connect.php command line connect utility. 2016-11-01 15:27:34 -07:00
Connections.php escape query string 2018-06-07 22:45:07 +02:00
Connedit.php When checking permissions ignore checking site "Block Public" settings in cases where site permissions aren't applicable 2018-07-30 17:41:37 -07:00
Contactgroup.php more backquotes - this should take care of most except for the array import queries 2016-10-09 16:31:04 -07:00
Cover_photo.php imagick converter: -thumbnail doesn't preserve exif, -resize does 2018-06-26 17:19:32 -07:00
Dav.php strip acct: from OWA auth to API endpoints 2017-12-07 18:56:26 -08:00
Defperms.php When checking permissions ignore checking site "Block Public" settings in cases where site permissions aren't applicable 2018-07-30 17:41:37 -07:00
Directory.php escape query string 2018-06-07 22:45:07 +02:00
Dirsearch.php do not include system channels in directory results 2018-06-25 23:20:02 -07:00
Display.php remove checkjs reloader from mod_display also 2018-08-20 20:07:54 -07:00
Dreport.php allow delivery report for not just the author, but also if you're the owner and it's on your wall. 2016-10-03 20:50:13 -07:00
Editblock.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
Editlayout.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
Editpost.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
Editwebpage.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07: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
Embedphotos.php use embed photos javascript widget to select existing photos for profile and cover photos 2018-02-23 19:23:17 -08:00
Events.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Fbrowser.php more backquotes - this should take care of most except for the array import queries 2016-10-09 16:31:04 -07:00
Feed.php issues with feed parameters 2018-01-02 14:04:43 -08:00
Fhublocs.php fix typos 2017-01-31 09:43:58 +01:00
File_upload.php remove logging line 2017-11-30 19:11:26 -08:00
Filer.php fix item_list and item_search templates. make item filer use a bootdtrap modal and some css and class fixes 2017-03-17 14:22:10 +01:00
Filerm.php more db column renames 2016-05-31 21:45:33 -07:00
Filestorage.php fix undefined constant warning 2018-09-01 21:09:04 +02:00
Follow.php more work with unicode usernames 2018-03-14 18:42:07 -07:00
Getfile.php use the same variable name consistently 2017-11-29 14:08:30 -08: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 some work on mod group 2018-06-17 16:58:12 +02:00
Hashtags.php allow case independence of replacements as well as patterns 2018-03-30 01:59:32 -07:00
Hcard.php missing space in nav tpl 2017-06-28 16:45:48 -07:00
Help.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Home.php re-implement/refactor getQuotaInfo() on DAV storage 2018-06-14 20:40:25 -07:00
Hostxrd.php minor theming and whitespace 2017-02-08 19:47:34 -08:00
Hq.php missing permission description 2018-05-21 09:25:57 +02:00
Impel.php pagetitle lost importing a pdl element from conversation 2017-12-03 19:12:55 -08:00
Import.php new feature (post 3.4): allow a different username to be used when importing. 2018-05-01 20:29:07 -07:00
Import_items.php 🔒 Add CSRF protection for import and import_items. 2017-03-30 23:17:32 +02:00
Invite.php uid is integer 2018-06-13 16:37:16 -07:00
Item.php Fix: Authors unable to comment on posts they authored when under owned by others in certain circumstances. 2018-09-01 13:45:05 -04:00
Lang.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Layouts.php pagetitle lost importing a pdl element from conversation 2017-12-03 19:12:55 -08:00
Like.php fix permalinks to children of articles and cards 2018-04-05 16:58:37 -07:00
Linkinfo.php provide function to fetch photo contents from url 2018-05-15 16:51:04 -07:00
Lockview.php many dropdown and class fixes. still a long way to go... 2017-03-12 21:11:28 +01:00
Locs.php provide /locs link on settings page if there is more than one hubloc for this channnel *that isn't deleted*. 2016-11-05 03:31:50 -07:00
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 Unify the various mail sending instance to enotify::send() and z_mail(). Both take the same arguments. z_mail() is text only, enotify::send() provides html and text. Both are pluggable using the enotfy_send hook. 2016-10-01 03:06:01 -07:00
Magic.php query filter was a bit greedy 2018-07-18 17:48:23 -07:00
Mail.php hubzilla issue #1020 - PM using unicode domain for recipient. May require further testing 2018-03-30 15:18:33 -07:00
Manage.php mangled urls on redirects 2018-07-18 17:05:38 -07:00
Menu.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
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 feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Network.php remove distinct from network query again until performance issue is resolved or another fix for the underlying problem is found 2018-08-27 10:19:10 +02:00
New_channel.php new_channel - make text strings translatable and use the name as a base for the nick if you try to create without entering a nick 2018-05-21 20:17:17 -07:00
Nojs.php mangled urls on redirects 2018-07-18 17:05:38 -07:00
Notes.php module updates 2016-04-18 20:38:38 -07: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 some more work on mod hq 2017-11-18 22:16:06 +01:00
Oauth2testvehicle.php disable the oauth2testvehicle completely until it is safe 2018-04-03 21:58:11 -07: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 add rel=noopener to all external target _blank links 2017-06-14 16:56:13 +02:00
Oep.php make the cloud logging a bit less verbose until we actually need it. 2018-05-02 22:05:55 -07:00
Oexchange.php minor theming and whitespace 2017-02-08 19:47:34 -08:00
Ofeed.php issues with feed parameters 2018-01-02 14:04:43 -08:00
Online.php module updates 2016-04-18 20:38:38 -07:00
Owa.php owa: attempt channel discovery if not found 2018-04-22 19:24:15 -07:00
Page.php allow plugin class widgets, fix sql error in page module 2017-10-29 19:52:00 -07:00
Pconfig.php missing class instance pointer in Pconfig module upgrade 2016-04-19 19:09:35 -07:00
Pdledit.php pdledit - show original/system layout text for comparison 2017-10-31 18:04:01 -07:00
Permcat.php move permcat library functions to Zlib 2017-02-07 16:43:00 -08:00
Photo.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
Photos.php escape query string 2018-06-07 22:45:07 +02:00
Ping.php add the pf argument to the forum notification links 2018-06-06 18:02:25 +02:00
Poco.php module updates 2016-04-18 20:38:38 -07:00
Poke.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Post.php whitespace 2017-09-25 23:39:48 -07:00
Prate.php daemon conversion continued... 2016-05-19 22:26:37 -07:00
Pretheme.php module updates 2016-04-18 20:38:38 -07:00
Probe.php add app_options field 2018-08-02 22:49:30 -07:00
Profile.php remove deprecated $a argument from advanced_profile() 2017-11-23 20:35:34 -08:00
Profile_photo.php provide warnings about profile photo and cover photo permissions 2018-05-01 16:54:54 -07:00
Profiles.php rename relation to relationship - issue #1044 2018-04-07 13:50:41 +02:00
Profperm.php Create virtual privacy groups for private profile member lists 2017-02-12 15:56:33 -08:00
Pubsites.php comment out statistics link in mod pubsites until we have something functional again 2017-10-24 18:21:19 +02:00
Pubstream.php apply changes to slider defaults across all modules that use buildQuery for updates 2018-06-15 15:21:19 -07:00
Randprof.php convert randprof to use chanlink_hash() instead of chanlink_url() and filter sys channels by xchan.xchan_system instead of xchan_addr != sys@% 2017-06-03 10:13:42 +02:00
Rate.php ratings are gone. They can be enabled, but there is no UI for doing so at this time; and will likely only be available in a 'pro' configuration once the new implementation details have been hashed out. This appears to require a mechanism for rebuttal before it can again be opened to the public. There are also some synchronisation issues to contend with; as ratings are currently only distributed to active directory servers. There is no reliable mechanism for a new directory server to fetch existing ratings. 2016-08-25 17:43:07 -07:00
Ratings.php ratings are gone. They can be enabled, but there is no UI for doing so at this time; and will likely only be available in a 'pro' configuration once the new implementation details have been hashed out. This appears to require a mechanism for rebuttal before it can again be opened to the public. There are also some synchronisation issues to contend with; as ratings are currently only distributed to active directory servers. There is no reliable mechanism for a new directory server to fetch existing ratings. 2016-08-25 17:43:07 -07:00
Ratingsearch.php add the hidden flag also 2016-07-27 16:14:46 -07:00
Rbmark.php module updates 2016-04-18 20:38:38 -07:00
React.php fix permalinks to children of articles and cards 2018-04-05 16:58:37 -07:00
README.md readme for the module directory, also provide an undocumented way to reset the timestamp on connection photos to force a refresh without messing with the database directly. 2016-06-14 17:04:29 -07:00
Regdir.php sql: limit 1 for UPDATE and DELETE is not supported by the SQL standard and postgresql 2016-10-27 02:41:32 +02:00
Register.php refactor the 'where does the register link point?' logic 2018-05-14 19:19:25 -07:00
Regmod.php refactor the 'where does the register link point?' logic 2018-05-14 19:19:25 -07:00
Regver.php module updates 2016-04-18 20:38:38 -07:00
Removeaccount.php null_date conversion; phase 1 2016-09-25 17:06:13 -07:00
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 mangled urls on redirects 2018-07-18 17:05:38 -07:00
Rpost.php add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
Search.php apply changes to slider defaults across all modules that use buildQuery for updates 2018-06-15 15:21:19 -07:00
Search_ac.php Bring the saved search feature in line with the spec, and publish the feature spec. 2016-09-28 20:55:15 -07:00
Service_limits.php module updates 2016-04-18 20:38:38 -07:00
Settings.php provide a mechanism to mark apps active in the bin 2017-07-21 10:32:21 +02:00
Setup.php Setup - .htconfig.php write access is now required for automated installation. [String change - leave in dev for the next release] 2018-03-11 16:42:46 -07:00
Share.php add auth flag to share attributes so we can make a costly determination to use zid at post submission time instead of making multiple calls to is_matrix_url() at render time 2018-03-15 17:51:24 -07:00
Sharedwithme.php improve file_activity() a little 2017-07-31 16:59:43 +02:00
Siteinfo.php Fix duplicate transport displaying 2018-07-25 22:28:21 +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 module updates 2016-04-18 20:38:38 -07:00
Snap.php since the snap module runs without permissions controls, verify the logged in channel matches the requested cloud path 2016-10-09 21:36:55 -07:00
Sources.php prevent json-ld bombing, turn off browser autocomplete on channel sources creation 2018-08-11 16:16:54 -07:00
Sslify.php there are occasional sites which use different capitalisation of Content-Type; which is rare, but completely legal. 2016-12-15 18:08:23 -08:00
Starred.php fix "unstar" 2017-10-28 15:24:37 -07:00
Subthread.php pubstream comments and a few other bugfixes that were discovered along the way 2017-11-26 18:29:24 -08:00
Suggest.php feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Tagger.php display and link issues with quoted tags 2018-03-29 17:06:23 -07:00
Tagrm.php more backticks 2016-10-03 21:48:53 -07:00
Tasks.php last remaining task in tasklist was not removed from view when 'completed' 2017-08-23 23:59:05 -07:00
Theme_info.php put theme config into its own namespace 2016-09-01 22:20:08 -07:00
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 module updates 2016-04-18 20:38:38 -07:00
Toggle_safesearch.php module updates 2016-04-18 20:38:38 -07:00
Token.php Fixes to OAuth2 connect-with-openid. Add zothash Claim. Add zotwebbie Claim. 2018-08-10 12:01:05 -04:00
Uexport.php uexport: set content-type to json and add sections info to the default filename if present 2018-03-27 18:43:59 -07:00
Update.php explain what happened here 2017-12-04 21:39:53 -08:00
Userinfo.php Fixes to OAuth2 connect-with-openid. Add zothash Claim. Add zotwebbie Claim. 2018-08-10 12:01:05 -04:00
View.php module updates 2016-04-18 20:38:38 -07:00
Viewconnections.php escape query string 2018-06-07 22:45:07 +02:00
Viewsrc.php fix issue #1219 2018-06-09 16:38:15 +02:00
Wall_attach.php change to bbcode calling parameters: important: will require pulling addons; 2017-11-23 15:21:50 -08:00
Wall_upload.php deprecate/remove get_channel_by_nick() which is just a less generalised variant of channelx_by_nick() 2016-11-08 18:15:57 -08:00
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 feed untranslated appnames to nav_set_selected() and query for the active app directly to get app details 2017-10-09 21:22:57 +02:00
Well_known.php oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
Wfinger.php oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
Wiki.php Update Wiki.php 2018-08-25 21:26:50 +02:00
Xchan.php module updates 2016-04-18 20:38:38 -07:00
Xpoco.php module updates 2016-04-18 20:38:38 -07:00
Xrd.php we need this in the plugin, not in core 2017-09-20 19:34:43 -07:00
Xref.php module updates 2016-04-18 20:38:38 -07:00
Zfinger.php add app_options field 2018-08-02 22:49:30 -07:00
Zot.php bring some Zot6 libraries and interfaces to red/hubzilla 2018-08-06 17:43:22 -07:00
Zot_probe.php missing files 2018-08-15 21:33:11 -07:00
Zotfeed.php authenticate onepoll so we can receive private posts/comments in zotfeed; if local server bypass the network access and invoke zotfeed directly. 2017-05-01 15:14:10 +02:00
Zping.php module updates 2016-04-18 20:38:38 -07:00

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.