Page 1 of 1

Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 12:54
by pepe
Hallo Freunde und Liebhaber von phpwcms,

ich würde gerne allen ContentParts, die mit der Markierung "nur für angemeldete Frontend Benutzer" versehen sind, eine spezielle Klasse (z.B.: .fe-user-only) mit auf den Weg geben, so dass ich die so gekennzeichneten CPs im Frontent auf geeignete Weise optisch deutlicher ins Auge springen lassen kann.

Wie das mit einem RT funktioniert, ist mir schon klar,
nein es soll NUR durch das Setzen des Häkchens erledigt werden können!

Hat jemand einen Ansatz für mich, in welche Datei und an welcher Stelle ich da "eingreifen" müsste :?:

Danke fürs Nachdenken :D

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 19:31
by juergen
Wo magst du das Häkchen denn hinkleben lieber Pepe ? :) vor das Login oder nach das Login ?

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 19:38
by pepe
Das Häkchen setze ich hinter das für die Veröffentlichung des CP... da wo es vorgesehen und vorhanden ist, ganz normal im Eingabeformular der CPs.
Ansonsten kommt ja niemand in mein Backend, da bin ich sehr "eigen" :lol:

PS
In Wirklichkeit findet sich kaum ein anderer Dummer, der die Fleissarbeit der Eingabe übernehmen will :(

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 20:21
by juergen
Ich schmeiss dich jetzt so lange mit Halbwissen voll bis Oliver kommt und sagt wies geht ... :D

Proboier mal sowas:

[PHP]
if( FEUSER_LOGIN_STATUS )
{echo "<div class='black_in_black'>";}
ELSE
{echo "<div class='schwarz auf_weiss'>";}
[/PHP]

aaaaaaah, damit ich dir gleich den Schneid abkaufe .... das machst du schön von Hand vor jeden betreffenden CP ... ansonsten muss der Haken in einem Trigger abgebaggert werden , bei meiner Lösung hab ich dir gleich den ganzen Haken erspart :lol:

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 21:36
by pepe
so etwa (allerdings mit dem vorhandenen RT) hab ichs ja bisher schon gemacht... nur wozu haben wir so ein feines Häkchen, wenn wir damit nix weiter machen können :roll:

Wo wird das Häkchen abgefragt :?:

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 21:46
by Cipolla
Verstehe ich jetzt nicht.

Im Template kannst du doch einfach ein

Code: Select all

<!--LOGGED_IN_START//-->
<div id="logged_in_class">
<!--LOGGED_IN_END//-->
....{CONTENT} bla bla
<!--LOGGED_IN_START//-->
</div>
<!--LOGGED_IN_END//-->
Brauchst doch nicht vor jeden CP packen... Den Rest dann per CSS.

Jeder Style, der im DIV "logged_in_class" bekommt dann deine speziellen Formatierungen. Zur not mit !important...

or am i missing something?

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Wed 6. Apr 2011, 22:33
by pepe
Cipolla, so mach ich das auch bisher...

allerdings geht es mir darum, jeden einzelnen Contentpart abhängig vom Häkchen "nur für FE-User" mit dieser "Zusatzklasse" ausrüsten zu können... egal wo im Artikel also ein CP angeordnet ist,
Wird der Haken gesetzt, wird für alle angemeldeten Besucher der CP "sichtbar" und kann per spezial Klasse gesonders "markiert" werden.

Also nicht begrenzt auf spezielle Bereiche oder CustomBlocks!


Mal ein "vollkommen unrealistisches und aus der Luft gegriffenes Beispiel" zum einfacheren Verständnis:
Stell dir vor - mal absolut "virtuell" gesponnen - ich habe ein Online Nachschlagebuch für phpwcms vorbereitet,
nennen wir es einfach mal

pepes phpwcms Tipps &Tricks - Von den ersten Schritten zur perfekten Internetgestaltung
Eine Ideensammlung zum Nachmachen - Auch für Senioren geeignet


Das normale "Buch" besteht aus ca. 1.600 Seiten (Artikeln) pro Sprache, die für jeden online-surfer zugänglich sind.

Jeder, der nun einen kleinen Obulus - von sagen wir mal 5 Euronen - entrichtet, bekommt einen Zugangscode und ihm werden jetzt Zusatzinformationen innerhalb der 1.600 Seiten freigeschalte. 1000de von wissenswerten CPs zusätzlich also.

Die werden dann nicht einfach in einen zusammenhängenden Block ans Ende der Artikel gepackt und so aus dem Zusammenhang gerissen, nein, die sollen jeweils passend an der richtigen Stelle im Sinnzusammenhang in die Artikel eingeknüpft werden.

Also weiterführende Links, Codemuster, Tabs oder Grafiken, Downloads... alles, was man so gebrauchen kann... und hier schon ewig in der Schublade rumfliegt, dem langsamen Vergessen entgegen schlummernd.

Damit man diese Bonbons aber auf der Menge an Seiten dann auch auf einen Blick findet, sollen die eine entsprechend deutliche Hintergrundfarbe/Rahmen bekommen.

Jetzt Verstanden, was ich damit machen möchte... dein Weg wäre mir zu zeitaufwändig... bei der Menge an CPs :(
Da geht das mit einem Häkchen schneller, wenn ich die passende Stelle in dem Wust an Dateien nur finden würde...

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Thu 7. Apr 2011, 05:30
by flip-flop
Hallo Manfred,

wenn ich das richtig verstehe sollte das mit einem einfachen CP-Trigger funktionieren (Mit die genialste Funktion in phpwcms).
Mit der CP-Trigger Funktion können alle Zustände und Schalter des jeweiligen CPs abgefragt werden. Darauf kannst du dann im Script entsprechend reagieren.

In diesem Fall werden alle CPs ohne Ausnahme geparst. Der Trigger schaut einfach nach ob "$data['acontent_granted'] == true" (also der Schalter "[x] nur für angemeldete Frontend Benutzer" im CP gesetzt) und legt eine Klasse um die jeweilige CP-Ausgabe.

Siehe dazu: http://www.phpwcms-howto.de/wiki/doku.p ... cp_trigger

Code: Select all

<?php
 
// http://forum.phpwcms.org/viewtopic.php?p=107107#p107107
/* ------------------------------------------------------------------
function cp_trigger_function_name($param1, & $param2) {
   if($param2['acontent_type'] == 14) { // 14 is CP WYSIWYG
      $param1 = do_this_or_that($param2['acontent_id']);
   }
   return $param1;
}
 
* cp_trigger_function_name - the unique function name
* $param1 - holds the content part html source on which you can parse or do custom processing
* $param2 - is a reference to an array which holds content part values like ID, dates and other values - see db table phpwcms_articlecontent
 
Always return $param1;
*/
// ------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ------------------------------------------------------------------
 
 
function CLASS_for_logged_in_user($text, & $data) {

// Abfrage nach bestimmten CP Typ entfaellt, da alle gemeint sind
//	if($data['acontent_type'] == 29) { // 29 is CP img div

	if ($data['acontent_granted']) {
	
		$text = '<div class="logged-in-class">'.LF.$text.LF.'</div>';
	}
	
	return $text;
}
register_cp_trigger('CLASS_for_logged_in_user');
 
 
/* ------- and the next one
function CP_Other_CP($text, & $data) {
   if($data['acontent_type'] == XX) { // XX is CP Other CP
      $text = custom processing ;
   }
   return $text;
}
register_cp_trigger('CP_Other_CP');
---------- and so on */
 
?>
Die Kurzform:

Code: Select all

<?php
// ------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) { die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ------------------------------------------------------------------

function CLASS_for_logged_in_user($text, & $data) {

	return ($data['acontent_granted']) ? '<div class="logged-in-class">'.LF.$text.LF.'</div>': $text;
}

register_cp_trigger('CLASS_for_logged_in_user');
?>
Knut

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Thu 7. Apr 2011, 08:15
by pepe
Danke Knut,

das sieht doch mal interessant aus. Werde ich gleich mal versuchen.

Diese Trigger-Geschichte muss ich mir dann doch wohl mal genauer unter die Lupe nehmen, mir schwebt da so einiges durch den Kopf, an Dingen die ich damit vielleicht realisieren könnte...

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Thu 7. Apr 2011, 08:57
by pepe
So, habs natürlich sofort getestet...und klappt PRIMA, allererste Sahne :!:

Aber, Knut, ich hatte von deinem Lösungsansatz auch nichts anderes erwartet.
Wenn ich denke, was ich da künftig an Zeit einsparen kann... besonders bei größeren Sites.

Na, da werde ich doch wohl noch einmal etwas tiefer in phpwcms einsteigen müssen, bei den neuen Möglichkeiten :D


Mein Test sieht auf dem localhost jetzt so aus:
Die im Artikel "verstreuten", farbig hinterlegten Felder sind nur für angemeldete FE-User sichtbar.
Die Hintergrundmarkierung durch Farbe und Rahmen wird nur durch Setzen des Häkchens im CP gesteuert.
flip-flops Script macht den Rest... ich habe nur noch die Class in die frontend.css eingefügt und "formatiert"... fertig!
So hatte ich mir das vorgestellt.
Danke Knut :)

Image

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Thu 7. Apr 2011, 17:33
by update
Einfach einfach (stotter) :)

Re: Spezielle Klasse nur für "angemeldete FEuser" möglich?

Posted: Thu 7. Apr 2011, 17:57
by juergen
Ich bin dafür dass Knut 2,50 EUR pro Aufruf überwiesen wird, das Script müsste diesbezüglich noch auf Paypal angepasset werden ;-)