Multitabs als Modul einbinden?

Begonnen von hausmeista, 06 Juli 2011, 16:02:41

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

hausmeista

Hallo Pragmatiker,
nach dem eben vollzogenen Update mittels #18 zur RC wollte ich mich den Hinweisen aus dem Forum annehmen und den Versuch starten, das Tabcenter als Modul zu nutzen. Nun sah ich, das es sich um das MX-Tabs handelte, demzufolge natürlich die Umsetzung nicht funktionierte :-(

Kann jemand sagen, ob das mit dem neuen Tabsystem auch irgendwie funktioniert?

Ich habe 6 Hauptbereiche, die mit je einem Modul bedient werden sollen. Dieses Modul soll je ein Tabcenter erhalten, welches sodann HTML-Blöcke oder aber fertiger Block-Dateien enthalten/anzeigen soll.

Über eine Rückinfo, Idee oder gar Anleitung wäre ich sehr dankbar.

Derzeit existiert ein Modul Namens 1. In diesem ist eine index.php-Datei mit dem Inhalt:

<?php
/**
 * This file is part of
 * pragmaMx - Web Content Management System.
 * Copyright by pragmaMx Developer Team - http://www.pragmamx.org
 *
 * pragmaMx is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * $Revision: 1.2 $
 * $Author: tora60 $
 * $Date: 2009/09/28 11:03:59 $
 */

defined('mxMainFileLoaded') or die('access denied');

$pmxMultiblock load_class('Multiblock'$block);

if (isset(
$_GET['mxtabs'], $_GET['bid']) && $_GET['mxtabs'] == 'admin' && intval($_GET['bid']) == $block['bid'] && mxGetAdminPref('radminsuper')) {
    
$content $pmxMultiblock->get('admin');
} else {
    
$content $pmxMultiblock->get('tabs');
}

$pmxMultiblock null;

?>


Das ist ja der Standard-Code aus der Original-File und funktioniert, selbstredend, natürlich nicht.

Mit sonnigen Grüßen aus der Stadt im Land..
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

comedi

LG Michael


Kein Support über PN, Mail oder ICQ!

CMS-Version: pragmaMx 1.12.3 --- PHP-Version: 5.3.5
MySQL-Version: 5.1.63 --- Server-Version: Apache 2.2.4

Wer den Weg zum Ziel kennt - dann aber Umwege nimmt - muss sich nicht wundern wenn er sein Ziel nicht findet!


Gemeinschaftseite: www.pragmamx-erweiterungen.de

hausmeista

Hallo comedi,
vielen Dank für deine Antwort.

Im übrigen ist das das, was ich meinte :-) Leider kann ich meinen vorherigen Eintrag nicht korrigieren, denn dort habe ich den Code, der Blockdatei kopiert und nicht den der Index aus dem Modul.

Durch die Verwendung der Vorschläge aus dem Post den du verlinkt hast, kam es eben zu dem Ergebniss, das dieses nicht funktioniert, zumindest nicht für und/oder mit den Multiblock_Tabs aus der Version pragmaMx 1.12.0.1.33.4.2 (2011-06-17) (inkl. #18)

Ich habe schon mal überlegt, ob es vielleicht notwendig werden könnte, Informationen dazu aus der Datenbank zu holen? Allerdings weiß ich auch nicht so recht wie die aussehen sollten. Es gibt wie ich gesehen habe, unter anderem eine BID, den Titel, die Blockfile, Position und View etc.. allerdings, komme ich im Moment damit auch nicht weiter.

:-(
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

hausmeista

#3
Guten Morgen werte Leserschaft,
jetzt wird zumindest erkannt, das im Modul etwas geladen werden soll :-) Allerdings zeigt er wie schon geschrieben nicht, wie gewünscht, die ausgewählte ID des Multitabs sondern schreibt:

Wo bin ich ?
Hier ist nicht genug Platz für mich, ich bin ein Centerblock!

Dabei ist in der index.php-Datei im Modul die 0 angegeben und im Theme die Anzeige der Linken Blöcke deaktiviert.

Ich habe mal versucht, die entsprechende ID des Tabcenter mit einzubinden, bin aber gescheitert. Da wird bis auf das Hintergrundbild gleich gar keine Anzeige von Inhalten vorgenommen.

Hat jemand eine Idee, wie ich die Anzeige auf eine ID beschränken kann?

Ich habe versucht die Zeile 21

if (isset($_GET['mxtabs'], $_GET['bid'] )

mit der entsprechenden ID zu erweitern:

if (isset($_GET['mxtabs'], $_GET['bid'] == 21, )

was allerdings nicht funktionierte :-(
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

Andi

Moin :)

ZitatIch habe 6 Hauptbereiche, die mit je einem Modul bedient werden sollen. Dieses Modul soll je ein Tabcenter erhalten, welches sodann HTML-Blöcke oder aber fertiger Block-Dateien enthalten/anzeigen soll.
Die Begriffe wie Hauptbereiche, Modul, Tabcenter und Blöcke passen so irgendwie nicht zueinander, bzw. eigentlich verstehe ich garnicht was du meinst.

Die Tabs sind doch nichts weiter, als eine mit CSS formatierte Anzeigeform einer Linkliste.
Brauchst du wirklich die dynamischen Inhalte des Multiblocks?

Willst du evtl. nicht einfach nur statische Inhalte innerhalb einer Tabstruktur verlinken bzw. anzeigen.

In der HTML-Struktur sieht das dann einfach so aus:
<div id="mytabs">

  <ul class="tabs-nav">
    <li><a href="#anker1">Seite 1</a></li>
    <li><a href="#anker2">Link 2</a></li>
    <li><a href="#anker3">Tab 3</a></li>
  </ul>

  <div class="tabs-panel" id="anker1">
    hier dann der beliebige Inhalt von Seite 1
  </div>

  <div class="tabs-panel" id="anker2">
    hier dann der beliebige Inhalt von Link 2
  </div>

  <div class="tabs-panel" id="anker3">
    hier dann der beliebige Inhalt von Tab 3
  </div>

</div>


Dazu noch das nötige Javascript (CSS wird automatisch geliefert) und fertig ist das "Tabcenter".
Auf den Screenshots siehst du das Ergebnis...

schön´s Grüssle, Andi

hausmeista

Hallo Andi,
danke das du dir die Zeit genommen und die Mühe gemacht hast das mal so darzustellen :-)

Natürlich ist die von dir vorgestellte Variante auch eine Möglichkeit. Allerdings wäre es aus Bedienersicht - meiner Meinung nach - einfacher, aus den folgenden Gründen:

Wenn ich ein Modul erstelle, angenommen es würde einen Multiblock enthalten, so könnte ich diesem immer wieder neue Blöcke zuordnen. Diese Blöcke wären, als HTML-Block, über die Blockverwaltung anleg- und bearbeitbar. Über den bei den Tabs mitgelieferten Admin-Link könnte so zu jederzeit schnellstmöglich eine Änderung vorgenommen werden.

Ich meine, ich bin nicht der ultimative PHP- und HTMLer und möchte schon gar nicht dem Bediener erklären müssen wie er stets eine Liste anzulegen hat.

Ich hätte gedacht, es wäre mit dem Auslesen der entsprechenden ID, schliesslich ist diese ja in der DB vorhanden, einfacher und die Administration und Verwaltung von Inhalten in den im jeweiligen Tabcenter angezeigten Blöcken damit übersichtlicher.
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

Andi

Hoi :)

ok, dir geht es also wirklich um die dynamischen Inhalte, nicht nur um die Optik ;)

Kann auch nicht so kompliziert sein, ich guggs mir mal genauer an, die Frage kam ja schon öfters...
schön´s Grüssle, Andi

Andi

#7
Oki, war wirklich nicht so kompliziert...  ;)

Nachfolgend ein Codebeispiel für die index.php des neuen Moduls.
Was da passiert habe ich versucht in den Kommentaren zu beschreiben.

<?php
/**
 * pragmaMx - Web Content Management System.
 * Copyright by pragmaMx Developer Team - http://www.pragmamx.org
 *
 * This script is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 */

/*
 * verhindern, dass dieses Script direkt aufgerufen werden kann
 * sondern nur z.B. ueber die modules.php
 */
defined('mxMainFileLoaded') or die('access denied');

/*
 * Die ID des zu verwendenden Multiblocks aus der Blockverwaltung
 */
$bid 97// <<<<< diese Variable anpassen !!!

/*
 * Rechte Bloecke an (true) oder aus (false)
 * Standard ist null, kann also entfallen
 */
$index false;

/*
 * Modulnamen ermitteln
 */
$module_name basename(dirname(__FILE__));

/*
 * folgende Zeile, nur wenn Sprachdateien fuer das Modul verfuegbar sind
 */
// mxGetLangfile($module_name);

/*
 * Die Daten des Blocks aus der Datenbank holen,
 * das Array $block wird innerhalb der Blockdatei benoetigt
 */
$result sql_query("SELECT * FROM ${prefix}_blocks WHERE bid = " intval($bid));
$block sql_fetch_assoc($result);
/*
 * Die Positionsdaten abaendern, damit ein Centerblock simuliert wird
 */
$block['position'] = 'c';

/*
 * Anstatt die Blockdatei zu includen,
 * kopieren wir einfach den PHP-Code der Blockdatei hierher
 */
$mb_object load_class('Multiblock'$block);
if (isset(
$_GET['mxtabs'], $_GET['bid']) && $_GET['mxtabs'] == 'admin' && intval($_GET['bid']) == $block['bid'] && mxGetAdminPref('radminsuper')) {
    
$content $mb_object->get('admin');
} else {
    
$content $mb_object->get('tabs');
}
$mb_object null;

/*
 * damit der Administrator-Link nicht auf die Startseite, sondern auf
 * dieses Modul verlinkt, die Ausgabe entspr. manipulieren
 */
$content str_replace('index.php?mxtabs=admin&amp;bid=''modules.php?name=' $module_name '&amp;mxtabs=admin&amp;bid='$content);

/*
 * den Titel des Blocks in der Titelzeile des Browsers zeigen
 */
$GLOBALS['pagetitle'] = $block['title'];

/*
 * in der header.php wird das html Geruest erstellt und ausgegeben
 * normalerweise inkl. der linken Blockspalte
 */
include_once('header.php');

/*
 * den Blocktitel als Seitentitel verwenden
 */
title($block['title']);

/*
 * bei Bedarf, je nach Theme, einen Design-Rahmen um die Ausgabe eroeffnen
 */
OpenTable();

/*
 * Die oben erstellte Variable hier per echo ausgeben
 */
echo $content;

/*
 * den Design-Rahmen wieder schliessen
 */
CloseTable();

/*
 * in der footer.php wird das html Geruest abgeschlossen und ausgegeben
 * normalerweise inkl. der rechten Blockspalte (falls $index = 1)
 * ausserdem wird hier noch mod_rewrite und andere Dinge der Ausgabe manipuliert
 */
include_once('footer.php');

?>


Problem dabei ist, dass die Adminfunktionen des Multiblocks immer auf die Startseite verlinken und nur funktionieren, wenn dieser Block auch wirklich (zumindest für den Admin) auf der Startseite aktiv ist. Oben im Code wird deswegen die Ausgabe etwas manipuliert um das zu ändern. Leider kann man durch diese Änderung aber nicht verhinern, dass nach dem Speichern des Multiblocks, auf die Startseite umgeleitet wird.
Damit muss man z.Zt. leben.
Für das nächste Fixpack von pragmaMx 1.12 habe ich die Klasse etwas umgeschrieben, dass die Adminfunktionen des multiblocks immer auf die gerade aktuelle Seite verlinken.
Das hat den netten Nebeneffekt dass dann der Multiblock auch innerhalb der Blockadministration schon komplett bearbeitet werden kann....
schön´s Grüssle, Andi

hausmeista

#8
Hallo Andi,
vielen Dank für deine Bemühungen und Respekt! Aber wahrscheinlich war das für den Erfinder von PM eher ein müdes Lächeln... Nichts destotrotz: Entschuldige zunächst einmal die verspätete Rückinfo. Dafür habe ich es schon mal gleich ausprobiert.

Auch wenn die index.php-Datei nun vollkommen anders aussieht als ich es erwartet hätte :-) scheint mir als Leie, das die Sache der eiteren Bearbeitung/Anpassung - nun sagen wir mal salop - einfach wird. Einfach neuen Multitab anlegen, Varibale $bid ändern und schon passt das. Sehr sehr gut. Mit dem Adminilink, kann ich das derzeit nicht so feststellen, denn die auf der Startseite eingebundenen Multitabs liefern den gleichen Admin-Link, wie die deine Variante, soll heißen, bei denen komm ich auch nur zur Hauptseite der Administration. Natürlich wäre es ein optimales Zubrot, wenn das individuell in die direkte Admin-Bearbeitung gehen würde, das soll wegen meiner auch bis zum nächsten Update hinreichen :-)

Was ich vermisse, ist der Titel des Blocks da der bei dem Aufruf eines Modules ja als Seitentitel/Überschrift fungiert. Zwar zeigt das Theme durch einen andersfarbigen Button an wo man sich befindet aber man weiß ja schliesslich nie, wen man zu Besuch bekommt.

Ich denke - glaube ich zumindest - das ich das aber hinbekommen werde. Das kann ja man nicht so schwierig sein, hoffe ich zumindest. Ich gehe gedanklich erst einmal so an die Sache heran, das das Modul die von mir erstellte Block-Datei nimmt und von daher keinen Titel finden und demzufolge auch nicht anzeigen kann.

Ich habe mal so durchgesehen und frage mich, jetzt wo Funktionalität vorhanden ist, wie (und ob es überhaupt notwendig ist) separt in Module eingebunde Multitabs, von der Anzeige auf der Startseite ausgeschlossen werden können (bei Bedarf) und7oder müssen, um dort eine doppelte Anzeige zu vermeiden. Bin mir nicht sicher, ob hier ein "nicht anzeigen" wie bei den Blöcken in den Tabs1.1 ausreichend ist.

Da du mir aber nun erst einmal genügend Stoff zum Testen und Arbeiten geliefert hast, werde ich mich erst einmal daran machen das bisherige anzuwenden und umzusetzen.

Nun aber genug der langen Rede,
ich wünsche dir, deinem Team und natürlich allen anderen Pragmatikern ein sonniges Wochenende.
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

hausmeista

#9
Nachtrag:

Wie vermutet, reicht die Deaktivierung der über ein Modul eingebundenen Multitabs, um diese auf der Startseite auszublenden. Beim Aufruf des Modules, kommt der entsprechende Multitab trotzdem, sowohl als angemeldeter Admin, als auch für Besucher.

Der Knaller: Multitabs innerhalb von Multitabs  :puzzled:

Ich muss dringend erst mal ein wenig mit der neuen Errungenschaft experimentieren :-) denn die Gestaltungsmöglichkeiten von/für Inhalte(n) sind schlagartig um ein vielfaches angestiegen.
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

hausmeista

Nachtrag 2

Den Titel anzeigen habe ich vorerst einmal so gelöst: Suche in der von Andi mitgelieferten index.php-Datei in der Zeile 77 nach

OpenTable();

füge darunter ein:


/*
* bei Bedarf, Eine Seitenüberschrift und/oder Kurzbeschreibung anzeigen
*/
echo "<!--Seitentitel--><h1>Modulname/Seitenüberschrift</h1>
<!--Kurztitel-->Untertitel/Kurzbeschreibung<br /><br />";



Natürlich wäre es hier optimaler, den Titel aus der Blockverwaltung zu nutzen, so das wenn dieser sich dort ändert, nicht jedesmal händisch an der index.php-Datei gearbeitet werden muss um diesen anzupassen.

Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

Andi

Moin :)

schön dass es gefällt  :thumbup:

Mir war nicht ganz klar, welchen Titel bzw. von welchem Block du schreibst...
Du meinst den Multitabsblock, oder?

Dessen Titel ist auch in dem Array $blocks enthalten: $block['title']

Und für die Überschrift gibt es eine Extra API-Funktion title().

Um den Blocktitel anzuzeigen schreibst du also einfach über das openTable() folgende Zeile:
title($block['title']);

Damit der Blocktitel dann auch noch in der Titelzeile des Browsers angezeigt wird, kommt vor dem Include der header.php noch flogende Zeile rein:
$GLOBALS['pagetitle'] = $block['title'];


Ich habe den Code oben ergänzt....
schön´s Grüssle, Andi

hausmeista

#12
So lieber Andi :-)

nun nochmal ein kleines Feedback meinerseits.

Ich habe die letzte Anpassung - zur Verwendung des Block-Titels - mitgenommen und umgesetzt, stellte dabei allerdings fest, das das, zumindest für meine Zwecke, nicht ganz so optimal wäre.

Da ja die Seite, somit fast ausschliesslich mit Blöcken erstellt wird ist die entscheidene Frage gewesen, wie das übersichtlich nicht aus den Augen verloren werden kann. Wie man sich vorstellen kann, ist die Erstellung mit unterer Variante so vielfältig geworden, das ich mir selbst nun auch erst einmal einen Plan machen musste, wie was benannt und wo es positioniert werden soll, aktiviert oder deaktiviert, Startseite oder über ein Modul mit dem Multitabs-Block etc.

Zunächst war es so, das die Anforderung, den Titel des Blocks darzustellen sehr wichtig, denn bei dem von mir verwendeten Theme Brightside of life zeigen zwar die oberen Button die zugeteilten Hauptbereiche an, allerdings wurden diese ja nicht mit einer Überschrift bei Aufruf nochmal gekennzeichnet.

Durch deine hinzugefügte Abfrage des Titels war das Okay, Titel in der Blockverwaltung benennen und damit die Gestaltung/Generierung der Seitenüberschrift ermöglichen.

Dadurch, das dieser Titel nun auch gleich für den Browsertitel galt, war natürluich die Überschneidung recht groß, also die Doppellung, so das ich mich dafür entschieden habe, aus

$GLOBALS['pagetitle'] = $block['title'];

das hier zu machen

$GLOBALS['pagetitle'] = $module_name;

und damit den Modulnamen anstatt den Blocktitel des verwendeten Multitabs im Browsertitel erscheinen zu lassen. Damit muss ich zwar das Modul, welches den entsprechenden Multitabs-Code enthält Namenstechnisch umschreiben, also das der erste Buchstabe bei einem Nomen groß geschrieben steht, aber das nehme ich mal so hin.

Nun ist ja fast alles geschafft, dachte ich zumindest, nachdem ich gestern das #19 zur RC eingespielt habe.

Die derzeitige Konfiguration ist ja so, das es wie schon einmal angeführt, 6 Hauptbereiche zzgl. Startseite geben soll. somit also 7 Module mit je einem Multitabs. Auf der Startseite ist blank_Home in Verwendung für die sechs Bereche je ein eigenes Modul mit unten aufgeführter index.php-Datei.

Damit komme ich in eine "gestalterische Kriese" wenn man es mal so nenen darf :-)

Brightside of life als Theme generiert bei der Verwendung von blank_Home als Startseitemodul (Blöcke links und rechts sind ausgeschalten) den ersten Multitabs-Block in der Centerposition oben ganz normal den Block inkl. Blocktitel, der Browsertitel zeigt dabei den Titel der in der Administration unter Einstellungen eigegeben wurde.

Die Ausrichtung steht, also die Abstände von Block zu Seitenüberschrift (Blocktitel) ist gut.

Rufe ich jetzt ein Modul auf, zeigt er wie oben angepasst im Browsertitel den Modulnamen und auf der Seite den Blocktitel aber die Abstände hauen nicht hin. Ich habe nun versucht, das direkt im Modul durch das Ausblenden von

OpenTable();

und

CloseTable();

zu lösen, das funktionierte aber nicht wirklich, bis auf das er den Multitabs-Block an die richtige Stelle rückte. Der Blocktitel blieb dabei an selbiger und damit wurde das "Stylische Chaos" vergrößert. Nun ist der Abstand zum Block größer weil irgendwoher ein zusätzliches

<br>

gekommen ist.

Auch wird der Blocktitel nicht mehr zweifarbig dargestellt so wie auf der Startseite wo, m.E. jedes dritte Glied andersfarbig dargstellt werden soll/wird.

Zum Verständnis mal nachfolgend der Auszug aus den Quelltexten:

Startseite mit Multitabs als Centerblock, Startseitenmodul: blank_Home
so soll(te) es (auch im Modul) aussehen

        <div id="main">
          <div id="main-content">
           
           <div class="block block-c-0">
             <div class="block-caption">
               BASCO group <span class="color-change-2">-</span> Deutschland
             </div>
             <div class="block-content">
               
<script type="text/javascript">
...

Modul mit Multitabs
so sieht es aus

       <div id="main">
         <div id="main-content">
           
           
           <div class="openclosetable">
             <h2 class="title">BASCO group - Administration</h2>
           </div><br>


<script type="text/javascript">
...

Ich hänge mal noch die entsprechenden Screenshots an.
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

hausmeista

Nachtrag:

gerade fällt mir auf, das nach dem Update mit #19 die Adminilinks der Multitabs in den Modulen nicht mehr funktionieren und Änderungen nichts bewirken.

Auf der Startseite (Modul blank_Home) wird der Link richtig generiert, allerdings auch nicht mehr von den Mode-Rewrite Regeln in Suchmaschinenfreundliche Links umgeschrieben auch wenn die Einstellungen für den Adminbereich gestzt wurden. Bei den Admin-Links der Module aus der index.php-Datei (siehe unten) verweisen diese auf

http://modules.php/?name=administration&mxtabs=admin&bid=xx#wraptabs-xx

Es fehlt nun also die PMX-Home-Url. Auch wird nun nicht mehr die index.php-Datei sondern die modules.php-Datei angesprochen. Ein Auskommentieren hat da keine Abhilfe geschaffen, ebensowenig das Hinzufügen der PMX-Home-Url.

Nun wird es gerade vollkommen chaotisch :-)

Die Spaw-Editor-Erweiterungen für die LightBox wurden/werden nicht mehr angezeigt/unterstützt.

Rastlos ratlos könnte man da sagen..
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

hausmeista

Nachtrag 2 (Hinweis):

in der pragmaMx 1.12.0.1.33.4.1 (2011-05-21) ohne ein einziges RC, funktioniert die bisherige Arbeit von Andi einwandfrei inkl. Mode Rewrite für die einzelnen Tabs - ausgenommen der Adminlink, trotz Einstellung.

Siehe dazu: http://pragmamx.demoview.de/Multitabs_Modul.html
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

hausmeista

Nachtrag 3 (zur Kenntnisnahme):

Habe nochmal komplett das PMX neu installiert, #18 und #19 eingespielt und anschliessend die index.php-Datei wieder als Modul angelegt. Jetzt zeigt der Debugmelder folgendes:

pragmaMx notice:
undefined property 'content' in includes/classes/Multiblock.php line 171
in includes/classes/Multiblock.php on line 106

PHP Run-time notice:
Undefined index: bid
in includes/classes/Multiblock.php on line 82

pragmaMx notice:
undefined property 'blockfile' in includes/classes/Multiblock.php line 87
in includes/classes/Multiblock.php on line 106

pragmaMx notice:
undefined property 'bid' in includes/classes/Multiblock.php line 89
in includes/classes/Multiblock.php on line 106


Bei Aufruf des Blocks als Modul erscheint die folgende Information:

PHP Run-time notice:
Undefined index: title
in modules/modul_name/index.php on line 79

pragmaMx notice:
undefined property 'bid' in layout/templates/includes/classes/Multiblock/view.tabs.html line 34
in includes/classes/Multiblock.php on line 106
">

    pragmaMx notice:
    undefined property 'bid' in layout/templates/includes/classes/Multiblock/view.tabs.html line 36
    in includes/classes/Multiblock.php on line 106

" class="tabs-nav">
pragmaMx notice:
undefined property 'bid' in layout/templates/includes/classes/Multiblock/view.tabs.html line 38
in includes/classes/Multiblock.php on line 106


Natürlich habe ich gleich nachgesehen, in der Hoffnung etwas zu entdecken, aber wie das so ist - Frei nach dem Motto: "Schuster bleib bei deinen Leisten" - habe gleich mal wieder schnell zugemacht - Die Grenzen meiner Handlungskenntnis waren deutlich erkennbar :-)

Irgendwie muss mit dem Update eine Änderung an den Dateien stattgefunden haben, was die zuvor angehende Lösung wieder zunichte macht  :gruebel:

Das ist man echt bedauerlich, denn die Funktionalität war schon sehr vielseitig. Ich denke ich werde das PMX nochmal neu aufsetzen, allerdings auf den Stand vor der #18 belassen oder aber die bemängelten Dateien ersteinmal wieder mit den Dateien aus der RC3 Installtion überschreiben, vielleicht geht es dann und man muss nicht komplett auf das ganze Update verzichten. Ich denke, das diese Option, die Multitabs als Modul zu verwenden, einen unbedingten Mehrwert und weitreichende Gestaltungsmöglichkeiten für alle Pragmatiker bietet.
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de

Andi

#16
Moin :)

sorry, aber je länger ein Monolog wird, umso weniger lese ich den....
Jedesmal wenn man anfängt sich darüber Gedanken zu machen, wird man mit neuem Text belastet. So geht das nicht. Du musst einem auch die Chance lassen das selbst nachzuvollziehen.

Und denk dran, pragmaMx ist kein Windows 3.1 das man alle 14 Tage neu installieren muss. Solange die Versionsüberwachung keine Unstimmigkeiten meldet, solange ist die Dateibasis in Ordnung und es ist unnötig irgendeine (überwachte) Datei zu ersetzen.

Klar hat sich im Fixpack #19 etwas geändert, habe ich doch geschrieben
Zitat von: Andi am 09 Juli 2011, 08:59:34Für das nächste Fixpack von pragmaMx 1.12 habe ich die Klasse etwas umgeschrieben, dass die Adminfunktionen des multiblocks immer auf die gerade aktuelle Seite verlinken.
Das hat den netten Nebeneffekt dass dann der Multiblock auch innerhalb der Blockadministration schon komplett bearbeitet werden kann....

Und genau dort liegt das Problem mit den Adminlinks. Auf meinem Windows-Localhost hatte das einwandfrei funktioniert, (mit Fix#19). Nur eben auf einem Linux-Server, wenn pragmaMx direkt im root liegt, nicht mehr. Da macht sich ein bisher übersehener Fehler in der mod_rewrite Klasse bemerkbar.
Anbei die korrigierte /includes/classes/Modrewrite.php, einfach ersetzen und die Adminlinks sollten funzen.
Und ob die suchmaschinenfreundlich umgeschrieben werden, oder nicht ist doch schnurz. Was hat ne Suchmaschine in der Administration verloren....


Das Problem mit den unterschiedlichen Überschriften ist ganz einfach erklärt.
Auf der Startseite als Block, dort wird die Überschrift als Blocküberschrift formatiert. Und im Modul ist das die Formatierung einer Modulüberschrift. Die sind bei den meisten Themes irgendwie unterschiedlich. Das jetzt zueinander anzugleichen ist sehr schwierig, weil sich das ja auf alle anderen Module und Blöcke auswirkt. Würd ich nicht machen...
Nimm doch einfach eines dieser Multitab-Module als Startseite, anstatt dem Block und schon sollte das passen.


ZitatDie Spaw-Editor-Erweiterungen für die LightBox wurden/werden nicht mehr angezeigt/unterstützt.
Hmm, ganz anderes Thema, oder?
Da der Spaw in eine andere Ordnerstruktur verschoben wurde, müssen die Spaw-Zusatzplugins natürlich jetzt dort installiert werden: /includes/wysiwyg/spaw/editor/plugins
Der alte spaw Ordner im root ist nur noch aus Kompatibilitätsgründen vorhanden...



* Modrewrite.zip (5.19 KB - runtergeladen 17 Mal.)
schön´s Grüssle, Andi

hausmeista

Moin Andi,

erstmal vielen Dank, das du dich da so reingehangen hast.

Wie du ja gesehen und bemängelt hast, habe ich versucht irgendwie selbst einen Lösungsweg zu finden. Als Nicht-Enwickler und Nicht-Programierer, der dennoch das PMX über alles liebt :-) ist es nicht immer ganz so einfach, wie man es selbst am liebsten hätte. Viele Ideen und wenig Verständnis beissen sich dementsprechend oft. Der Monolog sollte lediglich meine Verfahrensweise aufführen, das du und/oder jeder andere zumindest annähernd nachvollziehen kann, was so in meinen verworrenen Gedankengängen abgegangen ist. Also du sollst nur wissen, ich habe den Hnweis verstanden und auch zur Kenntnis genommen.

Stand der Dinge ist der folgende:

Wie zuvor geschrieben hatte ich das PMX aus meiner Demoversion genommen und bereits vor deinem Eintrag auch das so gelöst wie von dir vorgeschlagen, also ein weiteres Modul als Startseite ausgewählt, womit sich das mit dem Abstand der Überschriften erstmal erledigt hat auch wenn nun die schöne Formatierung mit den wechselnden Farben nicht funktioniert, was allerdings nicht kriegsentscheidend ist.

Die anderen Sachen, also das erneute einspielen der Fixpacks, das ersetzen der Modrewrite.php-Datei und das verschieben der Plugin-Ordner für den Editor mache ich bei einer seperaten Installation. Bei meinem Glück, funktioniert sonst wieder etwas nicht und ich fang nochmal von vorn an zu nerven :-)

Eines würde ich dennoch erfragen wollen:

Ich habe versucht die Modul-Titel als Browsertitel anzeigen zu lassen. Das funktionierte auch ganz gut, dachte ich zumindest. Die Ausgangslage ist ja, das der Seitenname angezeigt wird und bei Aufruf eines Modules und/oder Inhaltes dessen Titel hintendran gehangen wird.

Nun hatte ich wie gesagt es schon soweit, das bei Aufruf der Startseite (ein anderes Modul ausser home_blank wird geladen) dessen Titel dem der Seite entspricht. Wenn man nun ein neuen Hauptpunkt aufgerufen hat, also ein neues Modul, dann wurde dessen Titel angezeigt. Soweit so gut, da ja dieser Titel nicht nur im Browsertitel angezeigt wird sondern zugleich ja auch der Seitentitel ist. Die Umstellung funktioniert dann also durch einfaches umbenennen in der Blockadministration/Spezieller Titel.

Wenn ich aber nun zum Beispiel das Impressum oder das Feedbackmodul geladen hatte, war gar nichts mehr im Browsertitel zu lesen. Ich nehme an, das ich irgendetwas bei der "Wenn die eine Situation ist zeige das, ansonsten wähle dieses Szenario" Texterei irgendwas verhauen habe.

Dazu hatte ich die header.php-Datei (ab Zeile 77) aus dem PMX-Root-Verzeichnis am Wickel

/* wenn kein Seitentitel, oder die Startseite, nur den Seitenname als Seitentitel anzeigen. */
$pagetitle = (empty($pagetitle) || defined('MX_HOME_FILE')) ? $GLOBALS['sitename'] : $GLOBALS['sitename'] . " - " . $pagetitle;
/* sicherstellen, dass der Seitentitel keine Tags enthaelt und Sonderzeichen nicht zerstueckelt werden */
$pagetitle = strip_tags(str_replace('&nbsp;', ' ', $pagetitle));


und habe aus

$GLOBALS['sitename'] : $GLOBALS['sitename'] .

$GLOBALS['sitename'] : $block['title'] .

gemacht, was dann dazu führte das bei den anderen Modulen wie eben zum Beispiel Impressum und Feedback nix mehr angezeigt wurde.
Heiko Richter: In Deutschland muss man arbeiten wie ein Pferd um zu verdienen wie ein Pony.
PMX Shop-Modul unter www.vcardo.de