6278 lines
No EOL
168 KiB
HTML
6278 lines
No EOL
168 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<meta name="description" content="Friendica is a decentralised communications platform that integrates social communication. Our platform links to independent social projects and corporate services.">
|
|
|
|
|
|
<meta name="author" content="The Friendica project">
|
|
|
|
|
|
<link rel="canonical" href="https://friendi.ca/developer/addons/">
|
|
|
|
<link rel="icon" href="../../assets/images/friendica-32.png">
|
|
<meta name="generator" content="mkdocs-1.3.0, mkdocs-material-8.3.8">
|
|
|
|
|
|
|
|
<title>Addons - Friendica documentation</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/main.1d29e8d0.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/palette.cbb835fc.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/friendica.css">
|
|
|
|
<script>__md_scope=new URL("../..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="" data-md-color-primary="none" data-md-color-accent="none">
|
|
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#friendica-addon-development" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<header class="md-header" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href="https://friendi.ca" title="Friendica documentation" class="md-header__button md-logo" aria-label="Friendica documentation" data-md-component="logo">
|
|
|
|
<img src="../../assets/images/friendica.svg" alt="logo">
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
Friendica documentation
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
Addons
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="md-header__option">
|
|
<div class="md-select">
|
|
|
|
<button class="md-header__button md-icon" aria-label="Select language">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
|
|
</button>
|
|
<div class="md-select__inner">
|
|
<ul class="md-select__list">
|
|
|
|
<li class="md-select__item">
|
|
<a href="./" hreflang="en" class="md-select__link">
|
|
English
|
|
</a>
|
|
</li>
|
|
|
|
<li class="md-select__item">
|
|
<a href="../../de/developer/addons/" hreflang="de" class="md-select__link">
|
|
Deutsch
|
|
</a>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<a href="javascript:void(0)" class="md-search__icon md-icon" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"/></svg>
|
|
</a>
|
|
|
|
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/friendica/friendica" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
friendica/friendica
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
|
<div class="md-tabs__inner md-grid">
|
|
<ul class="md-tabs__list">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../.." class="md-tabs__link">
|
|
Home
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../user/account-basics/" class="md-tabs__link">
|
|
User
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../admin/install/" class="md-tabs__link">
|
|
Admin
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../" class="md-tabs__link md-tabs__link--active">
|
|
Developer
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../bugs-and-issues/" class="md-tabs__link">
|
|
Bugs and Issues
|
|
</a>
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href="https://friendi.ca" title="Friendica documentation" class="md-nav__button md-logo" aria-label="Friendica documentation" data-md-component="logo">
|
|
|
|
<img src="../../assets/images/friendica.svg" alt="logo">
|
|
|
|
</a>
|
|
Friendica documentation
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/friendica/friendica" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
friendica/friendica
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../.." class="md-nav__link">
|
|
Home
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2">
|
|
User
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="User" data-md-level="1">
|
|
<label class="md-nav__title" for="__nav_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
User
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1" type="checkbox" id="__nav_2_1" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2_1">
|
|
First Steps
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="First Steps" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_2_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
First Steps
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/account-basics/" class="md-nav__link">
|
|
Account Basics
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_1_2" type="checkbox" id="__nav_2_1_2" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2_1_2">
|
|
Quick Start
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Quick Start" data-md-level="3">
|
|
<label class="md-nav__title" for="__nav_2_1_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Quick Start
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/quick-start/guide/" class="md-nav__link">
|
|
Start
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/quick-start/network/" class="md-nav__link">
|
|
Network
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/quick-start/groups-and-pages/" class="md-nav__link">
|
|
Groups & Pages
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/quick-start/making-new-friends/" class="md-nav__link">
|
|
Making new friends
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/quick-start/finally/" class="md-nav__link">
|
|
Finally
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/text-editor/" class="md-nav__link">
|
|
Text editor
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/bbcode/" class="md-nav__link">
|
|
BBCode
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/text-comment/" class="md-nav__link">
|
|
Comments
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/accesskeys/" class="md-nav__link">
|
|
Accesskeys
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/events/" class="md-nav__link">
|
|
Events
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/keyboard-shortcuts/" class="md-nav__link">
|
|
Shortcuts
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_2" type="checkbox" id="__nav_2_2" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2_2">
|
|
You and other users
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="You and other users" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_2_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
You and other users
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/connectors/" class="md-nav__link">
|
|
Connectors
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/making-friends/" class="md-nav__link">
|
|
Making friends
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/groups-and-privacy/" class="md-nav__link">
|
|
Groups & Privacy
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/tags-and-mentions/" class="md-nav__link">
|
|
Tags & Mentions
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/forums/" class="md-nav__link">
|
|
Forums
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/chats/" class="md-nav__link">
|
|
Chats
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_3" type="checkbox" id="__nav_2_3" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2_3">
|
|
Further information
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Further information" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_2_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Further information
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/move-account/" class="md-nav__link">
|
|
Move account
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/export-import-contacts/" class="md-nav__link">
|
|
Import / Export Contacts
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/remove-account/" class="md-nav__link">
|
|
Remove account
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/two-factor-authentication/" class="md-nav__link">
|
|
2FA
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../user/faq/" class="md-nav__link">
|
|
FAQ
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3">
|
|
Admin
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Admin" data-md-level="1">
|
|
<label class="md-nav__title" for="__nav_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Admin
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_1" type="checkbox" id="__nav_3_1" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3_1">
|
|
Installation
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Installation" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_3_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Installation
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/install/" class="md-nav__link">
|
|
Installation
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/update/" class="md-nav__link">
|
|
Update
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/migrate/" class="md-nav__link">
|
|
Migrate
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_2" type="checkbox" id="__nav_3_2" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3_2">
|
|
Configuration
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Configuration" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_3_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Configuration
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/settings/" class="md-nav__link">
|
|
Settings
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/config/" class="md-nav__link">
|
|
Config Values
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/ssl/" class="md-nav__link">
|
|
SSL
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/improve-performance/" class="md-nav__link">
|
|
Improve Performance
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/tools/" class="md-nav__link">
|
|
Tools
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3_3" type="checkbox" id="__nav_3_3" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3_3">
|
|
Third Party
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Third Party" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_3_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Third Party
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/installing-connectors/" class="md-nav__link">
|
|
Connectors
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/install-ejabberd/" class="md-nav__link">
|
|
Install ejabberd
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../admin/faq/" class="md-nav__link">
|
|
FAQ
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4">
|
|
Developer
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Developer" data-md-level="1">
|
|
<label class="md-nav__title" for="__nav_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Developer
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../" class="md-nav__link">
|
|
Get Started
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_2" type="checkbox" id="__nav_4_2" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_2">
|
|
Set Up
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Set Up" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_4_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Set Up
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../github/" class="md-nav__link">
|
|
GitHub
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../vagrant/" class="md-nav__link">
|
|
Vagrant
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" type="checkbox" id="__nav_4_3" checked>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_3">
|
|
Code structure
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Code structure" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_4_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Code structure
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../domain-driven-design/" class="md-nav__link">
|
|
DDD
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
Addons
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
Addons
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#naming" class="md-nav__link">
|
|
Naming
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#metadata" class="md-nav__link">
|
|
Metadata
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#installuninstall" class="md-nav__link">
|
|
Install/Uninstall
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#php-addon-hooks" class="md-nav__link">
|
|
PHP addon hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="PHP addon hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#arguments" class="md-nav__link">
|
|
Arguments
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Arguments">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#a" class="md-nav__link">
|
|
$a
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#b" class="md-nav__link">
|
|
$b
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#admin-settings" class="md-nav__link">
|
|
Admin settings
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#global-stylesheets" class="md-nav__link">
|
|
Global stylesheets
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#javascript" class="md-nav__link">
|
|
JavaScript
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="JavaScript">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#global-scripts" class="md-nav__link">
|
|
Global scripts
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#javascript-hooks" class="md-nav__link">
|
|
JavaScript hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="JavaScript hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#current-javascript-hooks" class="md-nav__link">
|
|
Current JavaScript hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Current JavaScript hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#postprocess_liveupdate" class="md-nav__link">
|
|
postprocess_liveupdate
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modules" class="md-nav__link">
|
|
Modules
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#templates" class="md-nav__link">
|
|
Templates
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#current-php-hooks" class="md-nav__link">
|
|
Current PHP hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Current PHP hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#authenticate" class="md-nav__link">
|
|
authenticate
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#logged_in" class="md-nav__link">
|
|
logged_in
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#display_item" class="md-nav__link">
|
|
display_item
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#post_local" class="md-nav__link">
|
|
post_local
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#post_local_end" class="md-nav__link">
|
|
post_local_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#post_remote" class="md-nav__link">
|
|
post_remote
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#addon_settings" class="md-nav__link">
|
|
addon_settings
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="addon_settings">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#examples" class="md-nav__link">
|
|
Examples
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Examples">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-link" class="md-nav__link">
|
|
With link
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-default-submit-button" class="md-nav__link">
|
|
With default submit button
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-no-html-just-a-submit-button" class="md-nav__link">
|
|
With no HTML, just a submit button
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-multiple-submit-buttons" class="md-nav__link">
|
|
With multiple submit buttons
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#addon_settings_post" class="md-nav__link">
|
|
addon_settings_post
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#connector_settings" class="md-nav__link">
|
|
connector_settings
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="connector_settings">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#examples_1" class="md-nav__link">
|
|
Examples
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Examples">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-default-submit-button_1" class="md-nav__link">
|
|
With default submit button
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-custom-submit-button-label-and-no-logo-dim" class="md-nav__link">
|
|
With custom submit button label and no logo dim
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-conditional-submit-buttons" class="md-nav__link">
|
|
With conditional submit buttons
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_post" class="md-nav__link">
|
|
profile_post
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_edit" class="md-nav__link">
|
|
profile_edit
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_advanced" class="md-nav__link">
|
|
profile_advanced
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#directory_item" class="md-nav__link">
|
|
directory_item
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_sidebar_enter" class="md-nav__link">
|
|
profile_sidebar_enter
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_sidebar" class="md-nav__link">
|
|
profile_sidebar
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#contact_block_end" class="md-nav__link">
|
|
contact_block_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#bbcode" class="md-nav__link">
|
|
bbcode
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#html2bbcode" class="md-nav__link">
|
|
html2bbcode
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#head" class="md-nav__link">
|
|
head
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#page_header" class="md-nav__link">
|
|
page_header
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#personal_xrd" class="md-nav__link">
|
|
personal_xrd
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#home_content" class="md-nav__link">
|
|
home_content
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#contact_edit" class="md-nav__link">
|
|
contact_edit
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#contact_edit_post" class="md-nav__link">
|
|
contact_edit_post
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#init_1" class="md-nav__link">
|
|
init_1
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#page_end" class="md-nav__link">
|
|
page_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#footer" class="md-nav__link">
|
|
footer
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#avatar_lookup" class="md-nav__link">
|
|
avatar_lookup
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#emailer_send_prepare" class="md-nav__link">
|
|
emailer_send_prepare
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#emailer_send" class="md-nav__link">
|
|
emailer_send
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#load_config" class="md-nav__link">
|
|
load_config
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#nav_info" class="md-nav__link">
|
|
nav_info
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#template_vars" class="md-nav__link">
|
|
template_vars
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#acl_lookup_end" class="md-nav__link">
|
|
acl_lookup_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body_init" class="md-nav__link">
|
|
prepare_body_init
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body_content_filter" class="md-nav__link">
|
|
prepare_body_content_filter
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body" class="md-nav__link">
|
|
prepare_body
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body_final" class="md-nav__link">
|
|
prepare_body_final
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#put_item_in_cache" class="md-nav__link">
|
|
put_item_in_cache
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#magic_auth_success" class="md-nav__link">
|
|
magic_auth_success
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#jot_networks" class="md-nav__link">
|
|
jot_networks
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#route_collection" class="md-nav__link">
|
|
route_collection
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#probe_detect" class="md-nav__link">
|
|
probe_detect
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#item_by_link" class="md-nav__link">
|
|
item_by_link
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#support_follow" class="md-nav__link">
|
|
support_follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#support_revoke_follow" class="md-nav__link">
|
|
support_revoke_follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#follow" class="md-nav__link">
|
|
follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#unfollow" class="md-nav__link">
|
|
unfollow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#revoke_follow" class="md-nav__link">
|
|
revoke_follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#block" class="md-nav__link">
|
|
block
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#unblock" class="md-nav__link">
|
|
unblock
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#storage_instance" class="md-nav__link">
|
|
storage_instance
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#storage_config" class="md-nav__link">
|
|
storage_config
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#complete-list-of-hook-callbacks" class="md-nav__link">
|
|
Complete list of hook callbacks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Complete list of hook callbacks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#indexphp" class="md-nav__link">
|
|
index.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#includeapiphp" class="md-nav__link">
|
|
include/api.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#includeenotifyphp" class="md-nav__link">
|
|
include/enotify.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentconversationphp" class="md-nav__link">
|
|
src/Content/Conversation.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#moddirectoryphp" class="md-nav__link">
|
|
mod/directory.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modxrdphp" class="md-nav__link">
|
|
mod/xrd.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modparse_urlphp" class="md-nav__link">
|
|
mod/parse_url.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmoduledelegationphp" class="md-nav__link">
|
|
src/Module/Delegation.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modaclphp" class="md-nav__link">
|
|
mod/acl.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modnetworkphp" class="md-nav__link">
|
|
mod/network.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modfriendicaphp" class="md-nav__link">
|
|
mod/friendica.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modprofilesphp" class="md-nav__link">
|
|
mod/profiles.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modsettingsphp" class="md-nav__link">
|
|
mod/settings.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modphotosphp" class="md-nav__link">
|
|
mod/photos.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modprofilephp" class="md-nav__link">
|
|
mod/profile.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modhomephp" class="md-nav__link">
|
|
mod/home.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modpokephp" class="md-nav__link">
|
|
mod/poke.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modcontactsphp" class="md-nav__link">
|
|
mod/contacts.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modtaggerphp" class="md-nav__link">
|
|
mod/tagger.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#moduexportphp" class="md-nav__link">
|
|
mod/uexport.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modregisterphp" class="md-nav__link">
|
|
mod/register.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#moditemphp" class="md-nav__link">
|
|
mod/item.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modeditpostphp" class="md-nav__link">
|
|
mod/editpost.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcrenderfriendicasmartyenginephp" class="md-nav__link">
|
|
src/Render/FriendicaSmartyEngine.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcappphp" class="md-nav__link">
|
|
src/App.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelitemphp" class="md-nav__link">
|
|
src/Model/Item.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelcontactphp" class="md-nav__link">
|
|
src/Model/Contact.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelprofilephp" class="md-nav__link">
|
|
src/Model/Profile.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodeleventphp" class="md-nav__link">
|
|
src/Model/Event.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelregisterphp" class="md-nav__link">
|
|
src/Model/Register.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodeluserphp" class="md-nav__link">
|
|
src/Model/User.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulenotificationspingphp" class="md-nav__link">
|
|
src/Module/Notifications/Ping.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulepermissiontooltipphp" class="md-nav__link">
|
|
src/Module/PermissionTooltip.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulesettingsdelegationphp" class="md-nav__link">
|
|
src/Module/Settings/Delegation.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulesettingstwofactorindexphp" class="md-nav__link">
|
|
src/Module/Settings/TwoFactor/Index.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcsecurityauthenticatephp" class="md-nav__link">
|
|
src/Security/Authenticate.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcsecurityexauthphp" class="md-nav__link">
|
|
src/Security/ExAuth.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentcontactblockphp" class="md-nav__link">
|
|
src/Content/ContactBlock.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontenttextbbcodephp" class="md-nav__link">
|
|
src/Content/Text/BBCode.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontenttexthtmlphp" class="md-nav__link">
|
|
src/Content/Text/HTML.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentsmiliesphp" class="md-nav__link">
|
|
src/Content/Smilies.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentfeaturephp" class="md-nav__link">
|
|
src/Content/Feature.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentcontactselectorphp" class="md-nav__link">
|
|
src/Content/ContactSelector.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentoembedphp" class="md-nav__link">
|
|
src/Content/OEmbed.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentnavphp" class="md-nav__link">
|
|
src/Content/Nav.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreauthenticationphp" class="md-nav__link">
|
|
src/Core/Authentication.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreprotocolphp" class="md-nav__link">
|
|
src/Core/Protocol.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccorestoragemanager" class="md-nav__link">
|
|
src/Core/StorageManager
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcworkerdirectoryphp" class="md-nav__link">
|
|
src/Worker/Directory.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcworkernotifierphp" class="md-nav__link">
|
|
src/Worker/Notifier.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmoduleloginphp" class="md-nav__link">
|
|
src/Module/Login.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulelogoutphp" class="md-nav__link">
|
|
src/Module/Logout.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcobjectpostphp" class="md-nav__link">
|
|
src/Object/Post.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreaclphp" class="md-nav__link">
|
|
src/Core/ACL.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreauthenticationphp_1" class="md-nav__link">
|
|
src/Core/Authentication.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccorehookphp" class="md-nav__link">
|
|
src/Core/Hook.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccorel10nl10nphp" class="md-nav__link">
|
|
src/Core/L10n/L10n.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreworkerphp" class="md-nav__link">
|
|
src/Core/Worker.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilemailerphp" class="md-nav__link">
|
|
src/Util/Emailer.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilmapphp" class="md-nav__link">
|
|
src/Util/Map.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilnetworkphp" class="md-nav__link">
|
|
src/Util/Network.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilparseurlphp" class="md-nav__link">
|
|
src/Util/ParseUrl.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcprotocoldfrnphp" class="md-nav__link">
|
|
src/Protocol/DFRN.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcprotocolemailphp" class="md-nav__link">
|
|
src/Protocol/Email.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#viewjsmainjs" class="md-nav__link">
|
|
view/js/main.js
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../themes/" class="md-nav__link">
|
|
Themes
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../smarty3-templates/" class="md-nav__link">
|
|
Smarty3
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../addon-storage-backend/" class="md-nav__link">
|
|
Addon Storage Backend
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_4" type="checkbox" id="__nav_4_4" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_4">
|
|
How To
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="How To" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_4_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
How To
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../translations/" class="md-nav__link">
|
|
Translations
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../composer/" class="md-nav__link">
|
|
Composer
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../how-to-move-classes-to-src/" class="md-nav__link">
|
|
src Migration
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../tests/" class="md-nav__link">
|
|
Tests
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../autoloader/" class="md-nav__link">
|
|
Autoloader
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5" type="checkbox" id="__nav_4_5" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_5">
|
|
Specification
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Specification" data-md-level="2">
|
|
<label class="md-nav__title" for="__nav_4_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Specification
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5_1" type="checkbox" id="__nav_4_5_1" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_5_1">
|
|
API
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="API" data-md-level="3">
|
|
<label class="md-nav__title" for="__nav_4_5_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
API
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/api/" class="md-nav__link">
|
|
Usage
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/api/entities/" class="md-nav__link">
|
|
Entities
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/api/friendica/" class="md-nav__link">
|
|
Friendica
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/api/mastodon/" class="md-nav__link">
|
|
Mastodon
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/api/twitter/" class="md-nav__link">
|
|
Twitter
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/api/gnu-social/" class="md-nav__link">
|
|
GNU Social
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5_2" type="checkbox" id="__nav_4_5_2" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_5_2">
|
|
Database
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Database" data-md-level="3">
|
|
<label class="md-nav__title" for="__nav_4_5_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Database
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/" class="md-nav__link">
|
|
Database Tables
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_2fa_app_specific_password/" class="md-nav__link">
|
|
2fa_app_specific_password
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_2fa_recovery_codes/" class="md-nav__link">
|
|
2fa_recovery_codes
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_2fa_trusted_browser/" class="md-nav__link">
|
|
2fa_trusted_browser
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_addon/" class="md-nav__link">
|
|
addon
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_apcontact/" class="md-nav__link">
|
|
apcontact
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_application/" class="md-nav__link">
|
|
application
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_application-marker/" class="md-nav__link">
|
|
application-marker
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_application-token/" class="md-nav__link">
|
|
application-token
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_attach/" class="md-nav__link">
|
|
attach
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_cache/" class="md-nav__link">
|
|
cache
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_config/" class="md-nav__link">
|
|
config
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_contact/" class="md-nav__link">
|
|
contact
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_contact-relation/" class="md-nav__link">
|
|
contact-relation
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_conv/" class="md-nav__link">
|
|
conv
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_conversation/" class="md-nav__link">
|
|
conversation
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_delayed-post/" class="md-nav__link">
|
|
delayed-post
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_diaspora-interaction/" class="md-nav__link">
|
|
diaspora-interaction
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_endpoint/" class="md-nav__link">
|
|
endpoint
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_event/" class="md-nav__link">
|
|
event
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_fcontact/" class="md-nav__link">
|
|
fcontact
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_fsuggest/" class="md-nav__link">
|
|
fsuggest
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_group/" class="md-nav__link">
|
|
group
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_group_member/" class="md-nav__link">
|
|
group_member
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_gserver/" class="md-nav__link">
|
|
gserver
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_gserver-tag/" class="md-nav__link">
|
|
gserver-tag
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_hook/" class="md-nav__link">
|
|
hook
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_inbox-entry/" class="md-nav__link">
|
|
inbox-entry
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_inbox-entry-receiver/" class="md-nav__link">
|
|
inbox-entry-receiver
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_inbox-status/" class="md-nav__link">
|
|
inbox-status
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_intro/" class="md-nav__link">
|
|
intro
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_item-uri/" class="md-nav__link">
|
|
item-uri
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_locks/" class="md-nav__link">
|
|
locks
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_mail/" class="md-nav__link">
|
|
mail
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_mailacct/" class="md-nav__link">
|
|
mailacct
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_manage/" class="md-nav__link">
|
|
manage
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_notification/" class="md-nav__link">
|
|
notification
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_notify/" class="md-nav__link">
|
|
notify
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_notify-threads/" class="md-nav__link">
|
|
notify-threads
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_oembed/" class="md-nav__link">
|
|
oembed
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_openwebauth-token/" class="md-nav__link">
|
|
openwebauth-token
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_parsed_url/" class="md-nav__link">
|
|
parsed_url
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_pconfig/" class="md-nav__link">
|
|
pconfig
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_permissionset/" class="md-nav__link">
|
|
permissionset
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_photo/" class="md-nav__link">
|
|
photo
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post/" class="md-nav__link">
|
|
post
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-category/" class="md-nav__link">
|
|
post-category
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-collection/" class="md-nav__link">
|
|
post-collection
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-content/" class="md-nav__link">
|
|
post-content
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-delivery/" class="md-nav__link">
|
|
post-delivery
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-delivery-data/" class="md-nav__link">
|
|
post-delivery-data
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-history/" class="md-nav__link">
|
|
post-history
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-link/" class="md-nav__link">
|
|
post-link
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-media/" class="md-nav__link">
|
|
post-media
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-question/" class="md-nav__link">
|
|
post-question
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-question-option/" class="md-nav__link">
|
|
post-question-option
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-tag/" class="md-nav__link">
|
|
post-tag
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-thread/" class="md-nav__link">
|
|
post-thread
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-thread-user/" class="md-nav__link">
|
|
post-thread-user
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-user/" class="md-nav__link">
|
|
post-user
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_post-user-notification/" class="md-nav__link">
|
|
post-user-notification
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_process/" class="md-nav__link">
|
|
process
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_profile/" class="md-nav__link">
|
|
profile
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_profile_field/" class="md-nav__link">
|
|
profile_field
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_push_subscriber/" class="md-nav__link">
|
|
push_subscriber
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_register/" class="md-nav__link">
|
|
register
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_search/" class="md-nav__link">
|
|
search
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_session/" class="md-nav__link">
|
|
session
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_storage/" class="md-nav__link">
|
|
storage
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_subscription/" class="md-nav__link">
|
|
subscription
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_tag/" class="md-nav__link">
|
|
tag
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_user/" class="md-nav__link">
|
|
user
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_user-contact/" class="md-nav__link">
|
|
user-contact
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_userd/" class="md-nav__link">
|
|
userd
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_verb/" class="md-nav__link">
|
|
verb
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_worker-ipc/" class="md-nav__link">
|
|
worker-ipc
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/database/db_workerqueue/" class="md-nav__link">
|
|
workerqueue
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_5_3" type="checkbox" id="__nav_4_5_3" >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_5_3">
|
|
Protocol
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" aria-label="Protocol" data-md-level="3">
|
|
<label class="md-nav__title" for="__nav_4_5_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Protocol
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/protocol/protocol/" class="md-nav__link">
|
|
Protocols
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../spec/protocol/message-flow/" class="md-nav__link">
|
|
Message Flow
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../bugs-and-issues/" class="md-nav__link">
|
|
Bugs and Issues
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#naming" class="md-nav__link">
|
|
Naming
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#metadata" class="md-nav__link">
|
|
Metadata
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#installuninstall" class="md-nav__link">
|
|
Install/Uninstall
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#php-addon-hooks" class="md-nav__link">
|
|
PHP addon hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="PHP addon hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#arguments" class="md-nav__link">
|
|
Arguments
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Arguments">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#a" class="md-nav__link">
|
|
$a
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#b" class="md-nav__link">
|
|
$b
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#admin-settings" class="md-nav__link">
|
|
Admin settings
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#global-stylesheets" class="md-nav__link">
|
|
Global stylesheets
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#javascript" class="md-nav__link">
|
|
JavaScript
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="JavaScript">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#global-scripts" class="md-nav__link">
|
|
Global scripts
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#javascript-hooks" class="md-nav__link">
|
|
JavaScript hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="JavaScript hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#current-javascript-hooks" class="md-nav__link">
|
|
Current JavaScript hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Current JavaScript hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#postprocess_liveupdate" class="md-nav__link">
|
|
postprocess_liveupdate
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modules" class="md-nav__link">
|
|
Modules
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#templates" class="md-nav__link">
|
|
Templates
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#current-php-hooks" class="md-nav__link">
|
|
Current PHP hooks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Current PHP hooks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#authenticate" class="md-nav__link">
|
|
authenticate
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#logged_in" class="md-nav__link">
|
|
logged_in
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#display_item" class="md-nav__link">
|
|
display_item
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#post_local" class="md-nav__link">
|
|
post_local
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#post_local_end" class="md-nav__link">
|
|
post_local_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#post_remote" class="md-nav__link">
|
|
post_remote
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#addon_settings" class="md-nav__link">
|
|
addon_settings
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="addon_settings">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#examples" class="md-nav__link">
|
|
Examples
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Examples">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-link" class="md-nav__link">
|
|
With link
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-default-submit-button" class="md-nav__link">
|
|
With default submit button
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-no-html-just-a-submit-button" class="md-nav__link">
|
|
With no HTML, just a submit button
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-multiple-submit-buttons" class="md-nav__link">
|
|
With multiple submit buttons
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#addon_settings_post" class="md-nav__link">
|
|
addon_settings_post
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#connector_settings" class="md-nav__link">
|
|
connector_settings
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="connector_settings">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#examples_1" class="md-nav__link">
|
|
Examples
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Examples">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-default-submit-button_1" class="md-nav__link">
|
|
With default submit button
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-custom-submit-button-label-and-no-logo-dim" class="md-nav__link">
|
|
With custom submit button label and no logo dim
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#with-conditional-submit-buttons" class="md-nav__link">
|
|
With conditional submit buttons
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_post" class="md-nav__link">
|
|
profile_post
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_edit" class="md-nav__link">
|
|
profile_edit
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_advanced" class="md-nav__link">
|
|
profile_advanced
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#directory_item" class="md-nav__link">
|
|
directory_item
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_sidebar_enter" class="md-nav__link">
|
|
profile_sidebar_enter
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#profile_sidebar" class="md-nav__link">
|
|
profile_sidebar
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#contact_block_end" class="md-nav__link">
|
|
contact_block_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#bbcode" class="md-nav__link">
|
|
bbcode
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#html2bbcode" class="md-nav__link">
|
|
html2bbcode
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#head" class="md-nav__link">
|
|
head
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#page_header" class="md-nav__link">
|
|
page_header
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#personal_xrd" class="md-nav__link">
|
|
personal_xrd
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#home_content" class="md-nav__link">
|
|
home_content
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#contact_edit" class="md-nav__link">
|
|
contact_edit
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#contact_edit_post" class="md-nav__link">
|
|
contact_edit_post
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#init_1" class="md-nav__link">
|
|
init_1
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#page_end" class="md-nav__link">
|
|
page_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#footer" class="md-nav__link">
|
|
footer
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#avatar_lookup" class="md-nav__link">
|
|
avatar_lookup
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#emailer_send_prepare" class="md-nav__link">
|
|
emailer_send_prepare
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#emailer_send" class="md-nav__link">
|
|
emailer_send
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#load_config" class="md-nav__link">
|
|
load_config
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#nav_info" class="md-nav__link">
|
|
nav_info
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#template_vars" class="md-nav__link">
|
|
template_vars
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#acl_lookup_end" class="md-nav__link">
|
|
acl_lookup_end
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body_init" class="md-nav__link">
|
|
prepare_body_init
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body_content_filter" class="md-nav__link">
|
|
prepare_body_content_filter
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body" class="md-nav__link">
|
|
prepare_body
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare_body_final" class="md-nav__link">
|
|
prepare_body_final
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#put_item_in_cache" class="md-nav__link">
|
|
put_item_in_cache
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#magic_auth_success" class="md-nav__link">
|
|
magic_auth_success
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#jot_networks" class="md-nav__link">
|
|
jot_networks
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#route_collection" class="md-nav__link">
|
|
route_collection
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#probe_detect" class="md-nav__link">
|
|
probe_detect
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#item_by_link" class="md-nav__link">
|
|
item_by_link
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#support_follow" class="md-nav__link">
|
|
support_follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#support_revoke_follow" class="md-nav__link">
|
|
support_revoke_follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#follow" class="md-nav__link">
|
|
follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#unfollow" class="md-nav__link">
|
|
unfollow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#revoke_follow" class="md-nav__link">
|
|
revoke_follow
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#block" class="md-nav__link">
|
|
block
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#unblock" class="md-nav__link">
|
|
unblock
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#storage_instance" class="md-nav__link">
|
|
storage_instance
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#storage_config" class="md-nav__link">
|
|
storage_config
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#complete-list-of-hook-callbacks" class="md-nav__link">
|
|
Complete list of hook callbacks
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Complete list of hook callbacks">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#indexphp" class="md-nav__link">
|
|
index.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#includeapiphp" class="md-nav__link">
|
|
include/api.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#includeenotifyphp" class="md-nav__link">
|
|
include/enotify.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentconversationphp" class="md-nav__link">
|
|
src/Content/Conversation.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#moddirectoryphp" class="md-nav__link">
|
|
mod/directory.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modxrdphp" class="md-nav__link">
|
|
mod/xrd.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modparse_urlphp" class="md-nav__link">
|
|
mod/parse_url.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmoduledelegationphp" class="md-nav__link">
|
|
src/Module/Delegation.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modaclphp" class="md-nav__link">
|
|
mod/acl.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modnetworkphp" class="md-nav__link">
|
|
mod/network.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modfriendicaphp" class="md-nav__link">
|
|
mod/friendica.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modprofilesphp" class="md-nav__link">
|
|
mod/profiles.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modsettingsphp" class="md-nav__link">
|
|
mod/settings.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modphotosphp" class="md-nav__link">
|
|
mod/photos.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modprofilephp" class="md-nav__link">
|
|
mod/profile.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modhomephp" class="md-nav__link">
|
|
mod/home.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modpokephp" class="md-nav__link">
|
|
mod/poke.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modcontactsphp" class="md-nav__link">
|
|
mod/contacts.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modtaggerphp" class="md-nav__link">
|
|
mod/tagger.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#moduexportphp" class="md-nav__link">
|
|
mod/uexport.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modregisterphp" class="md-nav__link">
|
|
mod/register.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#moditemphp" class="md-nav__link">
|
|
mod/item.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modeditpostphp" class="md-nav__link">
|
|
mod/editpost.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcrenderfriendicasmartyenginephp" class="md-nav__link">
|
|
src/Render/FriendicaSmartyEngine.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcappphp" class="md-nav__link">
|
|
src/App.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelitemphp" class="md-nav__link">
|
|
src/Model/Item.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelcontactphp" class="md-nav__link">
|
|
src/Model/Contact.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelprofilephp" class="md-nav__link">
|
|
src/Model/Profile.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodeleventphp" class="md-nav__link">
|
|
src/Model/Event.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodelregisterphp" class="md-nav__link">
|
|
src/Model/Register.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodeluserphp" class="md-nav__link">
|
|
src/Model/User.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulenotificationspingphp" class="md-nav__link">
|
|
src/Module/Notifications/Ping.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulepermissiontooltipphp" class="md-nav__link">
|
|
src/Module/PermissionTooltip.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulesettingsdelegationphp" class="md-nav__link">
|
|
src/Module/Settings/Delegation.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulesettingstwofactorindexphp" class="md-nav__link">
|
|
src/Module/Settings/TwoFactor/Index.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcsecurityauthenticatephp" class="md-nav__link">
|
|
src/Security/Authenticate.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcsecurityexauthphp" class="md-nav__link">
|
|
src/Security/ExAuth.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentcontactblockphp" class="md-nav__link">
|
|
src/Content/ContactBlock.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontenttextbbcodephp" class="md-nav__link">
|
|
src/Content/Text/BBCode.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontenttexthtmlphp" class="md-nav__link">
|
|
src/Content/Text/HTML.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentsmiliesphp" class="md-nav__link">
|
|
src/Content/Smilies.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentfeaturephp" class="md-nav__link">
|
|
src/Content/Feature.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentcontactselectorphp" class="md-nav__link">
|
|
src/Content/ContactSelector.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentoembedphp" class="md-nav__link">
|
|
src/Content/OEmbed.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccontentnavphp" class="md-nav__link">
|
|
src/Content/Nav.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreauthenticationphp" class="md-nav__link">
|
|
src/Core/Authentication.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreprotocolphp" class="md-nav__link">
|
|
src/Core/Protocol.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccorestoragemanager" class="md-nav__link">
|
|
src/Core/StorageManager
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcworkerdirectoryphp" class="md-nav__link">
|
|
src/Worker/Directory.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcworkernotifierphp" class="md-nav__link">
|
|
src/Worker/Notifier.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmoduleloginphp" class="md-nav__link">
|
|
src/Module/Login.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcmodulelogoutphp" class="md-nav__link">
|
|
src/Module/Logout.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcobjectpostphp" class="md-nav__link">
|
|
src/Object/Post.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreaclphp" class="md-nav__link">
|
|
src/Core/ACL.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreauthenticationphp_1" class="md-nav__link">
|
|
src/Core/Authentication.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccorehookphp" class="md-nav__link">
|
|
src/Core/Hook.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccorel10nl10nphp" class="md-nav__link">
|
|
src/Core/L10n/L10n.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srccoreworkerphp" class="md-nav__link">
|
|
src/Core/Worker.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilemailerphp" class="md-nav__link">
|
|
src/Util/Emailer.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilmapphp" class="md-nav__link">
|
|
src/Util/Map.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilnetworkphp" class="md-nav__link">
|
|
src/Util/Network.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcutilparseurlphp" class="md-nav__link">
|
|
src/Util/ParseUrl.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcprotocoldfrnphp" class="md-nav__link">
|
|
src/Protocol/DFRN.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srcprotocolemailphp" class="md-nav__link">
|
|
src/Protocol/Email.php
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#viewjsmainjs" class="md-nav__link">
|
|
view/js/main.js
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
<a href="https://github.com/friendica/friendica/edit/develop/doc/en/developer/addons.md" title="Edit this page" class="md-content__button md-icon">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25Z"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<nav class="md-tags" >
|
|
|
|
|
|
<span class="md-tag">developer</span>
|
|
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<h1 id="friendica-addon-development">Friendica Addon development<a class="headerlink" href="#friendica-addon-development" title="Permanent link">#</a></h1>
|
|
<p>Please see the sample addon 'randplace' for a working example of using some of these features.
|
|
Addons work by intercepting event hooks - which must be registered.
|
|
Modules work by intercepting specific page requests (by URL path).</p>
|
|
<h2 id="naming">Naming<a class="headerlink" href="#naming" title="Permanent link">#</a></h2>
|
|
<p>Addon names are used in file paths and functions names, and as such:
|
|
- Can't contain spaces or punctuation.
|
|
- Can't start with a number.</p>
|
|
<h2 id="metadata">Metadata<a class="headerlink" href="#metadata" title="Permanent link">#</a></h2>
|
|
<p>You can provide human-readable information about your addon in the first multi-line comment of your addon file.</p>
|
|
<p>Here's the structure:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="x">/**</span>
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="x"> * Name: {Human-readable name}</span>
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="x"> * Description: {Short description}</span>
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="x"> * Version: 1.0</span>
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="x"> * Author: {Author1 Name}</span>
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="x"> * Author: {Author2 Name} <{Author profile link}></span>
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="x"> * Maintainer: {Maintainer1 Name}</span>
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="x"> * Maintainer: {Maintainer2 Name} <{Maintainer profile link}></span>
|
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="x"> * Status: {Unsupported|Arbitrary status}</span>
|
|
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="x"> */</span>
|
|
</code></pre></div>
|
|
<p>You can also provide a longer documentation in a <code>README</code> or <code>README.md</code> file.
|
|
The latter will be converted from Markdown to HTML in the addon detail page.</p>
|
|
<h2 id="installuninstall">Install/Uninstall<a class="headerlink" href="#installuninstall" title="Permanent link">#</a></h2>
|
|
<p>If your addon uses hooks, they have to be registered in a <code><addon>_install()</code> function.
|
|
This function also allows to perform arbitrary actions your addon needs to function properly.</p>
|
|
<p>Uninstalling an addon automatically unregisters any hook it registered, but if you need to provide specific uninstallation steps, you can add them in a <code><addon>_uninstall()</code> function.</p>
|
|
<p>The installation and uninstallation functions will be called (i.e. re-installed) if the addon changes after installation.
|
|
Therefore, your uninstall should not destroy data and install should consider that data may already exist.
|
|
Future extensions may provide for "setup" amd "remove".</p>
|
|
<h2 id="php-addon-hooks">PHP addon hooks<a class="headerlink" href="#php-addon-hooks" title="Permanent link">#</a></h2>
|
|
<p>Register your addon hooks during installation.</p>
|
|
<div class="highlight"><pre><span></span><code>\Friendica\Core\Hook::register($hookname, $file, $function);
|
|
</code></pre></div>
|
|
<p><code>$hookname</code> is a string and corresponds to a known Friendica PHP hook.</p>
|
|
<p><code>$file</code> is a pathname relative to the top-level Friendica directory.
|
|
This <em>should</em> be 'addon/<em>addon_name</em>/<em>addon_name</em>.php' in most cases and can be shortened to <code>__FILE__</code>.</p>
|
|
<p><code>$function</code> is a string and is the name of the function which will be executed when the hook is called.</p>
|
|
<h3 id="arguments">Arguments<a class="headerlink" href="#arguments" title="Permanent link">#</a></h3>
|
|
<p>Your hook callback functions will be called with at least one and possibly two arguments</p>
|
|
<div class="highlight"><pre><span></span><code>function <addon>_<hookname>(App $a, &$b) {
|
|
|
|
}
|
|
</code></pre></div>
|
|
<p>If you wish to make changes to the calling data, you must declare them as reference variables (with <code>&</code>) during function declaration.</p>
|
|
<h4 id="a">$a<a class="headerlink" href="#a" title="Permanent link">#</a></h4>
|
|
<p>$a is the Friendica <code>App</code> class.
|
|
It contains a wealth of information about the current state of Friendica:</p>
|
|
<ul>
|
|
<li>which module has been called,</li>
|
|
<li>configuration information,</li>
|
|
<li>the page contents at the point the hook was invoked,</li>
|
|
<li>profile and user information, etc.</li>
|
|
</ul>
|
|
<p>It is recommended you call this <code>$a</code> to match its usage elsewhere.</p>
|
|
<h4 id="b">$b<a class="headerlink" href="#b" title="Permanent link">#</a></h4>
|
|
<p>$b can be called anything you like.
|
|
This is information specific to the hook currently being processed, and generally contains information that is being immediately processed or acted on that you can use, display, or alter.
|
|
Remember to declare it with <code>&</code> if you wish to alter it.</p>
|
|
<h2 id="admin-settings">Admin settings<a class="headerlink" href="#admin-settings" title="Permanent link">#</a></h2>
|
|
<p>Your addon can provide user-specific settings via the <code>addon_settings</code> PHP hook, but it can also provide node-wide settings in the administration page of your addon.</p>
|
|
<p>Simply declare a <code><addon>_addon_admin(App $a)</code> function to display the form and a <code><addon>_addon_admin_post(App $a)</code> function to process the data from the form.</p>
|
|
<h2 id="global-stylesheets">Global stylesheets<a class="headerlink" href="#global-stylesheets" title="Permanent link">#</a></h2>
|
|
<p>If your addon requires adding a stylesheet on all pages of Friendica, add the following hook:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="x">function <addon>_install()</span>
|
|
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="x">{</span>
|
|
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="x"> \Friendica\Core\Hook::register('head', __FILE__, '<addon>_head');</span>
|
|
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="x"> ...</span>
|
|
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="x">}</span>
|
|
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>
|
|
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a>
|
|
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="x">function <addon>_head(App $a)</span>
|
|
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="x">{</span>
|
|
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a><span class="x"> \Friendica\DI::page()->registerStylesheet(__DIR__ . '/relative/path/to/addon/stylesheet.css');</span>
|
|
<a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a><span class="x">}</span>
|
|
</code></pre></div>
|
|
<p><code>__DIR__</code> is the folder path of your addon.</p>
|
|
<h2 id="javascript">JavaScript<a class="headerlink" href="#javascript" title="Permanent link">#</a></h2>
|
|
<h3 id="global-scripts">Global scripts<a class="headerlink" href="#global-scripts" title="Permanent link">#</a></h3>
|
|
<p>If your addon requires adding a script on all pages of Friendica, add the following hook:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="x">function <addon>_install()</span>
|
|
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="x">{</span>
|
|
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="x"> \Friendica\Core\Hook::register('footer', __FILE__, '<addon>_footer');</span>
|
|
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="x"> ...</span>
|
|
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="x">}</span>
|
|
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>
|
|
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="x">function <addon>_footer(App $a)</span>
|
|
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="x">{</span>
|
|
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="x"> \Friendica\DI::page()->registerFooterScript(__DIR__ . '/relative/path/to/addon/script.js');</span>
|
|
<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="x">}</span>
|
|
</code></pre></div>
|
|
<p><code>__DIR__</code> is the folder path of your addon.</p>
|
|
<h3 id="javascript-hooks">JavaScript hooks<a class="headerlink" href="#javascript-hooks" title="Permanent link">#</a></h3>
|
|
<p>The main Friendica script provides hooks via events dispatched on the <code>document</code> property.
|
|
In your Javascript file included as described above, add your event listener like this:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span><span class="w"> </span><span class="nx">callback</span><span class="p">);</span><span class="w"></span>
|
|
</code></pre></div>
|
|
<ul>
|
|
<li><em>name</em> is the name of the hook and corresponds to a known Friendica JavaScript hook.</li>
|
|
<li><em>callback</em> is a JavaScript anonymous function to execute.</li>
|
|
</ul>
|
|
<p>More info about Javascript event listeners: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener</p>
|
|
<h4 id="current-javascript-hooks">Current JavaScript hooks<a class="headerlink" href="#current-javascript-hooks" title="Permanent link">#</a></h4>
|
|
<h5 id="postprocess_liveupdate">postprocess_liveupdate<a class="headerlink" href="#postprocess_liveupdate" title="Permanent link">#</a></h5>
|
|
<p>Called at the end of the live update process (XmlHttpRequest) and on a post preview.
|
|
No additional data is provided.</p>
|
|
<h2 id="modules">Modules<a class="headerlink" href="#modules" title="Permanent link">#</a></h2>
|
|
<p>Addons may also act as "modules" and intercept all page requests for a given URL path.
|
|
In order for an addon to act as a module it needs to declare an empty function <code><addon>_module()</code>.</p>
|
|
<p>If this function exists, you will now receive all page requests for <code>https://my.web.site/<addon></code> - with any number of URL components as additional arguments.
|
|
These are parsed into the <code>App\Arguments</code> object.
|
|
So <code>https://my.web.site/addon/arg1/arg2</code> would give this:
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="x">DI::args()->getArgc(); // = 3</span>
|
|
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="x">DI::args()->get(0); // = 'addon'</span>
|
|
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="x">DI::args()->get(1); // = 'arg1'</span>
|
|
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="x">DI::args()->get(2); // = 'arg2'</span>
|
|
</code></pre></div></p>
|
|
<p>To display a module page, you need to declare the function <code><addon>_content(App $a)</code>, which defines and returns the page body content.
|
|
They may also contain <code><addon>_post(App $a)</code> which is called before the <code><addon>_content</code> function and typically handles the results of POST forms.
|
|
You may also have <code><addon>_init(App $a)</code> which is called before <code><addon>_content</code> and should include common logic to your module.</p>
|
|
<h2 id="templates">Templates<a class="headerlink" href="#templates" title="Permanent link">#</a></h2>
|
|
<p>If your addon needs some template, you can use the Friendica template system.
|
|
Friendica uses <a href="http://www.smarty.net/">smarty3</a> as a template engine.</p>
|
|
<p>Put your tpl files in the <em>templates/</em> sub-folder of your addon.</p>
|
|
<p>In your code, like in the function addon_name_content(), load the template file and execute it passing needed values:</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="x">use Friendica\Core\Renderer;</span>
|
|
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
|
|
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="x"># load template file. first argument is the template name,</span>
|
|
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="x"># second is the addon path relative to friendica top folder</span>
|
|
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="x">$tpl = Renderer::getMarkupTemplate('mytemplate.tpl', __DIR__);</span>
|
|
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a>
|
|
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="x"># apply template. first argument is the loaded template,</span>
|
|
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="x"># second an array of 'name' => 'values' to pass to template</span>
|
|
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="x">$output = Renderer::replaceMacros($tpl, array(</span>
|
|
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="x"> 'title' => 'My beautiful addon',</span>
|
|
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="x">));</span>
|
|
</code></pre></div>
|
|
<p>See also the wiki page <a href="https://github.com/friendica/friendica/wiki/Quick-Template-Guide">Quick Template Guide</a>.</p>
|
|
<h2 id="current-php-hooks">Current PHP hooks<a class="headerlink" href="#current-php-hooks" title="Permanent link">#</a></h2>
|
|
<h3 id="authenticate">authenticate<a class="headerlink" href="#authenticate" title="Permanent link">#</a></h3>
|
|
<p>Called when a user attempts to login.
|
|
<code>$b</code> is an array containing:</p>
|
|
<ul>
|
|
<li><strong>username</strong>: the supplied username</li>
|
|
<li><strong>password</strong>: the supplied password</li>
|
|
<li><strong>authenticated</strong>: set this to non-zero to authenticate the user.</li>
|
|
<li><strong>user_record</strong>: successful authentication must also return a valid user record from the database</li>
|
|
</ul>
|
|
<h3 id="logged_in">logged_in<a class="headerlink" href="#logged_in" title="Permanent link">#</a></h3>
|
|
<p>Called after a user has successfully logged in.
|
|
<code>$b</code> contains the <code>$a->user</code> array.</p>
|
|
<h3 id="display_item">display_item<a class="headerlink" href="#display_item" title="Permanent link">#</a></h3>
|
|
<p>Called when formatting a post for display.
|
|
$b is an array:</p>
|
|
<ul>
|
|
<li><strong>item</strong>: The item (array) details pulled from the database</li>
|
|
<li><strong>output</strong>: the (string) HTML representation of this item prior to adding it to the page</li>
|
|
</ul>
|
|
<h3 id="post_local">post_local<a class="headerlink" href="#post_local" title="Permanent link">#</a></h3>
|
|
<p>Called when a status post or comment is entered on the local system.
|
|
<code>$b</code> is the item array of the information to be stored in the database.
|
|
Please note: body contents are bbcode - not HTML.</p>
|
|
<h3 id="post_local_end">post_local_end<a class="headerlink" href="#post_local_end" title="Permanent link">#</a></h3>
|
|
<p>Called when a local status post or comment has been stored on the local system.
|
|
<code>$b</code> is the item array of the information which has just been stored in the database.
|
|
Please note: body contents are bbcode - not HTML</p>
|
|
<h3 id="post_remote">post_remote<a class="headerlink" href="#post_remote" title="Permanent link">#</a></h3>
|
|
<p>Called when receiving a post from another source. This may also be used to post local activity or system generated messages.
|
|
<code>$b</code> is the item array of information to be stored in the database and the item body is bbcode.</p>
|
|
<h3 id="addon_settings">addon_settings<a class="headerlink" href="#addon_settings" title="Permanent link">#</a></h3>
|
|
<p>Called when generating the HTML for the addon settings page.
|
|
<code>$data</code> is an array containing:</p>
|
|
<ul>
|
|
<li><strong>addon</strong> (output): Required. The addon folder name.</li>
|
|
<li><strong>title</strong> (output): Required. The addon settings panel title.</li>
|
|
<li><strong>href</strong> (output): Optional. If set, will reduce the panel to a link pointing to this URL, can be relative. Incompatible with the following keys.</li>
|
|
<li><strong>html</strong> (output): Optional. Raw HTML of the addon form elements. Both the <code><form></code> tags and the submit buttons are taken care of elsewhere.</li>
|
|
<li><strong>submit</strong> (output): Optional. If unset, a default submit button with <code>name="<addon name>-submit"</code> will be generated.
|
|
Can take different value types:</li>
|
|
<li><strong>string</strong>: The label to replace the default one.</li>
|
|
<li><strong>associative array</strong>: A list of submit button, the key is the value of the <code>name</code> attribute, the value is the displayed label.
|
|
The first submit button in this list is considered the main one and themes might emphasize its display.</li>
|
|
</ul>
|
|
<h4 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">#</a></h4>
|
|
<h5 id="with-link">With link<a class="headerlink" href="#with-link" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="x"> 'addon' => 'advancedcontentfilter',</span>
|
|
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="x"> 'title' => DI::l10n()->t('Advanced Content Filter'),</span>
|
|
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="x"> 'href' => 'advancedcontentfilter',</span>
|
|
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h5 id="with-default-submit-button">With default submit button<a class="headerlink" href="#with-default-submit-button" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="x"> 'addon' => 'fromapp',</span>
|
|
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="x"> 'title' => DI::l10n()->t('FromApp Settings'),</span>
|
|
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="x"> 'html' => $html,</span>
|
|
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h5 id="with-no-html-just-a-submit-button">With no HTML, just a submit button<a class="headerlink" href="#with-no-html-just-a-submit-button" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="x"> 'addon' => 'opmlexport',</span>
|
|
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="x"> 'title' => DI::l10n()->t('OPML Export'),</span>
|
|
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="x"> 'submit' => DI::l10n()->t('Export RSS/Atom contacts'),</span>
|
|
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h5 id="with-multiple-submit-buttons">With multiple submit buttons<a class="headerlink" href="#with-multiple-submit-buttons" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="x"> 'addon' => 'catavar',</span>
|
|
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="x"> 'title' => DI::l10n()->t('Cat Avatar Settings'),</span>
|
|
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="x"> 'html' => $html,</span>
|
|
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="x"> 'submit' => [</span>
|
|
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="x"> 'catavatar-usecat' => DI::l10n()->t('Use Cat as Avatar'),</span>
|
|
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="x"> 'catavatar-morecat' => DI::l10n()->t('Another random Cat!'),</span>
|
|
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="x"> 'catavatar-emailcat' => DI::pConfig()->get(local_user(), 'catavatar', 'seed', false) ? DI::l10n()->t('Reset to email Cat') : null,</span>
|
|
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="x"> ],</span>
|
|
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h3 id="addon_settings_post">addon_settings_post<a class="headerlink" href="#addon_settings_post" title="Permanent link">#</a></h3>
|
|
<p>Called when the Addon Settings pages are submitted.
|
|
<code>$b</code> is the $_POST array.</p>
|
|
<h3 id="connector_settings">connector_settings<a class="headerlink" href="#connector_settings" title="Permanent link">#</a></h3>
|
|
<p>Called when generating the HTML for a connector addon settings page.
|
|
<code>$data</code> is an array containing:</p>
|
|
<ul>
|
|
<li><strong>connector</strong> (output): Required. The addon folder name.</li>
|
|
<li><strong>title</strong> (output): Required. The addon settings panel title.</li>
|
|
<li><strong>image</strong> (output): Required. The relative path of the logo image of the platform/protocol this addon is connecting to, max size 48x48px.</li>
|
|
<li><strong>enabled</strong> (output): Optional. If set to a falsy value, the connector image will be dimmed.</li>
|
|
<li><strong>html</strong> (output): Optional. Raw HTML of the addon form elements. Both the <code><form></code> tags and the submit buttons are taken care of elsewhere.</li>
|
|
<li><strong>submit</strong> (output): Optional. If unset, a default submit button with <code>name="<addon name>-submit"</code> will be generated.
|
|
Can take different value types:<ul>
|
|
<li><strong>string</strong>: The label to replace the default one.</li>
|
|
<li><strong>associative array</strong>: A list of submit button, the key is the value of the <code>name</code> attribute, the value is the displayed label.
|
|
The first submit button in this list is considered the main one and themes might emphasize its display.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h4 id="examples_1">Examples<a class="headerlink" href="#examples_1" title="Permanent link">#</a></h4>
|
|
<h5 id="with-default-submit-button_1">With default submit button<a class="headerlink" href="#with-default-submit-button_1" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="x"> 'connector' => 'diaspora',</span>
|
|
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="x"> 'title' => DI::l10n()->t('Diaspora Export'),</span>
|
|
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="x"> 'image' => 'images/diaspora-logo.png',</span>
|
|
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="x"> 'enabled' => $enabled,</span>
|
|
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="x"> 'html' => $html,</span>
|
|
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h5 id="with-custom-submit-button-label-and-no-logo-dim">With custom submit button label and no logo dim<a class="headerlink" href="#with-custom-submit-button-label-and-no-logo-dim" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="x"> 'connector' => 'ifttt',</span>
|
|
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="x"> 'title' => DI::l10n()->t('IFTTT Mirror'),</span>
|
|
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="x"> 'image' => 'addon/ifttt/ifttt.png',</span>
|
|
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="x"> 'html' => $html,</span>
|
|
<a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="x"> 'submit' => DI::l10n()->t('Generate new key'),</span>
|
|
<a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h5 id="with-conditional-submit-buttons">With conditional submit buttons<a class="headerlink" href="#with-conditional-submit-buttons" title="Permanent link">#</a></h5>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="x">$submit = ['pumpio-submit' => DI::l10n()->t('Save Settings')];</span>
|
|
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="x">if ($oauth_token && $oauth_token_secret) {</span>
|
|
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="x"> $submit['pumpio-delete'] = DI::l10n()->t('Delete this preset');</span>
|
|
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a><span class="x">}</span>
|
|
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a>
|
|
<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a><span class="x">$data = [</span>
|
|
<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a><span class="x"> 'connector' => 'pumpio',</span>
|
|
<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a><span class="x"> 'title' => DI::l10n()->t('Pump.io Import/Export/Mirror'),</span>
|
|
<a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a><span class="x"> 'image' => 'images/pumpio.png',</span>
|
|
<a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="x"> 'enabled' => $enabled,</span>
|
|
<a id="__codelineno-12-11" name="__codelineno-12-11" href="#__codelineno-12-11"></a><span class="x"> 'html' => $html,</span>
|
|
<a id="__codelineno-12-12" name="__codelineno-12-12" href="#__codelineno-12-12"></a><span class="x"> 'submit' => $submit,</span>
|
|
<a id="__codelineno-12-13" name="__codelineno-12-13" href="#__codelineno-12-13"></a><span class="x">];</span>
|
|
</code></pre></div>
|
|
<h3 id="profile_post">profile_post<a class="headerlink" href="#profile_post" title="Permanent link">#</a></h3>
|
|
<p>Called when posting a profile page.
|
|
<code>$b</code> is the $_POST array.</p>
|
|
<h3 id="profile_edit">profile_edit<a class="headerlink" href="#profile_edit" title="Permanent link">#</a></h3>
|
|
<p>Called prior to output of profile edit page.
|
|
<code>$b</code> is an array containing:</p>
|
|
<ul>
|
|
<li><strong>profile</strong>: profile (array) record from the database</li>
|
|
<li><strong>entry</strong>: the (string) HTML of the generated entry</li>
|
|
</ul>
|
|
<h3 id="profile_advanced">profile_advanced<a class="headerlink" href="#profile_advanced" title="Permanent link">#</a></h3>
|
|
<p>Called when the HTML is generated for the Advanced profile, corresponding to the Profile tab within a person's profile page.
|
|
<code>$b</code> is the HTML string representation of the generated profile.
|
|
The profile array details are in <code>$a->profile</code>.</p>
|
|
<h3 id="directory_item">directory_item<a class="headerlink" href="#directory_item" title="Permanent link">#</a></h3>
|
|
<p>Called from the Directory page when formatting an item for display.
|
|
<code>$b</code> is an array:</p>
|
|
<ul>
|
|
<li><strong>contact</strong>: contact record array for the person from the database</li>
|
|
<li><strong>entry</strong>: the HTML string of the generated entry</li>
|
|
</ul>
|
|
<h3 id="profile_sidebar_enter">profile_sidebar_enter<a class="headerlink" href="#profile_sidebar_enter" title="Permanent link">#</a></h3>
|
|
<p>Called prior to generating the sidebar "short" profile for a page.
|
|
<code>$b</code> is the person's profile array</p>
|
|
<h3 id="profile_sidebar">profile_sidebar<a class="headerlink" href="#profile_sidebar" title="Permanent link">#</a></h3>
|
|
<p>Called when generating the sidebar "short" profile for a page.
|
|
<code>$b</code> is an array:</p>
|
|
<ul>
|
|
<li><strong>profile</strong>: profile record array for the person from the database</li>
|
|
<li><strong>entry</strong>: the HTML string of the generated entry</li>
|
|
</ul>
|
|
<h3 id="contact_block_end">contact_block_end<a class="headerlink" href="#contact_block_end" title="Permanent link">#</a></h3>
|
|
<p>Called when formatting the block of contacts/friends on a profile sidebar has completed.
|
|
<code>$b</code> is an array:</p>
|
|
<ul>
|
|
<li><strong>contacts</strong>: array of contacts</li>
|
|
<li><strong>output</strong>: the generated HTML string of the contact block</li>
|
|
</ul>
|
|
<h3 id="bbcode">bbcode<a class="headerlink" href="#bbcode" title="Permanent link">#</a></h3>
|
|
<p>Called after conversion of bbcode to HTML.
|
|
<code>$b</code> is an HTML string converted text.</p>
|
|
<h3 id="html2bbcode">html2bbcode<a class="headerlink" href="#html2bbcode" title="Permanent link">#</a></h3>
|
|
<p>Called after tag conversion of HTML to bbcode (e.g. remote message posting)
|
|
<code>$b</code> is a string converted text</p>
|
|
<h3 id="head">head<a class="headerlink" href="#head" title="Permanent link">#</a></h3>
|
|
<p>Called when building the <code><head></code> sections.
|
|
Stylesheets should be registered using this hook.
|
|
<code>$b</code> is an HTML string of the <code><head></code> tag.</p>
|
|
<h3 id="page_header">page_header<a class="headerlink" href="#page_header" title="Permanent link">#</a></h3>
|
|
<p>Called after building the page navigation section.
|
|
<code>$b</code> is a string HTML of nav region.</p>
|
|
<h3 id="personal_xrd">personal_xrd<a class="headerlink" href="#personal_xrd" title="Permanent link">#</a></h3>
|
|
<p>Called prior to output of personal XRD file.
|
|
<code>$b</code> is an array:</p>
|
|
<ul>
|
|
<li><strong>user</strong>: the user record array for the person</li>
|
|
<li><strong>xml</strong>: the complete XML string to be output</li>
|
|
</ul>
|
|
<h3 id="home_content">home_content<a class="headerlink" href="#home_content" title="Permanent link">#</a></h3>
|
|
<p>Called prior to output home page content, shown to unlogged users.
|
|
<code>$b</code> is the HTML string of section region.</p>
|
|
<h3 id="contact_edit">contact_edit<a class="headerlink" href="#contact_edit" title="Permanent link">#</a></h3>
|
|
<p>Called when editing contact details on an individual from the Contacts page.
|
|
$b is an array:</p>
|
|
<ul>
|
|
<li><strong>contact</strong>: contact record (array) of target contact</li>
|
|
<li><strong>output</strong>: the (string) generated HTML of the contact edit page</li>
|
|
</ul>
|
|
<h3 id="contact_edit_post">contact_edit_post<a class="headerlink" href="#contact_edit_post" title="Permanent link">#</a></h3>
|
|
<p>Called when posting the contact edit page.
|
|
<code>$b</code> is the <code>$_POST</code> array</p>
|
|
<h3 id="init_1">init_1<a class="headerlink" href="#init_1" title="Permanent link">#</a></h3>
|
|
<p>Called just after DB has been opened and before session start.
|
|
No hook data.</p>
|
|
<h3 id="page_end">page_end<a class="headerlink" href="#page_end" title="Permanent link">#</a></h3>
|
|
<p>Called after HTML content functions have completed.
|
|
<code>$b</code> is (string) HTML of content div.</p>
|
|
<h3 id="footer">footer<a class="headerlink" href="#footer" title="Permanent link">#</a></h3>
|
|
<p>Called after HTML content functions have completed.
|
|
Deferred Javascript files should be registered using this hook.
|
|
<code>$b</code> is (string) HTML of footer div/element.</p>
|
|
<h3 id="avatar_lookup">avatar_lookup<a class="headerlink" href="#avatar_lookup" title="Permanent link">#</a></h3>
|
|
<p>Called when looking up the avatar. <code>$b</code> is an array:</p>
|
|
<ul>
|
|
<li><strong>size</strong>: the size of the avatar that will be looked up</li>
|
|
<li><strong>email</strong>: email to look up the avatar for</li>
|
|
<li><strong>url</strong>: the (string) generated URL of the avatar</li>
|
|
</ul>
|
|
<h3 id="emailer_send_prepare">emailer_send_prepare<a class="headerlink" href="#emailer_send_prepare" title="Permanent link">#</a></h3>
|
|
<p>Called from <code>Emailer::send()</code> before building the mime message.
|
|
<code>$b</code> is an array of params to <code>Emailer::send()</code>.</p>
|
|
<ul>
|
|
<li><strong>fromName</strong>: name of the sender</li>
|
|
<li><strong>fromEmail</strong>: email fo the sender</li>
|
|
<li><strong>replyTo</strong>: replyTo address to direct responses</li>
|
|
<li><strong>toEmail</strong>: destination email address</li>
|
|
<li><strong>messageSubject</strong>: subject of the message</li>
|
|
<li><strong>htmlVersion</strong>: html version of the message</li>
|
|
<li><strong>textVersion</strong>: text only version of the message</li>
|
|
<li><strong>additionalMailHeader</strong>: additions to the smtp mail header</li>
|
|
<li><strong>sent</strong>: default false, if set to true in the hook, the default mailer will be skipped.</li>
|
|
</ul>
|
|
<h3 id="emailer_send">emailer_send<a class="headerlink" href="#emailer_send" title="Permanent link">#</a></h3>
|
|
<p>Called before calling PHP's <code>mail()</code>.
|
|
<code>$b</code> is an array of params to <code>mail()</code>.</p>
|
|
<ul>
|
|
<li><strong>to</strong></li>
|
|
<li><strong>subject</strong></li>
|
|
<li><strong>body</strong></li>
|
|
<li><strong>headers</strong></li>
|
|
<li><strong>sent</strong>: default false, if set to true in the hook, the default mailer will be skipped.</li>
|
|
</ul>
|
|
<h3 id="load_config">load_config<a class="headerlink" href="#load_config" title="Permanent link">#</a></h3>
|
|
<p>Called during <code>App</code> initialization to allow addons to load their own configuration file(s) with <code>App::loadConfigFile()</code>.</p>
|
|
<h3 id="nav_info">nav_info<a class="headerlink" href="#nav_info" title="Permanent link">#</a></h3>
|
|
<p>Called after the navigational menu is build in <code>include/nav.php</code>.
|
|
<code>$b</code> is an array containing <code>$nav</code> from <code>include/nav.php</code>.</p>
|
|
<h3 id="template_vars">template_vars<a class="headerlink" href="#template_vars" title="Permanent link">#</a></h3>
|
|
<p>Called before vars are passed to the template engine to render the page.
|
|
The registered function can add,change or remove variables passed to template.
|
|
<code>$b</code> is an array with:</p>
|
|
<ul>
|
|
<li><strong>template</strong>: filename of template</li>
|
|
<li><strong>vars</strong>: array of vars passed to the template</li>
|
|
</ul>
|
|
<h3 id="acl_lookup_end">acl_lookup_end<a class="headerlink" href="#acl_lookup_end" title="Permanent link">#</a></h3>
|
|
<p>Called after the other queries have passed.
|
|
The registered function can add, change or remove the <code>acl_lookup()</code> variables.</p>
|
|
<ul>
|
|
<li><strong>results</strong>: array of the acl_lookup() vars</li>
|
|
</ul>
|
|
<h3 id="prepare_body_init">prepare_body_init<a class="headerlink" href="#prepare_body_init" title="Permanent link">#</a></h3>
|
|
<p>Called at the start of prepare_body
|
|
Hook data:</p>
|
|
<ul>
|
|
<li><strong>item</strong> (input/output): item array</li>
|
|
</ul>
|
|
<h3 id="prepare_body_content_filter">prepare_body_content_filter<a class="headerlink" href="#prepare_body_content_filter" title="Permanent link">#</a></h3>
|
|
<p>Called before the HTML conversion in prepare_body. If the item matches a content filter rule set by an addon, it should
|
|
just add the reason to the filter_reasons element of the hook data.
|
|
Hook data:</p>
|
|
<ul>
|
|
<li><strong>item</strong>: item array (input)</li>
|
|
<li><strong>filter_reasons</strong> (input/output): reasons array</li>
|
|
</ul>
|
|
<h3 id="prepare_body">prepare_body<a class="headerlink" href="#prepare_body" title="Permanent link">#</a></h3>
|
|
<p>Called after the HTML conversion in <code>prepare_body()</code>.
|
|
Hook data:</p>
|
|
<ul>
|
|
<li><strong>item</strong> (input): item array</li>
|
|
<li><strong>html</strong> (input/output): converted item body</li>
|
|
<li><strong>is_preview</strong> (input): post preview flag</li>
|
|
<li><strong>filter_reasons</strong> (input): reasons array</li>
|
|
</ul>
|
|
<h3 id="prepare_body_final">prepare_body_final<a class="headerlink" href="#prepare_body_final" title="Permanent link">#</a></h3>
|
|
<p>Called at the end of <code>prepare_body()</code>.
|
|
Hook data:</p>
|
|
<ul>
|
|
<li><strong>item</strong>: item array (input)</li>
|
|
<li><strong>html</strong>: converted item body (input/output)</li>
|
|
</ul>
|
|
<h3 id="put_item_in_cache">put_item_in_cache<a class="headerlink" href="#put_item_in_cache" title="Permanent link">#</a></h3>
|
|
<p>Called after <code>prepare_text()</code> in <code>put_item_in_cache()</code>.
|
|
Hook data:</p>
|
|
<ul>
|
|
<li><strong>item</strong> (input): item array</li>
|
|
<li><strong>rendered-html</strong> (input/output): final item body HTML</li>
|
|
<li><strong>rendered-hash</strong> (input/output): original item body hash</li>
|
|
</ul>
|
|
<h3 id="magic_auth_success">magic_auth_success<a class="headerlink" href="#magic_auth_success" title="Permanent link">#</a></h3>
|
|
<p>Called when a magic-auth was successful.
|
|
Hook data:</p>
|
|
<div class="highlight"><pre><span></span><code>visitor => array with the contact record of the visitor
|
|
url => the query string
|
|
</code></pre></div>
|
|
<h3 id="jot_networks">jot_networks<a class="headerlink" href="#jot_networks" title="Permanent link">#</a></h3>
|
|
<p>Called when displaying the post permission screen.
|
|
Hook data is a list of form fields that need to be displayed along the ACL.
|
|
Form field array structure is:</p>
|
|
<ul>
|
|
<li><strong>type</strong>: <code>checkbox</code> or <code>select</code>.</li>
|
|
<li><strong>field</strong>: Standard field data structure to be used by <code>field_checkbox.tpl</code> and <code>field_select.tpl</code>.</li>
|
|
</ul>
|
|
<p>For <code>checkbox</code>, <strong>field</strong> is:
|
|
- [0] (String): Form field name; Mandatory.
|
|
- [1]: (String): Form field label; Optional, default is none.
|
|
- [2]: (Boolean): Whether the checkbox should be checked by default; Optional, default is false.
|
|
- [3]: (String): Additional help text; Optional, default is none.
|
|
- [4]: (String): Additional HTML attributes; Optional, default is none.</p>
|
|
<p>For <code>select</code>, <strong>field</strong> is:
|
|
- [0] (String): Form field name; Mandatory.
|
|
- [1] (String): Form field label; Optional, default is none.
|
|
- [2] (Boolean): Default value to be selected by default; Optional, default is none.
|
|
- [3] (String): Additional help text; Optional, default is none.
|
|
- [4] (Array): Associative array of options. Item key is option value, item value is option label; Mandatory.</p>
|
|
<h3 id="route_collection">route_collection<a class="headerlink" href="#route_collection" title="Permanent link">#</a></h3>
|
|
<p>Called just before dispatching the router.
|
|
Hook data is a <code>\FastRoute\RouterCollector</code> object that should be used to add addon routes pointing to classes.</p>
|
|
<p><strong>Notice</strong>: The class whose name is provided in the route handler must be reachable via autoloader.</p>
|
|
<h3 id="probe_detect">probe_detect<a class="headerlink" href="#probe_detect" title="Permanent link">#</a></h3>
|
|
<p>Called before trying to detect the target network of a URL.
|
|
If any registered hook function sets the <code>result</code> key of the hook data array, it will be returned immediately.
|
|
Hook functions should also return immediately if the hook data contains an existing result.</p>
|
|
<p>Hook data:</p>
|
|
<ul>
|
|
<li><strong>uri</strong> (input): the profile URI.</li>
|
|
<li><strong>network</strong> (input): the target network (can be empty for auto-detection).</li>
|
|
<li><strong>uid</strong> (input): the user to return the contact data for (can be empty for public contacts).</li>
|
|
<li><strong>result</strong> (output): Leave null if address isn't relevant to the connector, set to contact array if probe is successful, false otherwise.</li>
|
|
</ul>
|
|
<h3 id="item_by_link">item_by_link<a class="headerlink" href="#item_by_link" title="Permanent link">#</a></h3>
|
|
<p>Called when trying to probe an item from a given URI.
|
|
If any registered hook function sets the <code>item_id</code> key of the hook data array, it will be returned immediately.
|
|
Hook functions should also return immediately if the hook data contains an existing <code>item_id</code>.</p>
|
|
<p>Hook data:
|
|
- <strong>uri</strong> (input): the item URI.
|
|
- <strong>uid</strong> (input): the user to return the item data for (can be empty for public contacts).
|
|
- <strong>item_id</strong> (output): Leave null if URI isn't relevant to the connector, set to created item array if probe is successful, false otherwise.</p>
|
|
<h3 id="support_follow">support_follow<a class="headerlink" href="#support_follow" title="Permanent link">#</a></h3>
|
|
<p>Called to assert whether a connector addon provides follow capabilities.</p>
|
|
<p>Hook data:
|
|
- <strong>protocol</strong> (input): shorthand for the protocol. List of values is available in <code>src/Core/Protocol.php</code>.
|
|
- <strong>result</strong> (output): should be true if the connector provides follow capabilities, left alone otherwise.</p>
|
|
<h3 id="support_revoke_follow">support_revoke_follow<a class="headerlink" href="#support_revoke_follow" title="Permanent link">#</a></h3>
|
|
<p>Called to assert whether a connector addon provides follow revocation capabilities.</p>
|
|
<p>Hook data:
|
|
- <strong>protocol</strong> (input): shorthand for the protocol. List of values is available in <code>src/Core/Protocol.php</code>.
|
|
- <strong>result</strong> (output): should be true if the connector provides follow revocation capabilities, left alone otherwise.</p>
|
|
<h3 id="follow">follow<a class="headerlink" href="#follow" title="Permanent link">#</a></h3>
|
|
<p>Called before adding a new contact for a user to handle non-native network remote contact (like Twitter).</p>
|
|
<p>Hook data:</p>
|
|
<ul>
|
|
<li><strong>url</strong> (input): URL of the remote contact.</li>
|
|
<li><strong>contact</strong> (output): should be filled with the contact (with uid = user creating the contact) array if follow was successful.</li>
|
|
</ul>
|
|
<h3 id="unfollow">unfollow<a class="headerlink" href="#unfollow" title="Permanent link">#</a></h3>
|
|
<p>Called when unfollowing a remote contact on a non-native network (like Twitter)</p>
|
|
<p>Hook data:
|
|
- <strong>contact</strong> (input): the target public contact (uid = 0) array.
|
|
- <strong>uid</strong> (input): the id of the source local user.
|
|
- <strong>result</strong> (output): whether the unfollowing is successful or not.</p>
|
|
<h3 id="revoke_follow">revoke_follow<a class="headerlink" href="#revoke_follow" title="Permanent link">#</a></h3>
|
|
<p>Called when making a remote contact on a non-native network (like Twitter) unfollow you.</p>
|
|
<p>Hook data:
|
|
- <strong>contact</strong> (input): the target public contact (uid = 0) array.
|
|
- <strong>uid</strong> (input): the id of the source local user.
|
|
- <strong>result</strong> (output): a boolean value indicating whether the operation was successful or not.</p>
|
|
<h3 id="block">block<a class="headerlink" href="#block" title="Permanent link">#</a></h3>
|
|
<p>Called when blocking a remote contact on a non-native network (like Twitter).</p>
|
|
<p>Hook data:
|
|
- <strong>contact</strong> (input): the remote contact (uid = 0) array.
|
|
- <strong>uid</strong> (input): the user id to issue the block for.
|
|
- <strong>result</strong> (output): a boolean value indicating whether the operation was successful or not.</p>
|
|
<h3 id="unblock">unblock<a class="headerlink" href="#unblock" title="Permanent link">#</a></h3>
|
|
<p>Called when unblocking a remote contact on a non-native network (like Twitter).</p>
|
|
<p>Hook data:
|
|
- <strong>contact</strong> (input): the remote contact (uid = 0) array.
|
|
- <strong>uid</strong> (input): the user id to revoke the block for.
|
|
- <strong>result</strong> (output): a boolean value indicating whether the operation was successful or not.</p>
|
|
<h3 id="storage_instance">storage_instance<a class="headerlink" href="#storage_instance" title="Permanent link">#</a></h3>
|
|
<p>Called when a custom storage is used (e.g. webdav_storage)</p>
|
|
<p>Hook data:
|
|
- <strong>name</strong> (input): the name of the used storage backend
|
|
- <strong>data['storage']</strong> (output): the storage instance to use (<strong>must</strong> implement <code>\Friendica\Core\Storage\IWritableStorage</code>) </p>
|
|
<h3 id="storage_config">storage_config<a class="headerlink" href="#storage_config" title="Permanent link">#</a></h3>
|
|
<p>Called when the admin of the node wants to configure a custom storage (e.g. webdav_storage)</p>
|
|
<p>Hook data:
|
|
- <strong>name</strong> (input): the name of the used storage backend
|
|
- <strong>data['storage_config']</strong> (output): the storage configuration instance to use (<strong>must</strong> implement <code>\Friendica\Core\Storage\Capability\IConfigureStorage</code>)</p>
|
|
<h2 id="complete-list-of-hook-callbacks">Complete list of hook callbacks<a class="headerlink" href="#complete-list-of-hook-callbacks" title="Permanent link">#</a></h2>
|
|
<p>Here is a complete list of all hook callbacks with file locations (as of 24-Sep-2018). Please see the source for details of any hooks not documented above.</p>
|
|
<h3 id="indexphp">index.php<a class="headerlink" href="#indexphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('init_1');
|
|
Hook::callAll('app_menu', $arr);
|
|
Hook::callAll('page_content_top', DI::page()['content']);
|
|
Hook::callAll($a->module.'_mod_init', $placeholder);
|
|
Hook::callAll($a->module.'_mod_init', $placeholder);
|
|
Hook::callAll($a->module.'_mod_post', $_POST);
|
|
Hook::callAll($a->module.'_mod_content', $arr);
|
|
Hook::callAll($a->module.'_mod_aftercontent', $arr);
|
|
Hook::callAll('page_end', DI::page()['content']);
|
|
</code></pre></div>
|
|
<h3 id="includeapiphp">include/api.php<a class="headerlink" href="#includeapiphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('logged_in', $a->user);
|
|
Hook::callAll('authenticate', $addon_auth);
|
|
Hook::callAll('logged_in', $a->user);
|
|
</code></pre></div>
|
|
<h3 id="includeenotifyphp">include/enotify.php<a class="headerlink" href="#includeenotifyphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('enotify', $h);
|
|
Hook::callAll('enotify_store', $datarray);
|
|
Hook::callAll('enotify_mail', $datarray);
|
|
Hook::callAll('check_item_notification', $notification_data);
|
|
</code></pre></div>
|
|
<h3 id="srccontentconversationphp">src/Content/Conversation.php<a class="headerlink" href="#srccontentconversationphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('conversation_start', $cb);
|
|
Hook::callAll('render_location', $locate);
|
|
Hook::callAll('display_item', $arr);
|
|
Hook::callAll('display_item', $arr);
|
|
Hook::callAll('item_photo_menu', $args);
|
|
Hook::callAll('jot_tool', $jotplugins);
|
|
</code></pre></div>
|
|
<h3 id="moddirectoryphp">mod/directory.php<a class="headerlink" href="#moddirectoryphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('directory_item', $arr);
|
|
</code></pre></div>
|
|
<h3 id="modxrdphp">mod/xrd.php<a class="headerlink" href="#modxrdphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('personal_xrd', $arr);
|
|
</code></pre></div>
|
|
<h3 id="modparse_urlphp">mod/parse_url.php<a class="headerlink" href="#modparse_urlphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll("parse_link", $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcmoduledelegationphp">src/Module/Delegation.php<a class="headerlink" href="#srcmoduledelegationphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('home_init', $ret);
|
|
</code></pre></div>
|
|
<h3 id="modaclphp">mod/acl.php<a class="headerlink" href="#modaclphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('acl_lookup_end', $results);
|
|
</code></pre></div>
|
|
<h3 id="modnetworkphp">mod/network.php<a class="headerlink" href="#modnetworkphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('network_content_init', $arr);
|
|
Hook::callAll('network_tabs', $arr);
|
|
</code></pre></div>
|
|
<h3 id="modfriendicaphp">mod/friendica.php<a class="headerlink" href="#modfriendicaphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('about_hook', $o);
|
|
</code></pre></div>
|
|
<h3 id="modprofilesphp">mod/profiles.php<a class="headerlink" href="#modprofilesphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('profile_post', $_POST);
|
|
Hook::callAll('profile_edit', $arr);
|
|
</code></pre></div>
|
|
<h3 id="modsettingsphp">mod/settings.php<a class="headerlink" href="#modsettingsphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('addon_settings_post', $_POST);
|
|
Hook::callAll('connector_settings_post', $_POST);
|
|
Hook::callAll('display_settings_post', $_POST);
|
|
Hook::callAll('addon_settings', $settings_addons);
|
|
Hook::callAll('connector_settings', $settings_connectors);
|
|
Hook::callAll('display_settings', $o);
|
|
</code></pre></div>
|
|
<h3 id="modphotosphp">mod/photos.php<a class="headerlink" href="#modphotosphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('photo_post_init', $_POST);
|
|
Hook::callAll('photo_post_file', $ret);
|
|
Hook::callAll('photo_post_end', $foo);
|
|
Hook::callAll('photo_post_end', $foo);
|
|
Hook::callAll('photo_post_end', $foo);
|
|
Hook::callAll('photo_post_end', $foo);
|
|
Hook::callAll('photo_post_end', intval($item_id));
|
|
Hook::callAll('photo_upload_form', $ret);
|
|
</code></pre></div>
|
|
<h3 id="modprofilephp">mod/profile.php<a class="headerlink" href="#modprofilephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('profile_advanced', $o);
|
|
</code></pre></div>
|
|
<h3 id="modhomephp">mod/home.php<a class="headerlink" href="#modhomephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('home_init', $ret);
|
|
Hook::callAll("home_content", $content);
|
|
</code></pre></div>
|
|
<h3 id="modpokephp">mod/poke.php<a class="headerlink" href="#modpokephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('post_local_end', $arr);
|
|
</code></pre></div>
|
|
<h3 id="modcontactsphp">mod/contacts.php<a class="headerlink" href="#modcontactsphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('contact_edit_post', $_POST);
|
|
Hook::callAll('contact_edit', $arr);
|
|
</code></pre></div>
|
|
<h3 id="modtaggerphp">mod/tagger.php<a class="headerlink" href="#modtaggerphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('post_local_end', $arr);
|
|
</code></pre></div>
|
|
<h3 id="moduexportphp">mod/uexport.php<a class="headerlink" href="#moduexportphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('uexport_options', $options);
|
|
</code></pre></div>
|
|
<h3 id="modregisterphp">mod/register.php<a class="headerlink" href="#modregisterphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('register_post', $arr);
|
|
Hook::callAll('register_form', $arr);
|
|
</code></pre></div>
|
|
<h3 id="moditemphp">mod/item.php<a class="headerlink" href="#moditemphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('post_local_start', $_REQUEST);
|
|
Hook::callAll('post_local', $datarray);
|
|
Hook::callAll('post_local_end', $datarray);
|
|
</code></pre></div>
|
|
<h3 id="modeditpostphp">mod/editpost.php<a class="headerlink" href="#modeditpostphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('jot_tool', $jotplugins);
|
|
</code></pre></div>
|
|
<h3 id="srcrenderfriendicasmartyenginephp">src/Render/FriendicaSmartyEngine.php<a class="headerlink" href="#srcrenderfriendicasmartyenginephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll("template_vars", $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcappphp">src/App.php<a class="headerlink" href="#srcappphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('load_config');
|
|
Hook::callAll('head');
|
|
Hook::callAll('footer');
|
|
Hook::callAll('route_collection');
|
|
</code></pre></div>
|
|
<h3 id="srcmodelitemphp">src/Model/Item.php<a class="headerlink" href="#srcmodelitemphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('post_local', $item);
|
|
Hook::callAll('post_remote', $item);
|
|
Hook::callAll('post_local_end', $posted_item);
|
|
Hook::callAll('post_remote_end', $posted_item);
|
|
Hook::callAll('tagged', $arr);
|
|
Hook::callAll('post_local_end', $new_item);
|
|
Hook::callAll('put_item_in_cache', $hook_data);
|
|
Hook::callAll('prepare_body_init', $item);
|
|
Hook::callAll('prepare_body_content_filter', $hook_data);
|
|
Hook::callAll('prepare_body', $hook_data);
|
|
Hook::callAll('prepare_body_final', $hook_data);
|
|
</code></pre></div>
|
|
<h3 id="srcmodelcontactphp">src/Model/Contact.php<a class="headerlink" href="#srcmodelcontactphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('contact_photo_menu', $args);
|
|
Hook::callAll('follow', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcmodelprofilephp">src/Model/Profile.php<a class="headerlink" href="#srcmodelprofilephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('profile_sidebar_enter', $profile);
|
|
Hook::callAll('profile_sidebar', $arr);
|
|
Hook::callAll('profile_tabs', $arr);
|
|
Hook::callAll('zrl_init', $arr);
|
|
Hook::callAll('magic_auth_success', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcmodeleventphp">src/Model/Event.php<a class="headerlink" href="#srcmodeleventphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('event_updated', $event['id']);
|
|
Hook::callAll("event_created", $event['id']);
|
|
</code></pre></div>
|
|
<h3 id="srcmodelregisterphp">src/Model/Register.php<a class="headerlink" href="#srcmodelregisterphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('authenticate', $addon_auth);
|
|
</code></pre></div>
|
|
<h3 id="srcmodeluserphp">src/Model/User.php<a class="headerlink" href="#srcmodeluserphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('authenticate', $addon_auth);
|
|
Hook::callAll('register_account', $uid);
|
|
Hook::callAll('remove_user', $user);
|
|
</code></pre></div>
|
|
<h3 id="srcmodulenotificationspingphp">src/Module/Notifications/Ping.php<a class="headerlink" href="#srcmodulenotificationspingphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('network_ping', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcmodulepermissiontooltipphp">src/Module/PermissionTooltip.php<a class="headerlink" href="#srcmodulepermissiontooltipphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('lockview_content', $item);
|
|
</code></pre></div>
|
|
<h3 id="srcmodulesettingsdelegationphp">src/Module/Settings/Delegation.php<a class="headerlink" href="#srcmodulesettingsdelegationphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('authenticate', $addon_auth);
|
|
</code></pre></div>
|
|
<h3 id="srcmodulesettingstwofactorindexphp">src/Module/Settings/TwoFactor/Index.php<a class="headerlink" href="#srcmodulesettingstwofactorindexphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('authenticate', $addon_auth);
|
|
</code></pre></div>
|
|
<h3 id="srcsecurityauthenticatephp">src/Security/Authenticate.php<a class="headerlink" href="#srcsecurityauthenticatephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('authenticate', $addon_auth);
|
|
</code></pre></div>
|
|
<h3 id="srcsecurityexauthphp">src/Security/ExAuth.php<a class="headerlink" href="#srcsecurityexauthphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('authenticate', $addon_auth);
|
|
</code></pre></div>
|
|
<h3 id="srccontentcontactblockphp">src/Content/ContactBlock.php<a class="headerlink" href="#srccontentcontactblockphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('contact_block_end', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srccontenttextbbcodephp">src/Content/Text/BBCode.php<a class="headerlink" href="#srccontenttextbbcodephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('bbcode', $text);
|
|
Hook::callAll('bb2diaspora', $text);
|
|
</code></pre></div>
|
|
<h3 id="srccontenttexthtmlphp">src/Content/Text/HTML.php<a class="headerlink" href="#srccontenttexthtmlphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('html2bbcode', $message);
|
|
</code></pre></div>
|
|
<h3 id="srccontentsmiliesphp">src/Content/Smilies.php<a class="headerlink" href="#srccontentsmiliesphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('smilie', $params);
|
|
</code></pre></div>
|
|
<h3 id="srccontentfeaturephp">src/Content/Feature.php<a class="headerlink" href="#srccontentfeaturephp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('isEnabled', $arr);
|
|
Hook::callAll('get', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srccontentcontactselectorphp">src/Content/ContactSelector.php<a class="headerlink" href="#srccontentcontactselectorphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('network_to_name', $nets);
|
|
</code></pre></div>
|
|
<h3 id="srccontentoembedphp">src/Content/OEmbed.php<a class="headerlink" href="#srccontentoembedphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('oembed_fetch_url', $embedurl, $j);
|
|
</code></pre></div>
|
|
<h3 id="srccontentnavphp">src/Content/Nav.php<a class="headerlink" href="#srccontentnavphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('page_header', DI::page()['nav']);
|
|
Hook::callAll('nav_info', $nav);
|
|
</code></pre></div>
|
|
<h3 id="srccoreauthenticationphp">src/Core/Authentication.php<a class="headerlink" href="#srccoreauthenticationphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('logged_in', $a->user);
|
|
</code></pre></div>
|
|
<h3 id="srccoreprotocolphp">src/Core/Protocol.php<a class="headerlink" href="#srccoreprotocolphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('support_follow', $hook_data);
|
|
Hook::callAll('support_revoke_follow', $hook_data);
|
|
Hook::callAll('unfollow', $hook_data);
|
|
Hook::callAll('revoke_follow', $hook_data);
|
|
Hook::callAll('block', $hook_data);
|
|
Hook::callAll('unblock', $hook_data);
|
|
</code></pre></div>
|
|
<h3 id="srccorestoragemanager">src/Core/StorageManager<a class="headerlink" href="#srccorestoragemanager" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('storage_instance', $data);
|
|
Hook::callAll('storage_config', $data);
|
|
</code></pre></div>
|
|
<h3 id="srcworkerdirectoryphp">src/Worker/Directory.php<a class="headerlink" href="#srcworkerdirectoryphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('globaldir_update', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcworkernotifierphp">src/Worker/Notifier.php<a class="headerlink" href="#srcworkernotifierphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('notifier_end', $target_item);
|
|
</code></pre></div>
|
|
<h3 id="srcmoduleloginphp">src/Module/Login.php<a class="headerlink" href="#srcmoduleloginphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('login_hook', $o);
|
|
</code></pre></div>
|
|
<h3 id="srcmodulelogoutphp">src/Module/Logout.php<a class="headerlink" href="#srcmodulelogoutphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll("logging_out");
|
|
</code></pre></div>
|
|
<h3 id="srcobjectpostphp">src/Object/Post.php<a class="headerlink" href="#srcobjectpostphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('render_location', $locate);
|
|
Hook::callAll('display_item', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srccoreaclphp">src/Core/ACL.php<a class="headerlink" href="#srccoreaclphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('contact_select_options', $x);
|
|
Hook::callAll($a->module.'_pre_'.$selname, $arr);
|
|
Hook::callAll($a->module.'_post_'.$selname, $o);
|
|
Hook::callAll($a->module.'_pre_'.$selname, $arr);
|
|
Hook::callAll($a->module.'_post_'.$selname, $o);
|
|
Hook::callAll('jot_networks', $jotnets);
|
|
</code></pre></div>
|
|
<h3 id="srccoreauthenticationphp_1">src/Core/Authentication.php<a class="headerlink" href="#srccoreauthenticationphp_1" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('logged_in', $a->user);
|
|
Hook::callAll('authenticate', $addon_auth);
|
|
</code></pre></div>
|
|
<h3 id="srccorehookphp">src/Core/Hook.php<a class="headerlink" href="#srccorehookphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>self::callSingle(self::getApp(), 'hook_fork', $fork_hook, $hookdata);
|
|
</code></pre></div>
|
|
<h3 id="srccorel10nl10nphp">src/Core/L10n/L10n.php<a class="headerlink" href="#srccorel10nl10nphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('poke_verbs', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srccoreworkerphp">src/Core/Worker.php<a class="headerlink" href="#srccoreworkerphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll("proc_run", $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcutilemailerphp">src/Util/Emailer.php<a class="headerlink" href="#srcutilemailerphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('emailer_send_prepare', $params);
|
|
Hook::callAll("emailer_send", $hookdata);
|
|
</code></pre></div>
|
|
<h3 id="srcutilmapphp">src/Util/Map.php<a class="headerlink" href="#srcutilmapphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('generate_map', $arr);
|
|
Hook::callAll('generate_named_map', $arr);
|
|
Hook::callAll('Map::getCoordinates', $arr);
|
|
</code></pre></div>
|
|
<h3 id="srcutilnetworkphp">src/Util/Network.php<a class="headerlink" href="#srcutilnetworkphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('avatar_lookup', $avatar);
|
|
</code></pre></div>
|
|
<h3 id="srcutilparseurlphp">src/Util/ParseUrl.php<a class="headerlink" href="#srcutilparseurlphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll("getsiteinfo", $siteinfo);
|
|
</code></pre></div>
|
|
<h3 id="srcprotocoldfrnphp">src/Protocol/DFRN.php<a class="headerlink" href="#srcprotocoldfrnphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('atom_feed_end', $atom);
|
|
Hook::callAll('atom_feed_end', $atom);
|
|
</code></pre></div>
|
|
<h3 id="srcprotocolemailphp">src/Protocol/Email.php<a class="headerlink" href="#srcprotocolemailphp" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>Hook::callAll('email_getmessage', $message);
|
|
Hook::callAll('email_getmessage_end', $ret);
|
|
</code></pre></div>
|
|
<h3 id="viewjsmainjs">view/js/main.js<a class="headerlink" href="#viewjsmainjs" title="Permanent link">#</a></h3>
|
|
<div class="highlight"><pre><span></span><code>document.dispatchEvent(new Event('postprocess_liveupdate'));
|
|
</code></pre></div>
|
|
|
|
|
|
</article>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<a href="#" class="md-top md-icon" data-md-component="top" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
|
|
Back to top
|
|
</a>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
|
|
<nav class="md-footer__inner md-grid" aria-label="Footer" >
|
|
|
|
|
|
<a href="../domain-driven-design/" class="md-footer__link md-footer__link--prev" aria-label="Previous: DDD" rel="prev">
|
|
<div class="md-footer__button md-icon">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
|
</div>
|
|
<div class="md-footer__title">
|
|
<div class="md-ellipsis">
|
|
<span class="md-footer__direction">
|
|
Previous
|
|
</span>
|
|
DDD
|
|
</div>
|
|
</div>
|
|
</a>
|
|
|
|
|
|
|
|
<a href="../themes/" class="md-footer__link md-footer__link--next" aria-label="Next: Themes" rel="next">
|
|
<div class="md-footer__title">
|
|
<div class="md-ellipsis">
|
|
<span class="md-footer__direction">
|
|
Next
|
|
</span>
|
|
Themes
|
|
</div>
|
|
</div>
|
|
<div class="md-footer__button md-icon">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
|
|
</div>
|
|
</a>
|
|
|
|
</nav>
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
<div class="md-copyright__highlight">
|
|
Copyright © 2010-2022, the Friendica project
|
|
</div>
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
<script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "content.tooltips", "navigation.indexes", "navigation.sections", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.share", "search.suggest", "toc.follow"], "search": "../../assets/javascripts/workers/search.b97dbffb.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
|
|
|
|
|
|
<script src="../../assets/javascripts/bundle.0238f547.min.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |