Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 07. März 2011 13:06
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Cannot redeclare id_array_make()
Ich benutze in einem Template content_dump 2mal. Das ist nix neues:
{content_dump assign="dump1" show_in_menu="force" active="force" block_name="headerimage" extensions="logo"}
{capture assign="headerimage"}{$dump1[0]->content->data}{/capture}
{capture assign="newheaderimage"}
{if $dump1[0]->content->data}
{supersizer url=true path=uploads/$headerimage width=900 height=200 crop=true}
{else}
{root_url}/uploads/tms_light_template/images/tms_default_header.jpg
{/if}
{/capture}
…
{content_dump assign="dump2" show_in_menu="force" active="force" block_name="slideshowimage" extensions="content_en"}
{$dump2|print_r}
<ul>
{foreach from=$dump2 item=dump}
<li>
{capture assign="imagepath"}{$dump->content->data}{/capture}
<img src="uploads/{$imagepath}" alt="{$dump->content->title}" longdesc="{$dump->extensions->content_en->data}"/>
</li>
{/foreach}
</ul>
aber ich kriege immer folgenden fehler:
Fatal error: Cannot redeclare id_array_make() (previously declared in /www/htdocs/w00885cf/cmsms/lib/content.functions.php(969) : eval()'d code:21) in /www/htdocs/w00885cf/cmsms/lib/content.functions.php(969) : eval()'d code on line 21
sobald ich den ersten bzw zweiten dump rausnehme, geht der erste bzw zweite.
irgendwie stehe ich grad auf dem schlauch. liegt das problem überhaupt an content_dump?
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#2 07. März 2011 13:39
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
reicht übrigens schon wenn ich nur
{content_dump assign="dump1" show_in_menu="force" active="force" block_name="headerimage" extensions="logo"}
{content_dump assign="dump2" show_in_menu="force" active="force" block_name="slideshowimage"}
schreibe
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#3 07. März 2011 17:38
- piratos
- Gast
Re: Cannot redeclare id_array_make()
Das Plugin enthält neben dem eigentlichen Smarty - Tag eine Anzahl normaler Funktionen.
id_array_make ist lediglich die erste davon.
Das Plugin kann man aus dem Grunde nicht mehrfach in einem Lauf aufrufen, da es unter PHP stets eine Funktion nur einmal geben kann
Man müsste diese Funktionen einbetten wie z.B,
if (!function_exists( 'id_array_make'))
{
function id_array_make($thearray,$theitem) {
$found = 'false';
$size = count($thearray);
for ($q=0; $q<=$size-1; $q++){
if ($thearray[$q] == $theitem) {
$found = 'true';
}
}
if ($found <> 'true') {
$thearray[$size] = $theitem;
$id_array_make = $thearray;
}
return $thearray;
}
}
#4 07. März 2011 18:16
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
aber ich versteh das problem noch nicht. das plugin ist ausgelegt mehrfach in einem template verwendet zu werden. und das habe ich bei nem anderen projekt auch schon gemacht. das und dieses projekt laufen unter cmsms 1.9.3. irgendwie habe ich das gefühl, was zu übersehen
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#5 07. März 2011 19:06
- piratos
- Gast
Re: Cannot redeclare id_array_make()
Sobald eine Doppelfunktion auftritt erfolgt Abpfiff - das ist PHP Standard,
Abhilfe habe ich gepostet - mach was draus.
#6 07. März 2011 20:05
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
aber dann meckert er wieder bei der nächsten (und nächsten) function. das kanns doch net sein
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#7 07. März 2011 20:39
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Cannot redeclare id_array_make()
Hab Nils (den Autor) mal auf das Thema hingewiesen ... evtl. findet er dafür etwas Zeit.
Offline
#8 07. März 2011 20:59
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
mir ist aufgefallen, dass der fehler verschwindet sobald ich das plugin als plugin laufen lasse und nicht als UDT.
hatte es zuvor als UDT abgespeichert aus bestimmen gründen. wieso geht das als plugin aber nicht als udt??
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#9 07. März 2011 21:09
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Cannot redeclare id_array_make()
Hmm, ist mir so noch nicht aufgefallen - scheint so, als ob jedes Plugin als separate "Instanz" läuft, ein UDT aber nicht ...
PS: Hätte diese UDT-Geschichte nicht schon im ersten Posting stehen sollen ?
Offline
#10 07. März 2011 21:10
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
ich hätte nicht gedacht dass das ein problem ist. wie soll man darauf auch kommen?
es lief ja wunderbar. doch sobald noch ne abfrage kommt, kam der fehler.
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#11 07. März 2011 21:38
- piratos
- Gast
Re: Cannot redeclare id_array_make()
Hast du das eigentliche Plugin entfernt ?
#12 07. März 2011 21:40
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
ja. nun habe ich es aber wieder reingelegt und das udt gelöscht. jetzt gehts. aber ich will es ja als udt haben.
hintergrund: ich möchte mit dem themes made simple ein paket exportieren. und das modul exportiert UDTs aber keine plugins aus dem plugin ordner. daher dieser kleine workaround
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#13 07. März 2011 21:48
- piratos
- Gast
Re: Cannot redeclare id_array_make()
Ein Unterschied zwischen einem UDT und einem Plugin liegt darin das ein Plugin nur dann registriert wird wenn es noch nicht vorhanden ist, demzufolge gibt es keine doppelten Funktionen.
Bei einem UDT wird ein einfaches eval ausgeführt, d.h. 2 mal aufgeführt = doppelt.
Das kannst du nur verhindern wenn du die paar if's eintippts (hätte man in der Zeit ja längst machen können).
#14 07. März 2011 22:31
- nhaack
- Server-Pate
- Ort: Bonn
- Registriert: 12. Dezember 2010
- Beiträge: 171
- Webseite
Re: Cannot redeclare id_array_make()
ja, ich muss da langsam mal ein Update nachschieben, es gibt noch ein paar Bugs und ich finde den Code ziemlich unübersichtlich.
Zudem will ich auch endlich die Template-ID mit aufnehmen. Diese Woche wird das leider nichts mehr, ich könnte so ab nächster/übernächster Woche mal 1-3 Abende in die Weiterentwicklung investieren.
Was das Laufen als UDT angeht ... verstehe wo der Schuh drückt ... aber wie Piratos schon schrieb, wenn du alle Funktionen kurz klammerst hast du zumindest eine schnelle Lösung.
Alles in einem Paket auszuliefern ist aus User-Sicht zwar charmant, aber könntest du beim Download des Themes nicht auf das Plugin verweisen?
Grüße
Nils
Offline
#15 07. März 2011 22:42
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: Cannot redeclare id_array_make()
ja, aber du wießt ja wie die absoluten einsteiger drauf sind… die kriegen es gerade so hin ne xml datei zu importieren. aber ne function.content_dump.php in /plugins/ via ftp zu legen?! hat alles seine vor und nachteile aber ich mags eher "charmant"
danke für deine rückmeldung
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
Seiten: 1