Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. Januar 2011 16:48

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

content_dump und Links generieren

Seit CMSms 1.9 gibt es ja ein neues Feld "page url". Dieser Wert überschreibt bei der URL Erzeugung den Alias der page.
Wenn der alias also eine_seite heißt dann sah die URL so aus (mod_rewrite + .html):
www.url.de/eine_seite.html

Wenn man nun einen anderen wert in "page url" eingibt wie zB "was-anderes/andere-seite" wird aus der URL:
www.url.de/was-anderes/andere-seite.html

genial!

wie komme ich aber mit content_dump an die page url? Standardmäßig wird im wiki beschrieben wie man mit dem alias einen Link baut. aber der wird ja dann durch "page url" überschrieben. mir ist aufgefallen dass CG bei CGSimpleSmarty das auch mit "alias" löst. Allerdings spuckt die funktion hier immer die richtige URL aus. Also entweder alias oder page url.

Offline

#2 12. Januar 2011 17:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: content_dump und Links generieren

content_dump ermittelt die Daten durch eigene SQL Abfragen.
Und da es etwas älter ist als CMSms 1.9, wird natürlich noch nicht nach dem URL Feld gesucht.

CGSimpleSmarty nutzt dagegen Funktionen des CMS. D.h. bei CGSimpleSmarty wird über das Inhaltsobjekt mit der Funktion GetUrl() die korrekte URL ermittelt. Da kann dem Modul egal sein, wie genau nun die URL lautet. Der Link wird also nicht vom Modul, sondern vom Core selbst generiert.

Ich weiß jetzt nicht wie speicherintensiv das wäre, wenn content_dump anstelle eines eigenen Objektes mit Seitenatributen aus der DB, lediglich die IDs der Seiten auslesen würde um dann für jede ID eine Instanz des jeweiligen Inhaltsobjekts zu erzeugen. Dann könnte man über die Funktionen der Inhaltsobjekte auf alle möglichen Inhaltseigenschaften zugreifen, ohne sich Gedanken darüber machen zu müssen, ob und wie man auf bestimmte Eigenschaften zugreifen kann, wenn sich am Core etwas ändert.

Mal sehen was nhaak dazu sagt.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 12. Januar 2011 20:18

nhaack
Server-Pate
Ort: Bonn
Registriert: 12. Dezember 2010
Beiträge: 171
Webseite

Re: content_dump und Links generieren

Ding Dong.

Oh man, das Plug-in hat echt Pflegebedarf ... ist ja bestimmt schon seit 'nem Jahr (oder länger) nicht mehr weiterentwickelt und hat auch 1-2 Bugs die die Auswahl von Elementen bei großen Sites und die Filter-Option betreffen.

Jetzt hängt's ein wenig von der Art ab, wie "page_url" gespeichert wird. Wenn das quasi wie ein Block gespeichert wird, kommst du über den Parameter "extensions" (content props) weiter. Ist es Bestandteil des Datensatzes in der tabelle content, muss dran geschraubt werden.

Ich habe jetzt keine 1.9 zum rumspielen und testen fertig, aber in diesem Fall:

suche nach "Starting query element for final content query"

Füge die notwendige Tabellenspalte im folgendem im Anfang des Select-Statement hinzu (FELDNAME dann durch korrekten Spalten-Namen ersetzen):

[== php ==]


        SELECT
            ".cms_db_prefix()."content.content_id as content_id,
            content_name,
            menu_text,
            show_in_menu,
            ".cms_db_prefix()."content.create_date,
            ".cms_db_prefix()."content.modified_date,
            owner_id,
            id_hierarchy,
            FELDNAME,
            ...

Danach, dann so um Zeile 730 herum ... sieht dann etwa so aus:

[== php ==]

            ...
            $dump_item->content->title = $dbqueryresultrow['content_name'];    
            $dump_item->content->menu = $dbqueryresultrow['menu_text'];
            $dump_item->content->show = $dbqueryresultrow['show_in_menu'];
            $dump_item->content->active = $dbqueryresultrow['active'];
            ...

Da fügst du nun eine kleine Zeile ein:

[== php ==]

            ...
            $dump_item->content->title = $dbqueryresultrow['content_name'];    
            $dump_item->content->menu = $dbqueryresultrow['menu_text'];
            $dump_item->content->show = $dbqueryresultrow['show_in_menu'];
            $dump_item->content->active = $dbqueryresultrow['active'];
            $dump_item->content->page_url = $dbqueryresultrow['FELDNAME'];
            ...

Danach solltest du per

$dump[0]->content->page_url

auf die Daten zugreifen können.

Schau mal ob du damit weiter kommst. Wenn nicht, muss ich da wohl langsam mal ran ... wird dann aber sicherlich noch ein paar Tage dauern.

Grüße
Nils

Offline

#4 12. Januar 2011 20:31

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: content_dump und Links generieren

page_url gehört leider zur Tabelle content.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 13. Januar 2011 11:08

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: content_dump und Links generieren

jo, ist nen feld/spalte von cms_content. was bedeutet das für content_dump?

Offline

#6 13. Januar 2011 15:02

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: content_dump und Links generieren

das bedeutet, dass man das leider nicht einfach über einen parameter lösen kann sonden, dass man die von nhaack genannten änderungen am plugin vornehmen muss.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 16. Januar 2011 15:59

Sonya*
Gast

Re: content_dump und Links generieren

Warum so kompliziert?

{cms_selflink} hat noch keiner abgeschafft, also

[== smarty ==]
{content_dump}
{foreach from=$dump item=dump}
{cms_selflink href=$dump->content->alias}
{/foreach} 

#8 17. Januar 2011 10:11

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: content_dump und Links generieren

Sonya* schrieb:

Warum so kompliziert?

{cms_selflink} hat noch keiner abgeschafft, also

[== smarty ==]
{content_dump}
{foreach from=$dump item=dump}
{cms_selflink href=$dump->content->alias}
{/foreach} 

ja stimmt, das funzt prächtig! super! aber der href parameter ist neu oder?! ich habe das sonst immer sehr umständlich gelöst.

Offline

#9 19. Januar 2011 05:31

Sonya*
Gast

Re: content_dump und Links generieren

nicmare schrieb:

aber der href parameter ist neu oder?!

Nö, ich kenne ihn schon länger wink