[various] Fix admin addons #854
|
@ -2,6 +2,8 @@ Cookie Notice
|
||||||
|
|
||||||
For server admins only.
|
For server admins only.
|
||||||
|
|
||||||
Configure, show and handle a simple cookie usage notice. This absolute annoying but eventually necessary notification about the usage of cookies. This kind of things you klick ok on but don't read.
|
Configure, show and handle a simple cookie usage notice.
|
||||||
|
This absolute annoying but eventually necessary notification about the usage of cookies.
|
||||||
|
This kind of things you click ok on but don't read.
|
||||||
|
|
||||||
Author: Peter liebetrau <https://socivitas.com/profile/peerteer>
|
Author: Peter Liebetrau <https://socivitas.com/profile/peerteer>
|
||||||
|
|
|
@ -5,70 +5,49 @@
|
||||||
* Description: Configure, show and handle a simple cookie notice
|
* Description: Configure, show and handle a simple cookie notice
|
||||||
* Version: 1.0
|
* Version: 1.0
|
||||||
* Author: Peter Liebetrau <https://socivitas/profile/peerteer>
|
* Author: Peter Liebetrau <https://socivitas/profile/peerteer>
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
use Friendica\Core\Hook;
|
|
||||||
|
use Friendica\App;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
|
use Friendica\Core\Hook;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core\Renderer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cookienotice_install
|
* cookienotice_install
|
||||||
* registers hooks
|
* registers hooks
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function cookienotice_install()
|
function cookienotice_install()
|
||||||
{
|
{
|
||||||
Hook::register('page_content_top', __FILE__, 'cookienotice_page_content_top');
|
Hook::register('page_content_top', __FILE__, 'cookienotice_page_content_top');
|
||||||
Hook::register('page_end', __FILE__, 'cookienotice_page_end');
|
Hook::register('page_end', __FILE__, 'cookienotice_page_end');
|
||||||
Hook::register('addon_settings', __FILE__, 'cookienotice_addon_settings');
|
|
||||||
Hook::register('addon_settings_post', __FILE__, 'cookienotice_addon_settings_post');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cookienotice_uninstall
|
* cookienotice_addon_admin
|
||||||
* unregisters hooks
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function cookienotice_uninstall()
|
|
||||||
{
|
|
||||||
Hook::unregister('page_content_top', __FILE__, 'cookienotice_page_content_top');
|
|
||||||
Hook::unregister('page_end', __FILE__, 'cookienotice_page_end');
|
|
||||||
Hook::unregister('addon_settings', __FILE__, 'cookienotice_addon_settings');
|
|
||||||
Hook::unregister('addon_settings_post', __FILE__, 'cookienotice_addon_settings_post');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* cookienotice_addon_settings
|
|
||||||
* addon_settings hook
|
|
||||||
* creates the admins config panel
|
* creates the admins config panel
|
||||||
*
|
*
|
||||||
* @param \Friendica\App $a
|
* @param App $a
|
||||||
* @param string $s The existing config panel html so far
|
* @param string $s The existing config panel html so far
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function cookienotice_addon_settings(\Friendica\App $a, &$s)
|
function cookienotice_addon_admin(App $a, &$s)
|
||||||
{
|
{
|
||||||
if (!is_site_admin()) {
|
if (!is_site_admin()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add our stylesheet to the page so we can make our settings look nice */
|
|
||||||
$stylesheetPath = 'addon/cookienotice/cookienotice.css';
|
|
||||||
$a->registerStylesheet($stylesheetPath);
|
|
||||||
|
|
||||||
$text = Config::get('cookienotice', 'text', L10n::t('This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.'));
|
$text = Config::get('cookienotice', 'text', L10n::t('This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.'));
|
||||||
$oktext = Config::get('cookienotice', 'oktext', L10n::t('OK'));
|
$oktext = Config::get('cookienotice', 'oktext', L10n::t('OK'));
|
||||||
|
|
||||||
$t = Renderer::getMarkupTemplate("settings.tpl", "addon/cookienotice/");
|
$t = Renderer::getMarkupTemplate('admin.tpl', __DIR__);
|
||||||
$s .= Renderer::replaceMacros($t, [
|
$s .= Renderer::replaceMacros($t, [
|
||||||
'$title' => L10n::t('"cookienotice" Settings'),
|
|
||||||
'$description' => L10n::t('<b>Configure your cookie usage notice.</b> It should just be a notice, saying that the website uses cookies. It is shown as long as a user didnt confirm clicking the OK button.'),
|
'$description' => L10n::t('<b>Configure your cookie usage notice.</b> It should just be a notice, saying that the website uses cookies. It is shown as long as a user didnt confirm clicking the OK button.'),
|
||||||
'$text' => ['cookienotice-text', L10n::t('Cookie Usage Notice'), $text, L10n::t('The cookie usage notice')],
|
'$text' => ['cookienotice-text', L10n::t('Cookie Usage Notice'), $text],
|
||||||
'$oktext' => ['cookienotice-oktext', L10n::t('OK Button Text'), $oktext, L10n::t('The OK Button text')],
|
'$oktext' => ['cookienotice-oktext', L10n::t('OK Button Text'), $oktext],
|
||||||
'$submit' => L10n::t('Save Settings')
|
'$submit' => L10n::t('Save Settings')
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -76,16 +55,16 @@ function cookienotice_addon_settings(\Friendica\App $a, &$s)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cookienotice_addon_settings_post
|
* cookienotice_addon_admin_post
|
||||||
* addon_settings_post hook
|
* addon_settings_post hook
|
||||||
* handles the post request from the admin panel
|
* handles the post request from the admin panel
|
||||||
*
|
*
|
||||||
* @param \Friendica\App $a
|
* @param App $a
|
||||||
* @param string $b
|
* @param string $b
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function cookienotice_addon_settings_post(\Friendica\App $a, &$b)
|
function cookienotice_addon_admin_post(App $a, &$b)
|
||||||
{
|
{
|
||||||
if (!is_site_admin()) {
|
if (!is_site_admin()) {
|
||||||
return;
|
return;
|
||||||
|
@ -102,16 +81,16 @@ function cookienotice_addon_settings_post(\Friendica\App $a, &$b)
|
||||||
* cookienotice_page_content_top
|
* cookienotice_page_content_top
|
||||||
* page_content_top hook
|
* page_content_top hook
|
||||||
* adds css and scripts to the <head> section of the html
|
* adds css and scripts to the <head> section of the html
|
||||||
*
|
*
|
||||||
* @param \Friendica\App $a
|
* @param App $a
|
||||||
* @param string $b unnused - the header html incl. nav
|
* @param string $b unused - the header html incl. nav
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function cookienotice_page_content_top(\Friendica\App $a, &$b)
|
function cookienotice_page_content_top(App $a, &$b)
|
||||||
{
|
{
|
||||||
$stylesheetPath = 'addon/cookienotice/cookienotice.css';
|
$stylesheetPath = __DIR__ . '/cookienotice.css';
|
||||||
$footerscriptPath = 'addon/cookienotice/cookienotice.js';
|
$footerscriptPath = __DIR__ . '/cookienotice.js';
|
||||||
|
|
||||||
$a->registerStylesheet($stylesheetPath);
|
$a->registerStylesheet($stylesheetPath);
|
||||||
$a->registerFooterScript($footerscriptPath);
|
$a->registerFooterScript($footerscriptPath);
|
||||||
|
@ -121,18 +100,18 @@ function cookienotice_page_content_top(\Friendica\App $a, &$b)
|
||||||
* cookienotice_page_end
|
* cookienotice_page_end
|
||||||
* page_end hook
|
* page_end hook
|
||||||
* ads our cookienotice box to the end of the html
|
* ads our cookienotice box to the end of the html
|
||||||
*
|
*
|
||||||
* @param \Friendica\App $a
|
* @param App $a
|
||||||
* @param string $b the page html
|
* @param string $b the page html
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function cookienotice_page_end(\Friendica\App $a, &$b)
|
function cookienotice_page_end(App $a, &$b)
|
||||||
{
|
{
|
||||||
$text = (string) Config::get('cookienotice', 'text', L10n::t('This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.'));
|
$text = (string)Config::get('cookienotice', 'text', L10n::t('This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.'));
|
||||||
$oktext = (string) Config::get('cookienotice', 'oktext', L10n::t('OK'));
|
$oktext = (string)Config::get('cookienotice', 'oktext', L10n::t('OK'));
|
||||||
|
|
||||||
$page_end_tpl = Renderer::getMarkupTemplate("cookienotice.tpl", "addon/cookienotice/");
|
$page_end_tpl = Renderer::getMarkupTemplate('cookienotice.tpl', __DIR__);
|
||||||
|
|
||||||
$page_end = Renderer::replaceMacros($page_end_tpl, [
|
$page_end = Renderer::replaceMacros($page_end_tpl, [
|
||||||
'$text' => $text,
|
'$text' => $text,
|
||||||
|
|
6
cookienotice/templates/admin.tpl
Normal file
6
cookienotice/templates/admin.tpl
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<p>{{$description nofilter}}</p>
|
||||||
|
{{include file="field_textarea.tpl" field=$text}}
|
||||||
|
{{include file="field_input.tpl" field=$oktext}}
|
||||||
|
<div class="settings-submit-wrapper" >
|
||||||
|
<input type="submit" id="cookienotice-submit" name="cookienotice-submit" class="settings-submit" value="{{$submit}}" />
|
||||||
|
</div>
|
|
@ -1,15 +0,0 @@
|
||||||
<span id="settings_cookienotice_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose('settings_cookienotice_expanded'); openClose('settings_cookienotice_inflated');">
|
|
||||||
<h3>{{$title}}</h3>
|
|
||||||
</span>
|
|
||||||
<div id="settings_cookienotice_expanded" class="settings-block" style="display: none;">
|
|
||||||
<span class="fakelink" onclick="openClose('settings_cookienotice_expanded'); openClose('settings_cookienotice_inflated');">
|
|
||||||
<h3>{{$title}}</h3>
|
|
||||||
</span>
|
|
||||||
<p>{{$description nofilter}}</p>
|
|
||||||
{{include file="field_textarea.tpl" field=$text}}
|
|
||||||
{{include file="field_input.tpl" field=$oktext}}
|
|
||||||
<div class="settings-submit-wrapper" >
|
|
||||||
<input type="submit" id="cookienotice-submit" name="cookienotice-submit" class="settings-submit" value="{{$submit}}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="clear"></div>
|
|
|
@ -3,14 +3,14 @@ Geonames Addon
|
||||||
|
|
||||||
Authors Mike Macgirvin.
|
Authors Mike Macgirvin.
|
||||||
|
|
||||||
Use Geonames service to resolve nearest populated location for given latitude, longitude.
|
Use [Geonames service](https://www.geonames.org) to resolve nearest populated location for given latitude, longitude.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Pre-requisite: Register a username at geonames.org and set in `config/addon.config.php`
|
Pre-requisite: Register a username at https://www.geonames.org/login and set it in `config/addon.config.php`
|
||||||
|
|
||||||
'geonames' => [
|
'geonames' => [
|
||||||
'username' => 'your_username'
|
'username' => 'your_username'
|
||||||
],
|
],
|
||||||
|
|
||||||
Also visit http://geonames.org/manageaccount and enable access to the free web services.
|
Also visit https://geonames.org/manageaccount and enable access to the free web services.
|
||||||
|
|
|
@ -4,202 +4,148 @@
|
||||||
* Description: Use Geonames service to resolve nearest populated location for given latitude, longitude
|
* Description: Use Geonames service to resolve nearest populated location for given latitude, longitude
|
||||||
* Version: 1.0
|
* Version: 1.0
|
||||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||||
*
|
|
||||||
*
|
|
||||||
* Pre-requisite: Register a username at geonames.org
|
|
||||||
* and set in config/addon.config.php
|
|
||||||
*
|
|
||||||
* [geonames]
|
|
||||||
* username = your_username
|
|
||||||
*
|
|
||||||
* Also visit http://geonames.org/manageaccount and enable access to the free web services
|
|
||||||
*
|
|
||||||
* When addon is installed, the system calls the addon
|
|
||||||
* name_install() function, located in 'addon/name/name.php',
|
|
||||||
* where 'name' is the name of the addon.
|
|
||||||
* If the addon is removed from the configuration list, the
|
|
||||||
* system will call the name_uninstall() function.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Friendica\App;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\PConfig;
|
use Friendica\Core\PConfig;
|
||||||
|
use Friendica\Core\Renderer;
|
||||||
use Friendica\Util\Config\ConfigFileLoader;
|
use Friendica\Util\Config\ConfigFileLoader;
|
||||||
use Friendica\Util\Network;
|
use Friendica\Util\Network;
|
||||||
use Friendica\Util\XML;
|
use Friendica\Util\XML;
|
||||||
|
|
||||||
function geonames_install() {
|
function geonames_install()
|
||||||
|
{
|
||||||
|
Hook::register('load_config', __FILE__, 'geonames_load_config');
|
||||||
|
|
||||||
Hook::register('load_config', 'addon/geonames/geonames.php', 'geonames_load_config');
|
/* Our addon will attach in three places.
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Our addon will attach in three places.
|
|
||||||
* The first is just prior to storing a local post.
|
* The first is just prior to storing a local post.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Hook::register('post_local', 'addon/geonames/geonames.php', 'geonames_post_hook');
|
Hook::register('post_local', __FILE__, 'geonames_post_hook');
|
||||||
|
|
||||||
/**
|
/* Then we'll attach into the addon settings page, and also the
|
||||||
*
|
|
||||||
* Then we'll attach into the addon settings page, and also the
|
|
||||||
* settings post hook so that we can create and update
|
* settings post hook so that we can create and update
|
||||||
* user preferences.
|
* user preferences.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Hook::register('addon_settings', 'addon/geonames/geonames.php', 'geonames_addon_admin');
|
Hook::register('addon_settings', __FILE__, 'geonames_addon_settings');
|
||||||
Hook::register('addon_settings_post', 'addon/geonames/geonames.php', 'geonames_addon_admin_post');
|
Hook::register('addon_settings_post', __FILE__, 'geonames_addon_settings_post');
|
||||||
|
|
||||||
Logger::log("installed geonames");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function geonames_load_config(App $a, ConfigFileLoader $loader)
|
||||||
function geonames_uninstall() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* uninstall unregisters any hooks created with register_hook
|
|
||||||
* during install. It may also delete configuration settings
|
|
||||||
* and any other cleanup.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
Hook::unregister('load_config', 'addon/geonames/geonames.php', 'geonames_load_config');
|
|
||||||
Hook::unregister('post_local', 'addon/geonames/geonames.php', 'geonames_post_hook');
|
|
||||||
Hook::unregister('addon_settings', 'addon/geonames/geonames.php', 'geonames_addon_admin');
|
|
||||||
Hook::unregister('addon_settings_post', 'addon/geonames/geonames.php', 'geonames_addon_admin_post');
|
|
||||||
|
|
||||||
|
|
||||||
Logger::log("removed geonames");
|
|
||||||
}
|
|
||||||
|
|
||||||
function geonames_load_config(\Friendica\App $a, ConfigFileLoader $loader)
|
|
||||||
{
|
{
|
||||||
$a->getConfigCache()->load($loader->loadAddonConfig('geonames'));
|
$a->getConfigCache()->load($loader->loadAddonConfig('geonames'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function geonames_post_hook($a, &$item) {
|
function geonames_post_hook(App $a, array &$item)
|
||||||
|
{
|
||||||
/**
|
/* An item was posted on the local system.
|
||||||
*
|
|
||||||
* An item was posted on the local system.
|
|
||||||
* We are going to look for specific items:
|
* We are going to look for specific items:
|
||||||
* - A status post by a profile owner
|
* - A status post by a profile owner
|
||||||
* - The profile owner must have allowed our addon
|
* - The profile owner must have allowed our addon
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Logger::log('geonames invoked');
|
Logger::log('geonames invoked');
|
||||||
|
|
||||||
if(! local_user()) /* non-zero if this is a logged in user of this system */
|
if (!local_user()) { /* non-zero if this is a logged in user of this system */
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(local_user() != $item['uid']) /* Does this person own the post? */
|
if (local_user() != $item['uid']) { /* Does this person own the post? */
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if($item['parent']) /* If the item has a parent, this is a comment or something else, not a status post. */
|
if ($item['parent']) { /* If the item has a parent, this is a comment or something else, not a status post. */
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Retrieve our personal config setting */
|
/* Retrieve our personal config setting */
|
||||||
|
|
||||||
$geo_account = Config::get('geonames', 'username');
|
$geo_account = Config::get('geonames', 'username');
|
||||||
$active = PConfig::get(local_user(), 'geonames', 'enable');
|
$active = PConfig::get(local_user(), 'geonames', 'enable');
|
||||||
|
|
||||||
if((! $geo_account) || (! $active))
|
if (!$geo_account || !$active) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if((! $item['coord']) || ($item['location']))
|
if (!$item['coord'] || $item['location']) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$coords = explode(' ',$item['coord']);
|
$coords = explode(' ', $item['coord']);
|
||||||
|
|
||||||
/**
|
/* OK, we're allowed to do our stuff. */
|
||||||
*
|
|
||||||
* OK, we're allowed to do our stuff.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
$s = Network::fetchUrl('http://api.geonames.org/findNearbyPlaceName?lat=' . $coords[0] . '&lng=' . $coords[1] . '&username=' . $geo_account);
|
$s = Network::fetchUrl('http://api.geonames.org/findNearbyPlaceName?lat=' . $coords[0] . '&lng=' . $coords[1] . '&username=' . $geo_account);
|
||||||
|
|
||||||
if(! $s)
|
if (!$s) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$xml = XML::parseString($s);
|
$xml = XML::parseString($s);
|
||||||
|
|
||||||
if($xml->geoname->name && $xml->geoname->countryName)
|
if ($xml->geoname->name && $xml->geoname->countryName) {
|
||||||
$item['location'] = $xml->geoname->name . ', ' . $xml->geoname->countryName;
|
$item['location'] = $xml->geoname->name . ', ' . $xml->geoname->countryName;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Logger::log('geonames : ' . print_r($xml,true), Logger::DATA);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Callback from the settings post function.
|
* Callback from the settings post function.
|
||||||
* $post contains the $_POST array.
|
|
||||||
* We will make sure we've got a valid user account
|
* We will make sure we've got a valid user account
|
||||||
* and if so set our configuration setting for this person.
|
* and if so set our configuration setting for this person.
|
||||||
*
|
*
|
||||||
|
* @param App $a
|
||||||
|
* @param array $post The $_POST array
|
||||||
*/
|
*/
|
||||||
|
function geonames_addon_settings_post(App $a, array $post)
|
||||||
function geonames_addon_admin_post($a,$post) {
|
{
|
||||||
if(! local_user() || empty($_POST['geonames-submit']))
|
if (!local_user() || empty($_POST['geonames-submit'])) {
|
||||||
return;
|
return;
|
||||||
PConfig::set(local_user(),'geonames','enable',intval($_POST['geonames']));
|
}
|
||||||
|
|
||||||
info(L10n::t('Geonames settings updated.') . EOL);
|
PConfig::set(local_user(), 'geonames', 'enable', intval($_POST['geonames-enable']));
|
||||||
|
|
||||||
|
info(L10n::t('Geonames settings updated.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Called from the Addon Setting form.
|
* Called from the Addon Setting form.
|
||||||
* Add our own settings info to the page.
|
* Add our own settings info to the page.
|
||||||
*
|
*
|
||||||
|
* @param App $a
|
||||||
|
* @param string $s
|
||||||
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
|
function geonames_addon_settings(App $a, &$s)
|
||||||
|
{
|
||||||
|
if (!local_user()) {
|
||||||
function geonames_addon_admin(&$a,&$s) {
|
|
||||||
|
|
||||||
if(! local_user())
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$geo_account = Config::get('geonames', 'username');
|
$geo_account = Config::get('geonames', 'username');
|
||||||
|
|
||||||
if(! $geo_account)
|
if (!$geo_account) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Add our stylesheet to the page so we can make our settings look nice */
|
/* Add our stylesheet to the page so we can make our settings look nice */
|
||||||
|
$stylesheetPath = __DIR__ . '/geonames.css';
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->getBaseURL() . '/addon/geonames/geonames.css' . '" media="all" />' . "\r\n";
|
$a->registerStylesheet($stylesheetPath);
|
||||||
|
|
||||||
/* Get the current state of our config variable */
|
/* Get the current state of our config variable */
|
||||||
|
$enabled = intval(PConfig::get(local_user(), 'geonames', 'enable'));
|
||||||
|
|
||||||
$enabled = PConfig::get(local_user(),'geonames','enable');
|
$t = Renderer::getMarkupTemplate('settings.tpl', __DIR__);
|
||||||
|
$s .= Renderer::replaceMacros($t, [
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
'$title' => L10n::t('Geonames Settings'),
|
||||||
|
'$description' => L10n::t('Replace numerical coordinates by the nearest populated location name in your posts.'),
|
||||||
/* Add some HTML to the existing form */
|
'$enable' => ['geonames-enable', L10n::t('Enable Geonames Addon'), $enabled],
|
||||||
|
'$submit' => L10n::t('Save Settings')
|
||||||
$s .= '<div class="settings-block">';
|
]);
|
||||||
$s .= '<h3>' . L10n::t('Geonames Settings') . '</h3>';
|
|
||||||
$s .= '<div id="geonames-enable-wrapper">';
|
|
||||||
$s .= '<label id="geonames-enable-label" for="geonames-checkbox">' . L10n::t('Enable Geonames Addon') . '</label>';
|
|
||||||
$s .= '<input id="geonames-checkbox" type="checkbox" name="geonames" value="1" ' . $checked . '/>';
|
|
||||||
$s .= '</div><div class="clear"></div>';
|
|
||||||
|
|
||||||
/* provide a submit button */
|
|
||||||
|
|
||||||
$s .= '<div class="settings-submit-wrapper" ><input type="submit" name="geonames-submit" class="settings-submit" value="' . L10n::t('Save Settings') . '" /></div></div>';
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
14
geonames/templates/settings.tpl
Normal file
14
geonames/templates/settings.tpl
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<span id="settings_geonames_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose('settings_geonames_expanded'); openClose('settings_geonames_inflated');">
|
||||||
|
<h3>{{$title}}</h3>
|
||||||
|
</span>
|
||||||
|
<div id="settings_geonames_expanded" class="settings-block" style="display: none;">
|
||||||
|
<span class="fakelink" onclick="openClose('settings_geonames_expanded'); openClose('settings_geonames_inflated');">
|
||||||
|
<h3>{{$title}}</h3>
|
||||||
|
</span>
|
||||||
|
<p>{{$description nofilter}}</p>
|
||||||
|
{{include file="field_checkbox.tpl" field=$enable}}
|
||||||
|
<div class="settings-submit-wrapper" >
|
||||||
|
<input type="submit" id="geonames-submit" name="geonames-submit" class="settings-submit" value="{{$submit}}" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
|
@ -8,63 +8,45 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Friendica\App;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
use Friendica\Core\Hook;
|
use Friendica\Core\Hook;
|
||||||
use Friendica\Core\L10n;
|
use Friendica\Core\L10n;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core\Renderer;
|
||||||
|
|
||||||
function pageheader_install() {
|
function pageheader_install() {
|
||||||
Hook::register('page_content_top', 'addon/pageheader/pageheader.php', 'pageheader_fetch');
|
Hook::register('page_content_top', __FILE__, 'pageheader_fetch');
|
||||||
Hook::register('addon_settings', 'addon/pageheader/pageheader.php', 'pageheader_addon_settings');
|
|
||||||
Hook::register('addon_settings_post', 'addon/pageheader/pageheader.php', 'pageheader_addon_settings_post');
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function pageheader_addon_admin(App &$a, &$s)
|
||||||
function pageheader_uninstall() {
|
{
|
||||||
Hook::unregister('page_content_top', 'addon/pageheader/pageheader.php', 'pageheader_fetch');
|
if(! is_site_admin()) {
|
||||||
Hook::unregister('addon_settings', 'addon/pageheader/pageheader.php', 'pageheader_addon_settings');
|
|
||||||
Hook::unregister('addon_settings_post', 'addon/pageheader/pageheader.php', 'pageheader_addon_settings_post');
|
|
||||||
|
|
||||||
// hook moved, uninstall the old one if still there.
|
|
||||||
Hook::unregister('page_header', 'addon/pageheader/pageheader.php', 'pageheader_fetch');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function pageheader_addon_settings(&$a,&$s) {
|
|
||||||
|
|
||||||
|
|
||||||
if(! is_site_admin())
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Add our stylesheet to the page so we can make our settings look nice */
|
/* Add our stylesheet to the page so we can make our settings look nice */
|
||||||
|
$stylesheetPath = __DIR__ . '/pageheader.css';
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->getBaseURL() . '/addon/pageheader/pageheader.css' . '" media="all" />' . "\r\n";
|
$a->registerStylesheet($stylesheetPath);
|
||||||
|
|
||||||
|
|
||||||
$words = Config::get('pageheader','text');
|
$words = Config::get('pageheader','text');
|
||||||
if(! $words)
|
if(! $words)
|
||||||
$words = '';
|
$words = '';
|
||||||
|
|
||||||
$t = Renderer::getMarkupTemplate("settings.tpl", "addon/pageheader/");
|
$t = Renderer::getMarkupTemplate('admin.tpl', __DIR__);
|
||||||
$s .= Renderer::replaceMacros($t, [
|
$s .= Renderer::replaceMacros($t, [
|
||||||
'$title' => L10n::t('"pageheader" Settings'),
|
'$title' => L10n::t('"pageheader" Settings'),
|
||||||
'$phwords' => ['pageheader-words', L10n::t('Message'), $words, L10n::t('Message to display on every page on this server (or put a pageheader.html file in your docroot)')],
|
'$phwords' => ['pageheader-words', L10n::t('Message'), $words, L10n::t('Message to display on every page on this server (or put a pageheader.html file in your docroot)')],
|
||||||
'$submit' => L10n::t('Save Settings')
|
'$submit' => L10n::t('Save Settings')
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pageheader_addon_settings_post(&$a, &$b) {
|
function pageheader_addon_admin_post(App $a, &$b)
|
||||||
|
{
|
||||||
if(!is_site_admin())
|
if(!is_site_admin()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(!empty($_POST['pageheader-submit'])) {
|
if(!empty($_POST['pageheader-submit'])) {
|
||||||
if (isset($_POST['pageheader-words'])) {
|
if (isset($_POST['pageheader-words'])) {
|
||||||
|
@ -74,19 +56,18 @@ function pageheader_addon_settings_post(&$a, &$b) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function pageheader_fetch($a,&$b) {
|
function pageheader_fetch(App $a, &$b)
|
||||||
|
{
|
||||||
if(file_exists('pageheader.html')){
|
if(file_exists('pageheader.html')){
|
||||||
$s = file_get_contents('pageheader.html');
|
$s = file_get_contents('pageheader.html');
|
||||||
} else {
|
} else {
|
||||||
$s = Config::get('pageheader', 'text');
|
$s = Config::get('pageheader', 'text');
|
||||||
}
|
}
|
||||||
|
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'
|
$stylesheetPath = __DIR__ .'/pageheader.css';
|
||||||
. $a->getBaseURL() . '/addon/pageheader/pageheader.css' . '" media="all" />' . "\r\n";
|
$a->registerStylesheet($stylesheetPath);
|
||||||
|
|
||||||
if(! $s)
|
if ($s) {
|
||||||
$s = '';
|
|
||||||
if ($s != '')
|
|
||||||
$b .= '<div class="pageheader">' . $s . '</div>';
|
$b .= '<div class="pageheader">' . $s . '</div>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
5
pageheader/templates/admin.tpl
Normal file
5
pageheader/templates/admin.tpl
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{{include file="field_textarea.tpl" field=$phwords}}
|
||||||
|
|
||||||
|
<div class="settings-submit-wrapper" >
|
||||||
|
<input type="submit" id="pageheader-submit" name="pageheader-submit" class="settings-submit" value="{{$submit}}" />
|
||||||
|
</div>
|
|
@ -1,14 +0,0 @@
|
||||||
<span id="settings_pageheader_inflated" class="settings-block fakelink" style="display: block;" onclick="openClose('settings_pageheader_expanded'); openClose('settings_pageheader_inflated');">
|
|
||||||
<h3>{{$title}}</h3>
|
|
||||||
</span>
|
|
||||||
<div id="settings_pageheader_expanded" class="settings-block" style="display: none;">
|
|
||||||
<span class="fakelink" onclick="openClose('settings_pageheader_expanded'); openClose('settings_pageheader_inflated');">
|
|
||||||
<h3>{{$title}}</h3>
|
|
||||||
</span>
|
|
||||||
{{include file="field_textarea.tpl" field=$phwords}}
|
|
||||||
|
|
||||||
<div class="settings-submit-wrapper" >
|
|
||||||
<input type="submit" id="pageheader-submit" name="pageheader-submit" class="settings-submit" value="{{$submit}}" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="clear"></div>
|
|
Loading…
Reference in a new issue