| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
fwolfste
Anmeldedatum: 17.07.2006 Beiträge: 11 Wohnort: Osnabrueck Germany
|
Verfasst am: Mi Nov 01, 2006 12:26 pm Titel: admin- menu- Hack- Probleme |
|
Hi
Ich bastel an einem Addon, was die Addon-Idee vergewaltigen soll, und zwar folgendermassen:
In der "Menü"-Leiste (top) des Admin-Bereiches werden ja auf Wunsch Links zu den Seiten der installierten Addons platziert.
Anstelle eines Links zu meinem Addon will ich dort ein Auswahlmenü haben, in dem ich die Artikel und Categorien sehe und per klick direkt auf die Editier-Seiten komme.
Dort ein Auswahlmenü zu haben ist kein Probelm:
einfach in der config_inc.php des Addons
| Code: | | $REX['ADDON']['name'][$mypage] = '<select><option>select cat/art</option></select>'; |
stehen haben.
Was aber ein Problem fuer mich ist, ist eine Liste der Kategorien zu erzeugen. Sollte so funktionieren:
| Code: |
include $REX['INCLUDE_PATH']."/functions/function_rex_category.inc.php";
$cat = OOCategory::getCategoryById(0);
$cats = $cat->getChildren();
$cat_option_list = "";
if (is_array($cats)) {
foreach ($cats as $cat) {
$catId = $cat->getId();
$catName = $cat->getName();
$cat_option_list = $cat_option_list.'<option>'.$cat->getName().'</option>';
}
} |
Die erste Zeile führt jedoch schon zum Abbruch, allerdings nur in der config.inc.php, ansonsten klappt das wunderbar. Warum?
Spaeter wollte ich dann diese Liste als Link-namen fuers Menu setzen (wie oben):
| Code: | | $REX['ADDON']['name'][$mypage] = 'select><option>select cat/art</option>'.$cat_option_list.'</select>'; |
Und wie lang duerfte der String ueberhaupt werden?
Ich weiss, es ist wieder nur ein total dreckiger Hack, waere eine praktische Sache fuer mich, da sich einige Artikel in Unter-Unter-...-Kategorien befinden. Vielleicht begnuege ich mich auch erstmal mit soetwas wie "letzen Artikel bearbeiten" oder so.
However, thanks a lot
Felix |
|
| Nach oben |
|
 |
Dr KillerJoe
Anmeldedatum: 24.11.2005 Beiträge: 1729
|
Verfasst am: Mi Nov 01, 2006 12:57 pm Titel: |
|
Ein anderer Denkansatz wäre vielleicht die Linkmap zu öffnen und dort sind dann ja auch alle Artikel zu sehen... wäre nur ein klick mehr als bei Deiner Idee
mfg
Flo _________________ Die Doku und Wiki sind Deine Freunde!!! |
|
| Nach oben |
|
 |
Markus.Staab Entwickler

Anmeldedatum: 29.01.2005 Beiträge: 9516 Wohnort: Aschaffenburg/Germany
|
Verfasst am: Mi Nov 01, 2006 2:22 pm Titel: |
|
Hi,
ich vermute mehrere Fehler in deinem Code:
a) warum includest du an dieser Stelle die Funktion? (Ist das notwendig / habe nichts getestet...)
b) anstatt OOCategory::getCategoryById(0) -> OOCategory::getRootCategories()
Allerdings gibt es bereits Addons, die sowas für dich erledigen..
Allerdings wird dieser Select dann nur in der Strukturverwaltung eingebunden, nicht im "Hauptmenu" von REDAXO.
Gruß,
Markus _________________ Mein Wunschzettel.. |
|
| Nach oben |
|
 |
fwolfste
Anmeldedatum: 17.07.2006 Beiträge: 11 Wohnort: Osnabrueck Germany
|
Verfasst am: Mi Nov 01, 2006 2:35 pm Titel: |
|
Hey Markus und auch Flo,
danke fuer eure fixen und guten Antworten.
| kills hat Folgendes geschrieben: | Hi,
a) warum includest du an dieser Stelle die Funktion? (Ist das notwendig / habe nichts getestet...)
b) anstatt OOCategory::getCategoryById(0) -> OOCategory::getRootCategories() |
zu a) es funktioniert weder mit noch ohne den include (wenn ich mich richtig erinnere funktionierte es an anderer Stelle _nicht_ ohne). Vielleicht fehlen an der Stelle aber auch einfach _andere_ includes (werde ich morgen mal nachschauen)
zu b) Wohl wahr, "copy'n'paste ohne API- Kenntnis" ist wohl die Antwort. Danke fuer den Vorschlag, wird sofort jemacht .
Ich schaue mich nach anderen Loesungen um (wobei ich dadurch eh nur maximal sekunden sparen wuerde) , wobei die urspruengliche Frage aber bleibt: Wieso laesst sich code auf einer "eigenstaendigen" Seite ausfuehren, aber nicht im addon?
bis auf weiteres weiterwurschtelnd
danke
Felix |
|
| Nach oben |
|
 |
Markus.Staab Entwickler

Anmeldedatum: 29.01.2005 Beiträge: 9516 Wohnort: Aschaffenburg/Germany
|
Verfasst am: Mi Nov 01, 2006 4:04 pm Titel: |
|
Hi,
| fwolfste hat Folgendes geschrieben: | | Ich schaue mich nach anderen Loesungen um (wobei ich dadurch eh nur maximal sekunden sparen wuerde) , wobei die urspruengliche Frage aber bleibt: Wieso laesst sich code auf einer "eigenstaendigen" Seite ausfuehren, aber nicht im addon? |
Diese Frage versteh ich nicht..
Gruß,
Markus _________________ Mein Wunschzettel.. |
|
| Nach oben |
|
 |
fwolfste
Anmeldedatum: 17.07.2006 Beiträge: 11 Wohnort: Osnabrueck Germany
|
Verfasst am: Do Nov 02, 2006 6:57 am Titel: |
|
Hey
| kills hat Folgendes geschrieben: |
| fwolfste hat Folgendes geschrieben: | | wobei die urspruengliche Frage aber bleibt: Wieso laesst sich code auf einer "eigenstaendigen" Seite ausfuehren, aber nicht im addon? |
Diese Frage versteh ich nicht..
|
okay, nochmal:
Beim Addon-Namensstring-Generieren geht was schief. Der code produziert aber auf einer "eigentstaendigen" Seite einen vernuenftigen String.
ZumTesten hier zum Beispiel meine Addon- Index- Seite (addon/pages/index.inc.php):
(das ist das beispiel fuer eine "eigenstaendige Seite")
| Code: | <?
include $REX['INCLUDE_PATH']."/functions/function_rex_category.inc.php";
include $REX['INCLUDE_PATH'].'/layout/top.php';
$cat = OOCategory::getRootCategories(0);
$cats = $cat->getChildren();
print '<select>';
$cat_option_list = "";
if (is_array($cats)) {
foreach ($cats as $cat) {
$catId = $cat->getId();
$catName = $cat->getName();
$cat_option_list = $cat_option_list.'<option>'.$cat->getName().'</option>';
}
}
print $cat_option_list;
print '</select>';
include $REX['INCLUDE_PATH'].'/layout/bottom.php';
?> |
und auf der anderen Seite die config.inc.php:
| Code: |
<?php
// Name des Addons
$mypage = 'fast_structure_navigation';
// Nur im Backend
if (!$REX['GG'])
{
// Sprachobjekt anlegen
$lang_path = $REX['INCLUDE_PATH']. '/addons/'. $mypage .'/lang';
$I18N_IM_EXPORT = new i18n($REX['LANG'],$lang_path);
}
$cat = OOCategory::getRootCategories();
$cats = $cat->getChildren();
$cat_option_list = "";
if (is_array($cats)) {
foreach ($cats as $cat) {
$catId = $cat->getId();
$catName = $cat->getName();
$cat_option_list = $cat_option_list.'<option>'.$cat->getName().'</option>';
}
}
// Anlegen eines Navigationspunktes im REDAXO Hauptmenu
$REX['ADDON']['page'][$mypage] = $mypage;
// Namensgebung für den Navigationspunkt
// Well thats a dirty hack, isnt it?
$REX['ADDON']['name'][$mypage] = '<select><option>select cat/art</option>'.$cat_option_list.'</select>';
?> |
So. Ziemlich gleicher code um $cat_option_list . Nur conig.inc.php streikt, die index.inc.php aber nicht.
Feinen Morgen
Felix |
|
| Nach oben |
|
 |
Thomas.Blum Entwickler

Anmeldedatum: 24.08.2004 Beiträge: 4390 Wohnort: Dresden
|
Verfasst am: Do Nov 02, 2006 8:06 am Titel: |
|
Hej,
verstehe ich dich richtig das du die config Datei aufrufen willst? Die config wird von Redaxo selbst ausgewertet.
vg Thomas _________________ blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel |
|
| Nach oben |
|
 |
fwolfste
Anmeldedatum: 17.07.2006 Beiträge: 11 Wohnort: Osnabrueck Germany
|
Verfasst am: Do Nov 02, 2006 10:32 am Titel: |
|
Hi
| tbaddade hat Folgendes geschrieben: | Hej,
verstehe ich dich richtig das du die config Datei aufrufen willst? Die config wird von Redaxo selbst ausgewertet.
|
Klar, die config wird ausgewertet, und der name-string wird gesetzt. Bzw eben nicht. Zum Testen kann ich (wenn ich in der config den interessanten Teil auskommentiere) per Klick die index aufrufen.
Macht ja aber auch absolut keinen unterschied, die Frage bleibt warum der code in der Config nicht funktioniert, an jeder beliebigen anderen Stelle (zB index) aber schon...
Felix
-was' ne schwere geburt...  |
|
| Nach oben |
|
 |
|