From: rabuzarus <>
Date: Mon, 11 Jul 2016 08:33:39 +0000 (+0200)
Subject: add possibility to load custom page templates + none.php pagetemplate is part of...
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=15471f383528a17c7373a1ef61ddd7ffb59faf06;p=friendica.git
add possibility to load custom page templates + none.php pagetemplate is part of core now
---
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index fc3df52327..76f0e0b796 100644
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -399,7 +399,7 @@ function acl_lookup(&$a, $out_type = 'json') {
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
$search = (x($_REQUEST,'search') ? $_REQUEST['search'] : "");
$type = (x($_REQUEST,'type') ? $_REQUEST['type'] : "");
- $mode = (x($_REQUEST,'mode') ? $_REQUEST['mode'] : "");
+ $mode = (x($_REQUEST,'smode') ? $_REQUEST['smode'] : "");
$conv_id = (x($_REQUEST,'conversation') ? $_REQUEST['conversation'] : null);
// For use with jquery.textcomplete for private mail completion
@@ -690,7 +690,7 @@ function navbar_complete(&$a) {
$localsearch = get_config('system','poco_local_search');
$search = $prefix.notags(trim($_REQUEST['search']));
- $mode = $_REQUEST['mode'];
+ $mode = $_REQUEST['smode'];
// don't search if search term has less than 2 characters
if(! $search || mb_strlen($search) < 2)
diff --git a/include/plugin.php b/include/plugin.php
index 2cb94b3504..e2bd23ee2a 100644
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -534,3 +534,41 @@ function upgrade_bool_message($bbcode = false) {
$x = upgrade_link($bbcode);
return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
}
+
+/**
+ * @brief Get the full path to relevant theme files by filename
+ *
+ * This function search in the theme directory (and if not present in global theme directory)
+ * if there is a directory with the file extension and for a file with the given
+ * filename.
+ *
+ * @param string $file Filename
+ * @param string $root Full root path
+ * @return string Path to the file or empty string if the file isn't found
+ */
+function theme_include($file, $root = '') {
+ // Make sure $root ends with a slash / if it's not blank
+ if($root !== '' && $root[strlen($root)-1] !== '/')
+ $root = $root . '/';
+ $theme_info = $a->theme_info;
+ if(array_key_exists('extends',$theme_info))
+ $parent = $theme_info['extends'];
+ else
+ $parent = 'NOPATH';
+ $theme = current_theme();
+ $thname = $theme;
+ $ext = substr($file,strrpos($file,'.')+1);
+ $paths = array(
+ "{$root}view/theme/$thname/$ext/$file",
+ "{$root}view/theme/$parent/$ext/$file",
+ "{$root}view/$ext/$file",
+ );
+ foreach($paths as $p) {
+ // strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php)
+ if(strpos($p,'NOPATH') !== false)
+ continue;
+ if(file_exists($p))
+ return $p;
+ }
+ return '';
+}
\ No newline at end of file
diff --git a/index.php b/index.php
index 7b41403351..6ce348eac5 100644
--- a/index.php
+++ b/index.php
@@ -500,21 +500,19 @@ $profile = $a->profile;
header("X-Friendica-Version: ".FRIENDICA_VERSION);
header("Content-type: text/html; charset=utf-8");
+// We use $_GET["mode"] for special page templates. So we will check if we have
+// to load another page template than the default one
+// The page templates are located in /view/php/ or in the theme directory
+if (isset($_GET["mode"])) {
+ $template = theme_include($_GET["mode"].'.php');
+}
-if (isset($_GET["mode"]) AND ($_GET["mode"] == "minimal")) {
- //$page['content'] = substr($target->saveHTML(), 6, -8)."\n\n".
- // '