Browse Source

Remove remaining mentions of $a->argc/argv

- This was breaking the layout of specific pages in Frio
pull/10608/head
Hypolite Petovan 1 month ago
parent
commit
37a30434bb
  1. 12
      doc/Addons.md
  2. 13
      doc/de/Addons.md
  3. 2
      view/theme/frio/php/default.php
  4. 46
      view/theme/frio/php/standard.php

12
doc/Addons.md

@ -158,13 +158,13 @@ Addons may also act as "modules" and intercept all page requests for a given URL
In order for a addon to act as a module it needs to declare an empty function `<addon>_module()`.
If this function exists, you will now receive all page requests for `https://my.web.site/<addon>` - with any number of URL components as additional arguments.
These are parsed into an array $a->argv, with a corresponding $a->argc indicating the number of URL components.
So `https://my.web.site/addon/arg1/arg2` would look for a module named "addon" and pass its module functions the $a App structure (which is available to many components).
This will include:
These are parsed into the `App\Arguments` object.
So `https://my.web.site/addon/arg1/arg2` would give this:
```php
$a->argc = 3
$a->argv = array(0 => 'addon', 1 => 'arg1', 2 => 'arg2');
DI::args()->getArgc(); // = 3
DI::args()->get(0); // = 'addon'
DI::args()->get(1); // = 'arg1'
DI::args()->get(2); // = 'arg2'
```
To display a module page, you need to declare the function `<addon>_content(App $a)`, which defines and returns the page body content.

13
doc/de/Addons.md

@ -61,11 +61,14 @@ Addons können auch als "Module" agieren und alle Seitenanfragen für eine besti
Um ein Addon als Modul zu nutzen, ist es nötig, die Funktion "addon_name_module()" zu definieren, die keine Argumente benötigt und nichts weiter machen muss.
Wenn diese Funktion existiert, wirst du nun alle Seitenanfragen für "http://example.com/addon_name" erhalten - mit allen URL-Komponenten als zusätzliche Argumente.
Diese werden in ein Array $a->argv geparst und stimmen mit $a->argc überein, wobei sie die Anzahl der URL-Komponenten abbilden.
So würde http://example.com/addon/arg1/arg2 nach einem Modul "addon" suchen und seiner Modulfunktion die $a-App-Strukur übergeben (dies ist für viele Komponenten verfügbar). Das umfasst:
$a->argc = 3
$a->argv = array(0 => 'addon', 1 => 'arg1', 2 => 'arg2');
Diese werden in das App\Arguments Objekt geparst.
So würde `http://example.com/addon/arg1/arg2` dies ergeben:
```php
DI::args()->getArgc(); // = 3
DI::args()->get(0); // = 'addon'
DI::args()->get(1); // = 'arg1'
DI::args()->get(2); // = 'arg2'
```
Deine Modulfunktionen umfassen oft die Funktion addon_name_content(App $a), welche den Seiteninhalt definiert und zurückgibt.
Sie können auch addon_name_post(App $a) umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt.

2
view/theme/frio/php/default.php

@ -125,7 +125,7 @@ $is_singleuser_class = $is_singleuser ? "is-singleuser" : "is-not-singleuser";
<div class="col-lg-7 col-md-7 col-sm-12 col-xs-12" id="content">
<section class="sectiontop ';
echo $a->argv[0] ?? '';
echo DI::args()->get(0, 'generic');
echo '-content-wrapper">';
if (!empty($page['content'])) {
echo $page['content'];

46
view/theme/frio/php/standard.php

@ -22,6 +22,8 @@
use Friendica\DI;
$frio = 'view/theme/frio';
?>
<!DOCTYPE html >
<html>
@ -30,18 +32,16 @@ use Friendica\DI;
<meta name="viewport" content="initial-scale=1.0">
<meta request="<?php echo htmlspecialchars($_REQUEST['pagename']) ?>">
<script type="text/javascript">var baseurl="<?php echo DI::baseUrl() ?>";</script>
<script type="text/javascript">var frio="<?php echo "view/theme/frio"; ?>";</script>
<?php $baseurl = DI::baseUrl(); ?>
<?php $frio = "view/theme/frio"; ?>
<script type="text/javascript">var frio="<?php echo $frio; ?>";</script>
<?php if(!empty($page['htmlhead'])) echo $page['htmlhead']; ?>
</head>
<body id="top">
<?php if($_SERVER['REQUEST_URI'] == "/"){header('Location: /login');} ?>
<?php if($_SERVER['REQUEST_URI'] == '/'){header('Location: /login');} ?>
<a href="#content" class="sr-only sr-only-focusable"><?php echo DI::l10n()->t('Skip to main content'); ?></a>
<?php
if(!empty($page['nav'])) {
echo str_replace("~config.sitename~", DI::config()->get('config','sitename'),
str_replace("~system.banner~", DI::config()->get('system','banner'),
echo str_replace('~config.sitename~', DI::config()->get('config','sitename'),
str_replace('~system.banner~', DI::config()->get('system','banner'),
$page['nav']
));};
?>
@ -50,24 +50,24 @@ use Friendica\DI;
<div class="container">
<div class="row">
<?php
echo"
<aside class=\"col-lg-3 col-md-3 hidden-sm hidden-xs\">
"; if(!empty($page['aside'])) echo $page['aside']; echo"
"; if(!empty($page['right_aside'])) echo $page['right_aside']; echo"
"; include('includes/photo_side.php'); echo"
echo '
<aside class="col-lg-3 col-md-3 hidden-sm hidden-xs">
'; if(!empty($page['aside'])) echo $page['aside']; echo'
'; if(!empty($page['right_aside'])) echo $page['right_aside']; echo'
'; include('includes/photo_side.php'); echo'
</aside>
<div class=\"col-lg-8 col-md-8 col-sm-12 col-xs-12\" id=\"content\">
<section class=\"sectiontop\">
<div class=\"panel "; echo $a->argv[0]; echo "-content-wrapper\">
<div class=\"panel-body\">";
if(!empty($page['content'])) echo $page['content']; echo"
<div id=\"pause\"></div> <!-- The pause/resume Ajax indicator -->
<div class="col-lg-8 col-md-8 col-sm-12 col-xs-12" id="content">
<section class="sectiontop">
<div class="panel ' . DI::args()->get(0, 'generic') . '-content-wrapper">
<div class="panel-body">';
if(!empty($page['content'])) echo $page['content']; echo'
<div id="pause"></div> <!-- The pause/resume Ajax indicator -->
</div>
</div>
</section>
</div>
";
';
?>
</div><!--row-->
</div><!-- container -->
@ -76,11 +76,10 @@ use Friendica\DI;
</main>
<footer>
<span id="notifsound"></span>
<script>
$("#menu-toggle").click(function(e) {
$('#menu-toggle').click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");
$('#wrapper').toggleClass('toggled');
});
</script>
<script type="text/javascript">
@ -101,14 +100,13 @@ use Friendica\DI;
<script>
var pagetitle = null;
$("nav").bind('nav-update', function(e,data)
$('nav').bind('nav-update', function(e,data)
{
if (pagetitle==null) pagetitle = document.title;
var count = $(data).find('notif').attr('count');
if (count>0)
{
document.title = "("+count+") "+pagetitle;
/* document.getElementById('notifsound').innerHTML='<object type="audio/mpeg" width="0" height="0" data="<?=$frio?>/audios/901.mp3"><param name="notif" value="<?=$frio?>/audios/901.mp3" /><param name="autostart" value="true" /><param name="loop" value="false" /></object>'; */
document.title = '('+count+') '+pagetitle;
}
else
{

Loading…
Cancel
Save