<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://fbb.just4test.de/extern.php?action=feed&amp;tid=1760&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Informationen für CMS/made simple / Menü nur bei angemeldeten Benutzern zeigen]]></title>
		<link>http://www.cmsmadesimple.de/forum/viewtopic.php?id=1760</link>
		<description><![CDATA[Die aktuellsten Beiträge in Menü nur bei angemeldeten Benutzern zeigen.]]></description>
		<lastBuildDate>Wed, 25 Jan 2012 22:21:48 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15281#p15281</link>
			<description><![CDATA[<div class="quotebox"><cite>ampelmann schrieb:</cite><blockquote><div><p>Und habt Ihr da empfehlenswerte Lektüre für den Um- bzw. Einsteiger in php + smarty?</p></div></blockquote></div><p><a href="http://www.amazon.de/PHP-MySQL-Schritt-datenbankgest%C3%BCtzten-Website/dp/3898643166/ref=sr_1_1?ie=UTF8&amp;qid=1327529932&amp;sr=8-1" rel="nofollow">http://www.amazon.de/PHP-MySQL-Schritt- … 932&amp;sr=8-1</a><br /><a href="http://www.packtpub.com/smarty/book" rel="nofollow">http://www.packtpub.com/smarty/book</a></p>]]></description>
			<author><![CDATA[dummy@example.com (cyberman)]]></author>
			<pubDate>Wed, 25 Jan 2012 22:21:48 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15281#p15281</guid>
		</item>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15278#p15278</link>
			<description><![CDATA[<p>Vielen Dank für die Tipps: nockenfell, NaN und cyberman.</p><p>Ich bin von der Performance von php ja grundsätzlich beeindruckt, ich komme von .net und sql-server...</p><p>Doch wie kann der code geändert werden, um nur noch die geschützten Seiten in der nodelist zu haben?<br />Und habt Ihr da empfehlenswerte Lektüre für den Um- bzw. Einsteiger in php + smarty?</p><div class="codebox"><pre class="vscroll"><code>// UDT feuShowMenu written by Nockenfell 12.2010

// Funktionen

if(!function_exists(&#039;btGetFeuGroups&#039;)) {
    function btGetFeuGroups() { 
        $feusers = cms_utils::get_module(&#039;FrontEndUsers&#039;);
    $user_id = $feusers-&gt;LoggedInId();
    
        // Alle Gruppen einlesen zu welchen der eingeloggte Benutzer gehört
        $groups = $feusers-&gt;GetMemberGroupsArray($user_id);

        $gns = array();
        if($groups !== false ) {
            foreach( $groups as $gid ) {
                $gns[] = $gid[&#039;groupid&#039;];
            }
        }
        return $gns;
    }
}

if(!function_exists(&#039;btGetFeuAccess&#039;)) {
    function btGetFeuAccess($id) {
        $gns = btGetFeuGroups();
        $btFeuAccess = cms_utils::get_app_data(&#039;btFeuAccess&#039;);
        $feuAccess = $btFeuAccess[$id];
        if ($feuAccess != &quot;&quot; and $feuAccess != -1) {
            // Prüfen der Berechtigung
            $feuArray= explode(&#039;;&#039;,$feuAccess);
            $retval = false;
            foreach ($feuArray as $feu) {
                if (in_array($feu,$gns)) $retval = true;
            }
            return $retval;
        }
        return true;
    }
}

if(!function_exists(&#039;btMenuHasChildren&#039;)) {
    function btMenuHasChildren($currentnode,$nodelist) {
        // Children suchen
        foreach ($nodelist as $node) {
            if ($node-&gt;depth == $currentnode-&gt;depth+1 and $currentnode-&gt;hierarchy == substr($node-&gt;hierarchy,0,strlen($currentnode-&gt;hierarchy))) {
                return true;
            }
        }
        return false;
    }
}

if(!function_exists(&#039;btMenuHasParent&#039;)) {
    function btMenuHasParent($currentnode,$nodelist) {
        // Parent suchen
        foreach ($nodelist as $node) {$pos = strpos($meinString, $findMich);
            if ($node-&gt;depth == $currentnode-&gt;depth-1 and strpos($currentnode-&gt;hierarchy, $node-&gt;hierarchy) !== FALSE) {
                return true;
            }
        }
        return false;
    }
}

if (!isset($params[&#039;nodelist&#039;])) {
    echo &quot;UDT-feuShowMenu - Nodeliste des Menüs fehlt!&quot;;
    return;
}

// Seiten mit feu_access Eintrag auslesen

$sql = &quot;select content_id, prop_name, content from &quot;.cms_db_prefix().&quot;content_props where prop_name = &#039;feu_access&#039;&quot;;
$db = &amp;cmsms()-&gt;GetDb();
$dbresult = $db-&gt;Execute($sql);
$btFeuAccess = Array();
while ($dbresult &amp;&amp; $row = $dbresult-&gt;FetchRow())
        $btFeuAccess[$row[&#039;content_id&#039;]] = $row[&#039;content&#039;];
cms_utils::set_app_data(&#039;btFeuAccess&#039;,$btFeuAccess);

$nodelist = $params[&#039;nodelist&#039;];

// Schreiben welche Seiten sichtbar sind
$modnodelist = array();
foreach($nodelist as $node) {
    $node-&gt;hasAccess = btGetFeuAccess($node-&gt;id);
    $modnodelist[] = $node;
}

// geschütze Seiten aus dem Array löschen
foreach ($modnodelist as $key=&gt;$node) {
    // geschütze Seiten löschen
    if ($node-&gt;hasAccess == false or $node-&gt;hasAccess == &quot;&quot;) {
        if (false !== ($key = array_search($node,$modnodelist))) {
            unset($modnodelist[$key]);
        }
    }
}

// nicht mehr referenzierte Seiten aus dem Array löschen
foreach ($modnodelist as $key=&gt;$node) {
    // interne Links zu geschütze Seiten löschen
    if ($node-&gt;type == &quot;pagelink&quot;) {
        foreach ($nodelist as $plnode) {
            if ($plnode-&gt;url == $node-&gt;url and $plnode-&gt;id != $node-&gt;id) {
                if (!btGetFeuAccess($plnode-&gt;id)) {
                    if (false !== ($key = array_search($node,$modnodelist))) {
                        unset($modnodelist[$key]);
                    }
                }
            }
        }
    }
    // Sectionheader ohne Children löschen
    else if ($node-&gt;type == &quot;sectionheader&quot;) {
        if (!btMenuHasChildren($node,$modnodelist)){
            if (false !== ($key = array_search($node,$modnodelist))) {
                unset($modnodelist[$key]);
            }
        }
    }
    // Childern ohne Parent löschen
    else if ($node-&gt;depth &gt; 1) {
        if (!btMenuHasParent($node,$modnodelist)){
            if (false !== ($key = array_search($node,$modnodelist))) {
                unset($modnodelist[$key]);
            }
        }
    }
}

// $node-&gt;prevdepth und $node-&gt;haschildren neu setzen
$prevdepth = 1;
foreach ($modnodelist as $node) {
    $node-&gt;prevdepth = $prevdepth;
    $prevdepth = $node-&gt;depth;
    $node-&gt;haschildren = btMenuHasChildren($node,$modnodelist);
}

// Nummerierung Array zurücksetzen
$modnodelist = array_values($modnodelist);


// Assign des Rückgabewertes
if(isset($params[&#039;assign&#039;])) 
    $smarty-&gt;assign(trim($params[&#039;assign&#039;]), $modnodelist );
else
    return $modnodelist;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (ampelmann)]]></author>
			<pubDate>Wed, 25 Jan 2012 21:11:33 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15278#p15278</guid>
		</item>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15275#p15275</link>
			<description><![CDATA[<div class="quotebox"><cite>ampelmann schrieb:</cite><blockquote><div><p>Die betreffende Codezeile aus dem UDT:</p><div class="codebox"><pre><code>71: $sql = &quot;select content_id, prop_name, content from &quot;.cms_db_prefix().&quot;content_props where prop_name = &#039;feu_access&#039;&quot;;
72: $db = cmsms()-&gt;db;
73: $dbresult = $db-&gt;Execute($sql);</code></pre></div><p>Hast Du eine Idee, warum die Abfrage scheitert?</p></div></blockquote></div><p>Schau mal hier <img src="http://www.cmsmadesimple.de/forum/plugins/ezbbc/style/smilies/wink.png" alt="wink" /></p><p><a href="http://forum.cmsmadesimple.de/viewtopic.php?id=1452" rel="nofollow">http://forum.cmsmadesimple.de/viewtopic.php?id=1452</a></p>]]></description>
			<author><![CDATA[dummy@example.com (cyberman)]]></author>
			<pubDate>Wed, 25 Jan 2012 20:48:11 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15275#p15275</guid>
		</item>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15274#p15274</link>
			<description><![CDATA[<div class="codebox"><pre><code>$db = &amp;cmsms()-&gt;GetDb();</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (NaN)]]></author>
			<pubDate>Wed, 25 Jan 2012 20:47:22 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15274#p15274</guid>
		</item>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15270#p15270</link>
			<description><![CDATA[<p>Danke für die Anwort!</p><div class="quotebox"><cite>nockenfell schrieb:</cite><blockquote><div><p>Um dies zu machen, müsstest du die Nodelist manipulieren. Eine Beispiel dazu findest du hier:<br /><a href="http://forum.cmsmadesimple.de/viewtopic.php?id=156" rel="nofollow">http://forum.cmsmadesimple.de/viewtopic.php?id=156</a></p></div></blockquote></div><p>Ich bekomme eine Fehlermeldung aus dem UDT: Fatal error: Call to a member function Execute() on a non-object in C:\xampp\htdocs\testseite\lib\classes\class.usertagoperations.inc.php(260) : eval()&#039;d code on line 73</p><p>Die betreffende Codezeile aus dem UDT:</p><div class="codebox"><pre><code>71: $sql = &quot;select content_id, prop_name, content from &quot;.cms_db_prefix().&quot;content_props where prop_name = &#039;feu_access&#039;&quot;;
72: $db = cmsms()-&gt;db;
73: $dbresult = $db-&gt;Execute($sql);</code></pre></div><p>Hast Du eine Idee, warum die Abfrage scheitert?</p><p>Edit: Ich habe $db = cmsms()-&gt;db; ersetzt durch:</p><div class="codebox"><pre><code>global $gCms;
...
$db =&amp; $gCms-&gt;GetDB();</code></pre></div><p>So gibt es keine Fehlermeldung mehr.</p>]]></description>
			<author><![CDATA[dummy@example.com (ampelmann)]]></author>
			<pubDate>Wed, 25 Jan 2012 19:56:13 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15270#p15270</guid>
		</item>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15251#p15251</link>
			<description><![CDATA[<p>Diesen Wunsch kannst du nicht so ohne weiteres umsetzen. Um dies zu machen, müsstest du die Nodelist manipulieren. Eine Beispiel dazu findest du hier:<br /><a href="http://forum.cmsmadesimple.de/viewtopic.php?id=156" rel="nofollow">http://forum.cmsmadesimple.de/viewtopic.php?id=156</a></p><p>Falls du was von PHP verstehst, kannst du damit selber was programmieren (ist nicht sehr preformant, sollte aber funktionieren)</p>]]></description>
			<author><![CDATA[dummy@example.com (nockenfell)]]></author>
			<pubDate>Wed, 25 Jan 2012 05:42:00 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15251#p15251</guid>
		</item>
		<item>
			<title><![CDATA[Re: Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15250#p15250</link>
			<description><![CDATA[<p>Hi,</p><p>Wenn die Seite bearbeitet wird, kann man bei Tab Hauptmenü, Inhaltstyp angeben &quot;Geschützter Inhalt&quot; und dann bei Tab &quot;Berechtigungen&quot; welche Gruppe(n) diese Seite sehen dürfen.</p><p>M.fr.Gr.<br />Jan</p>]]></description>
			<author><![CDATA[dummy@example.com (Janl)]]></author>
			<pubDate>Tue, 24 Jan 2012 22:58:04 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15250#p15250</guid>
		</item>
		<item>
			<title><![CDATA[Menü nur bei angemeldeten Benutzern zeigen]]></title>
			<link>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15246#p15246</link>
			<description><![CDATA[<p>Hallo liebe Experten,</p><p>ich benutze CMSMS V. 1.10 und habe das schöne Modul &#039;AdvancedContent&#039; sowie FrontEndUsers installiert.</p><p>Es gibt im Layout eine horizontale Top-Navigation, welche alle Seiten anzeigt.</p><p>Nun möchte ich aber eingeloggten Benutzern über eine vertikale Sidebar-Navigation nur solche Seiten anzeigen, auf die ich in &quot;Erweiterte Einstellungen&quot; den Frontend-Zugriff auf eine Benutzergruppe festgelegt habe.</p><p>Das vertikale Menü anzuzeigen, wenn der Benutzer angemeldet ist, kann ich. Aber wie filtere ich die $nodelist auf eine bestimmte Benutzergruppe?</p><p>Wie ist die Lösung?</p><p>Danke<br />Ampelmann</p>]]></description>
			<author><![CDATA[dummy@example.com (ampelmann)]]></author>
			<pubDate>Tue, 24 Jan 2012 20:34:27 +0000</pubDate>
			<guid>http://www.cmsmadesimple.de/forum/viewtopic.php?pid=15246#p15246</guid>
		</item>
	</channel>
</rss>
