×òîáû íå çàáûòü è äëÿ òåõ, êîìó ìîæåò ïîíàäîáèòüñÿ!
Íà÷àëî...
×òî ñäåëàíî
Ñîçäàí òåñòîâûé ïîðòëåò portlet_business
Ñäåëàí îí íà îñíîâå portlet_news è ïîìåùåí â ïàïêó portal_skins/custom
Ýòîò ïîðòëåò ñäåëàí äëÿ òåñòèíãà. Â íåì ïîäðàçóìåâàåòñÿ àãðåãàöèÿ äåëîâûõ íîâîñòåé. Äóìàåòñÿ, íà îñíîâå åãî áóäóò ñîçäàíû îñòàëüíûå ïîðòëåòû. Íàïðèìåð, âåðõíèé ïîðòëåò, ãäå áóäåò àãðåãèðîâàòüñÿ ñàìàÿ èíòåðåñíàÿ èíôîðìàöèÿ. Èëè äðóãèå (ñòàòüè òàì, ðåïîðòàæè, äà è èç äðóãèõ ðóáðèê: ïîëèòèêà, îáùåñòâî, êðèìèíàë è îñòàëüíîå).
×òî áûëî èíòåðåñíîãî:
 ëåíòå íîâîñòåé êàðòèíêè äåëàëèñü èç image_thumb. Íà÷àë èñêàòü. Ïîèñê ïî ñîäåðæèìîìó (êîíòåéíèíã). âûäàë portal_skins/plone_content/folder_summary_view (Summary view). Íà÷àë åãî ãëÿäåòü.
Î÷åíü èíòåðåñíûì ïîêàçàëîñü ìåñòî
Âçÿë åãî:
Âìåñòî èêîíî÷êè ïîñòàâèë
Áåç ãåòîáæåêòà() âûäàåò îøèáêó èëè îäèíàêîâûå (åñëè íà íîâîñòè - òî èìåííî ýòîé íîâîñòè) êàðòèíêè.
Ïîòîì (âåðíåå äî ýòîãî) îáðàìèë â òàáëèöó âíóòðåííîñòü ïîðòëåòà. Òî åñòü êàæäàÿ íîâîñòü ñ êàðòèíêîé ñòàëà ñòðîêîé ñî ñòîëáöîì. Èíà÷å êàðòèíêè íàëàæèâàþòñÿ äðóã íà äðóãà.
Òóäó: ñåé÷àñ íîâîñòè áåðóòñÿ â ïîðòëåò âñå. Êñòàòè, òîò ïîðòëåò, êîòîðûé áûë ñäåëàí, áûë ïðîïèñàí â Plone (èìÿ ïîðòàëà) - âêëàäêà ïðîïåðòèç è â ëåâûå ñëîòû êàê here/portlet_business/macros/portlet. Ïîýòîìó íà÷àë îòîáðàæàòüñÿ. Òàê âîò. Íóæíî âìåñòî âûçîâà îáû÷íîé ôóíêöèè (êëàññà), ñäåëàòü, ÷òîáû âûçûâàëñÿ Ïîðòàë_ñåàð÷ äëÿ íóæíîãî ìåñòà. Ãäå-òî ýòî óæå ñäåëàíî, íóæíî ïîèñêàòü. (ïî-ìîåìó, òàê ñäåëàíî â ïîðòëåò-íüþç).
Äàëåå íóæíî ñäåëàòü âåðõíèé ñëîò. Ëèáî âðó÷íóþ, èëè åãî íóæíî áóäåò ïðîïèñûâàòü â ñâîéñòâàõ ïîðòàëà.
×å åùå? Ñäåëàë ãëóáèíó âèäèìûõ ýëåìåíòîâ â íàâèãàöèè 3??? Çà÷åì òàê ìíîãî? Âðîäå ìîæíî 2 íî ÷åãî-òî íå ïîëó÷àëîñü. ÏÎýòîìó ñäåëàë 3 è îòìåíèë â îòîáðàæàåìûõ ýëåìåíòàõ âñå, êðîìå ïàïîê, áîëüøèõ ïàïîê è ïðîãðàììèðóåìûõ ïàïîê.
Àõ, äà.
Îòêàñòîìèë /Plone/portal_skins/custom/columns.css
Ñäåëàë
#portal-column-one {
vertical-align: top;
width: "50em">;
}
#portal-column-two {
vertical-align: top;
width: "50em">;
}
50 åì - ïîéäåò. Òîëüêî ñå-ðàâíî ñäâèãàåòñÿ ÷åãî-òî âñå. Ïðè÷åì, ïëîíå ïî-íà÷àëó, ñàìîå îáèäíîå, íå ïîêàçûâàë îòêàñòîìëåííîãî. Ïðèøëîñü ïëîíå ñíåñòè è ïîñòàâèòü çàíîâî. Ïîñëå ýòîãî âñå ñòàëî íîðìóëü. Âðîäå.
Åùå òóäó:
Íóæíî ïîïðîáîâàòü îòêàñòîìèòü ÐÑÑ, òàê êàê â ïëîíå ïî-óìîë÷àíèþ ÐÄÔ (ýòî êîíå÷íî, êðóòî, íî íå äëÿ ÿíäåêñà - äëÿ àðòëåáåäåâà ýòî âåðõ êðóòîñòè :)
Çàìåòèë, êñòàòè, ÷òî ïðè CTRL+S â áëîêíîòå êóðñîð óõîäèò íåñêîëüêî âëåâî. :(
×åãî-òî åùå õîòåë íàïèñàòü - íå ïîìíþ
11 îêòÿáðÿ.
Ñäåëàë åùå îäèí ïîðòëåò (èíòåðâüþ). Òåñòèðóþ äàòó (÷òîáû ïîêàçûâàë âðåìÿ, à íå äàòó)
May 5
Õîòåë ïåðåèìåíîâàòü ññûëêó (íàïèñàòü "Èíòåðâüþ"), âûäàë îøèáêó, ïîõîæå íå õî÷åò âîñïðèíèìàòü ðóññêèé ÿçûê. Å-ìîå.
×èíþ ÐÑÑ. Äàòó èñïðàâèë íà ðôö822
Modification date
Äàëüøå ïðè÷åñûâàþ. Óáèðàþ íåíóæíîå è ïðèâîæó ðäô1 ê ðññ2. Åñòü èíòåðåñíûå ïëþøêè, íàïðèìåð âîò òàê ðåàëèçîâûâàåòñÿ ñèòóàöèÿ, êîãäà ó îäíîé íîâîñòè íåñêîëüêî ñàáæåêòîâ
Item
 ïðèíöèïå ó íîâîñòè ìîæåò áûòü íåñêîëüêî ÷åãî ÷åãî ìíîãî, íàïðèìåð, êàðòèíîê èëè êàòåãîðèé (òèïà, áèçíåñ, îáùåñòâî, åùå ÷åãî...)
Åùå èíòåðåñíîå òóäó: êàê äåëàòü êàììåíòû â ïëîíå? íà òàëå?
Òàê? ëÿëÿëÿ?
áåç replace="nothing" ÷åãî-òî ïëîõî îòðàáàòûâàë!
Ïðèøëîñü êàñòîìèòü
è /Plone/portal_skins/custom/rss_template
è /Plone/portal_skins/custom/RSS
Øàïêó îí áåðåò èç RSS. À êîíòåíò èç rss_template
Êòî îí?
áåç
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
ðóãàåòñÿ íà ýêñïàò!
Äàëüøå. ×å èíòåðåñíî, îáû÷íûå ïàïêè íåëüçÿ ðññ-ñèòü. Òàêèì îáðàçîì, ïðèøëîñü äåëàòü ïðîãðàììèðóåìûå (ó íèõ ÐÑÑ ïîçâîëåíî).
Íàïðèìåð, ñîçäàë ïðîãðàììèðóåìóþ ïàïêó "Äåëîâûå íîâîñòè", êðèòåðèè ïîèñêà - èñêàòü â ïàïêå (è ïîäïàïêàõ) Business äîêóìåíòû òèïà Íîâîñòü. Òî åñòü äâà êðèòåðèÿ ïîèñêà - ìåñòîïîëîæåíèå è òèï. Åñëè òèï íå óêàçûâàòü, òî ïîêàçûâàåò ñàìó ïàïêó.
À, åùå ñìîòðþ êðèòåðèè äëÿ NEWS - åùå íóæíî ñîñòîÿíèå
Åùå ãëÿæó íà ïîðÿäîê ñîðòèðîâêè - òàì ïî äàòå âñòóïëåíèÿ â ñèëó è îáðàòíûé ïîðÿäîê
Èíòåðåñíî, äëÿ NEWS êàðòèíêè åñòü, à äëÿ îáû÷íîé ïðîãðàììèðóåìîé ïàïêè - íåò :(
Íàäî ñäåëàòü, ÷òîáû ó êàæäîé ïðîãðàììèðóåìîé ïàïêè ðÿäîì ñ îïèñàíèåì íîâîñòè áûëà êàðòèíêà (åñëè îíà åñòü, êîíå÷íî). CTRL+S èäåò íà 3 ñèìâîëà íàçàä.
Åùå òóäó: RSS äëÿ ÿíäåêñà ñ yandex:full-text. Òîëüêî îòêóäîâà áðàòü ýòîò ôóëë-òåêñò è íóæíî ñïåöèàëüíûé øàáëîê Page temlate, íàïðèìåð yandex-rss, ñäåëàòü åãî íà îñíîâå øàáëîíà RSS, òîëüêî îí æå èñïîëüçóåò rss_template. Êàê-òî íóæíî ïîíÿòü: êàê îíè äðóã ñ äðóãîì ñâÿçûâàþòñÿ?! Èëè æå ñäåëàòü îäèí ñêðèïò, ãäå áóäåò âñå, è íå èñïîëüçîâàòü ìàêðî?
×åãî-òî âñå â îäíîì íå ïîëó÷àåòñÿ. Òàì ÷åãî-òî ìíîãî âñåãî äèôàéíèòñÿ! :(
Ùà ñäåëàþ êîïèþ è òîãî è äðóãîãî è ïîäïðàâëþ.
rss_template ñòàë rss-fulltext_template
RSS ñòàíåò ñåé÷àñ rss-fulltext.
Òåïåðü íóæíî rss-fulltext_template ïðàâèòü íàñ÷åò ïîëíîãî òåêñòà íîâîñòè. Âçÿòü åãî â øàáëîíå îòîáðàæåíèÿ íîâîñòè. Ùà ïîñìîòðèì, êàê ýòà ïåðåìåííàÿ (èëè ôóíêöèÿ) íàçûâàåòñÿ.
Ãëÿäèì
/Plone/portal_skins/plone_content/newsitem_view
è âèäèì
Òàê, âñòàâëÿåì è óãîðàåì. Ìåíÿþ, äóìàþ: â ÷åì ÿ äóðàê? À îêàçûâàåòñÿ íàäî ëèíêè íà ìàêðîñû â íîâûõ øàáëîíàõ èñïðàâèòü. âûçûâàþ rss-fulltext à îí èñïîëüçóåò ñòàðûé rss_template, à íàäî rss-fulltext_template.
Ïðàâëþ rss-fulltext.
ìåíÿþ íà
Âñòàâëÿåì â rss-fulltext_template
Full text for yandex.news
(ïîêà ïóñòü â òåãå áóäåò äåñêðèïøí, êîòîðûé ìû çàìåíèì íà ïîëíûé òåêñò íîâîñòè).
Âûäàåòñÿ îøèáêà. Ïîñëå íåêîòîðûõ ìó÷åíèé äîáàâëÿåì â çàãîëîâîê
xmlns:yandex="http://news.yandex.ru"
Î, òåïåðü îí ïîíèìàåò. È ìû íåìíîãî íà÷èíàåì âúåçæàòü.
Òàê, ïåðåìåííàÿ text â íîâîñòíîì øàáëîíå îïðåäåëÿåòñÿ âíà÷àëå êàê
text python:here.CookedBody(stx_level=2)
Áóäåì èñïîëüçîâàòü CookedBody(stx_level=2).
Òàêèì îáðàçîì ïîëíûé òåêñò äëÿ ÿíäåêñà áóäåò âûãëÿäåòü òàê:
Full text for yandex.news
Âñ¸ îòëè÷íî. Ïîëíûé òåêñò ôèãàðèòñÿ!
Ìîæíî åùå ñäåëàòü
Êàòåãîðèÿ, ïî òèïó: îáùåñòâî, ïîëèòèêà.
Êñòàòè, åñëè ñäåëàåì â âèäå ñòðóêòóðû, òî òåãè ñîõðàíÿþò âèä (÷òî ïîêà íå íàäî, íî íóæíî çàïîìíèòü).
Full text for yandex.news
Òàê, ñ ÐÑÑ íåìíîãî ðàçîáðàëèñü, ÿíäåêñ áóäåò äîâîëåí.
Òàê. Ïîðòëåòû è äðóãèå ïëþøêè íóæíî ïðèâÿçàòü ê ïðîãðàììèðóåìûì ïàïêàì.
Åùå íóæíî ïîñìîòðåòü øàáëîí äëÿ îòîáðàæåíèÿ ïðîãðàììèðóåìûõ ïàïîê. Ïîõîæå, ÷òî ïî óìîë÷àíèþ èñïîëüçóåòñÿ òî æå ñàìîå, ÷òî äëÿ îáû÷íûõ ïàïîê, òî áèøü
/Plone/portal_skins/plone_content/folder_listing
Ñåé÷àñ ïîãëÿäèì.
Êàñòîìàéçèì.
Íàì òàêæå íóæíî, ÷òîáû áûëà âðåìÿ + äàòà (äàòó â ïðèíöèïå ìîæíî îïóñêàòü, åñëè îíà ñåãîäíÿøíÿÿ, õîòÿ íå îáÿçàòåëüíî). Âðåìÿ äîëæíî áûòü ÷àñû:ìèíóòû. + äîëæíà áûòü êàðòèíêà, åñëè îíà åñòü!
Åùå èíòåðåñíî. Íà ãëàâíîé ñòðàíèöå ëåíòà íîâîñòåé ñîñòîèò èç ñêîëüêè ýëåìåíòîâ? À íà ñòðàíèöå íîâîñòåé ñêîëüêî ýëåìåíòîâ?
Íà ðîñáàëòå íà ãëàâñòðàíèöå 25 íîâîñòåé.
 íîâîñòÿõ ðîñáàëòà 100 ýëåìåíòîâ. óõ, äîëãî ñ÷èòàë!
Òàê, ñîçäàåì ïàïêè è ïðîãðàììèðóåìûå ïàïêè:
Ïîëèòèêà, Ýêîíîìèêà, Îáùåñòâî, Ïðîèñøåñòâèÿ.
×åãî-òî ïàïîê è ïðîãðàììèðóåìûõ ïàïîê òó÷à. Ïîëó÷àåòñÿ, íàïðèìåð, ìû íàõîäèìñÿ â
http://localhost/intervyu
à ïåðåõîäèì â
http://localhost/interview/penzency-opasayutsya-ogranicheniya-vesennei-ohoty/
Çàïóòàíî ïîëó÷àåòñÿ.
 ïðèíöèïå, ïðîãðàììèðóåìàÿ ïàïêà - ýòî î÷åíü õîðîøî. È ðññ íàëàæåíî. Íî çà÷åì íàì äóáëèêàò, åñëè åñòü îáû÷íàÿ ïàïêà? Ýõ.
Îååé, êîãäà äåëàåì äëÿ ïàïêè îáîáùåííûé âèä, ïîêàçûâàåòñÿ êàê íîâîñòè.
îáîáùåííûé âèä íàçûâàåòñÿ folder_summary_view. Áëèí, ñäåëàòü áû ñâîé âèä è âûáèðàòü åãî è ïîñòàâèòü ïî óìîë÷àíèþ.
Òàê, íóæíî îáðàòèòü âíèìàíèå íà ôóíêöèþ isCurrentDay() êëàññà DateTime
12 îêòÿáðÿ.
Ñìîòðþ /Plone/portal_skins/plone_templates/colophon
êîëîôîí - ýòî ñåêöèÿ, â êîòîðîé íàõîäÿòñÿ çíà÷êè (ïëîíå, àêñåññèáèëèòè, ýíèáðàóçåð, öññ è ò.ä). Ýòîò êîëîôîí íàõîäèòñÿ â ñàìîì íèçó ñòðàíèöû (â ïîäâàëå). Òóäà íóæíî çàòîëêàòü êîïèðàéòû è ìíåíèå ðåäàêöèè. Òàêæå ìîæíî ïîêà çàòîëêàòü íèæíèå ññûëêè (àðõèâ, ïîèñê è äð.). Ïîïðîáóåì.
Òàê, ñìîòðèì, ÷òî òàì â êîëîôîíå. Òàì îïðåäåëÿåòñÿ ìàêðî
ýòîò äèâ îáðàìëÿåò ïðàêòè÷åñêè âñþ ñòðàíèöó.
âíóòðè íåãî âèäèì ñëîò
î÷åíü èíòåðåñíî!
ìàêðî, à âíóòðè ñëîò.
Áëèí, ïî÷åìó íà ðóññêèé ÿçûê ðóãàåòñÿ!
Çàòîëêàë òóäà îáû÷íûå ëèíêè â þë ëè íà àíãëèéñêîì. Òóäà íóæíî çàòàëêèâàòü
Ñìîòðþ /Plone/portal_skins/plone_templates/main_template
Ýòî ãëàâíûé øàáëîí, ãäå âûçûâàþòñÿ âñå ìàêðî. íàïðèìåð, òîò æå êîëîôîí:
The colophon area - contains details about the production of
the site. Typically "powered by" buttons, standards, tools used.
here/colophon - ýòî íàçâàíèå øàáëîíà
macros/colophon - íàçâàíèå ìàêðîñà
çàáóáåíèë /Plone/portal_skins/custom/raznocvet
â íåì
Archive
...
id="portal-colophon" íàì äàåò îôîðìëåíèå ïåðå÷èñëåíèÿ ãîðèçîíòàëüíî. Íóæíî ïîñìîòðåòü â ñòèëÿõ, êàê ýòî äåëàåòñÿ, ÷òîáû îïðåäåëèòü ñîáñòâåííûé èä.
Çàòåì êàñòîìëþ /Plone/portal_skins/custom/main_template
â íåì âûçûâàþ
test raznocvetniye ssilki!
âñå ïîëó÷èëîñü.
Òåïåðü íàäî â raznocvet ñäåëàòü âûáîðêó ññûëîê. Íàïðèìåð, ñäåëàòü ïàïêó òèïà links, à â íåé îáúåêòû-ññûëêè. Çàòåì ïðîéòèñü ïîèñêîì ïî êàòàëîãó â ïàïêå links è âûáðàòü ýëåìåíòû òèïà ññûëêè. Òîëüêî âîò ÷òî! Ïîðÿäîê êàêîé áóäåò? ìîæíî ëè áóäåò ïåðåìåùàòü ýòè ññûëêè? Î÷åíü èíòåðåñíî!
òàê, ïàïêó links ñîçäàë. Åå, êîíå÷íî, íóæíî óáðàòü èç íàâèãàöèè.
Íàñîçäàâàë òóäà ññûëîê. Ïîïðàâèë /Plone/portal_skins/custom/raznocvet
Ïðîõîæó ïî êàòàëîãó â ïîèñêàõ ññûëîê. Êñòàòè, ñîðòèðîâêà êàê â ôîëäåðå ñäåëàíà â ïîðòëåòå íàâèãàöèè. Íóæíî ñåé÷àñ ïîñìîòðåòü åãî.
Òåêñò ññûëêè áåðåòñÿ êàê title, õîòÿ ïðàâèëüíî pretty_title_or_id
url áåðåòñÿ êàê getRemoteUrl
ñîðòèðîâêà êàê íàäî ïðîèñõîäèò ïî getObjPositionInParent, íàâåðíîå. Íàøåë ýòî â ôàéëå getFolderContents.py. Ùà íàäî ïîïðîáîâàòü!
Äà!
Òàêèì îáðàçîì êîä ìàêðîñà â raznocvet ïîëó÷èëñÿ òàêîé:
Î÷åíü èíòåðåñíûé êîä íàõîäèòñÿ â /Plone/portal_skins/plone_content/folder_listing
Òàê!!! Ïî îáðàçó è ïîäîáèþ ññûëîê íóæíî ñäåëàòü íèæíèå ññûëêè (â êîëîôîíå, õîòÿ ïî-íîðìàëüíîìó êîëîôîí íóæåí äëÿ ïîâåðåä áàé). Òàêæå äåëàþòñÿ íàñòîÿùèå ðàçíîöâåòíûå ññûëêè íà íîâîñòè (çàãîëîâêè). Õîòÿ èõ, íàâåðíîå íóæíî áðàòü ïî êàêîìó-òî êëþ÷ó, òàê áóäåò ëó÷øå. Íàïðèìåð, êëþ÷ áóäåò "raznocvet". È áóäóò âûáèðàòüñÿ, íàïðèìåð, 5 ïîñëåäíèõ ðàçíîöâåòíûõ çàãîëîâêîâ. ×åòíûå ññûëêè ïîïðîáóåì ñäåëàòü îðàíæåâûìè! Î÷åíü õîðîøèé öâåò #FF3300
À, ÷å çàáûë! Ëèíêè âåðõíèå, ÷òîáû îòëè÷àòü îò, íàïðèìåð, íèæíèõ è äðóãèõ, íóæíî èñêàòü ïî êàòàëîãó â îòäåëüíîé ïàïêå. Òàê ÷òî íóæíî åùå çàäàòü ìåñòî ïîèñêà!
Ðàáîòàþ íàä ìåñòîì äëÿ ïîèñêà.
portal/getPhysicalPath âûäàåò ñïèñîê. ñäåëàë áû join, äà íåëüçÿ. Äîëæíà áûòü ôóíêöèÿ, êîòîðàÿ âûäàâàëà áû ïóòü â íîðìàëüíîì ñëåøåâîì âèäå!
Îõ, äîëãî ìó÷èëñÿ! Äîëãî èñêàë ïî ïîèñêó! Íàøåë! Âïèñûâàþ ýòó ïëþøêó
Ýòî äëÿ òåñòèíãà. Îòîáðàæàåò ïóòü ê ïîðòàëó ñîåäèíÿÿ ñ /links
 ïîèñê ïî êàòàëîãó âñòàâëÿþ ýòî!
Òåïåðü âñå çå.
tal:define="mypath portal/portal_url/getPortalPath;
mypath python:'/'+str(mypath)+'/links';
results python:portal.portal_catalog.searchResults(
portal_type='Link',
path=mypath,
review_state='published',
sort_on='getObjPositionInParent');
results python:[r for r in results if r.getObject()]"
links - ýòî ïóòü, ãäå èñêàòü âñå íóæíûå âåùè. Òåïåðü ìîæíî ýòî ïðèìåíèòü ê ëþáîìó ïîðòëåòó. È ê ëþáûì ññûëêàì (íàïðèìåð, íèæíèì). Ùà áóäó äåëàòü íèæíèå ññûëêè, êîòîðûå áóäó èñêàòü â ïóòè links_bottom
Èòàê, ðåäàêòèðóþ êîëîôîí!
Âñå ïîëó÷èëîñü. çàìåíèë â èñõîäíîì links íà links_bottom è âñå çå!
Åùå ÷å ïîäóìàë. Äåñêðèïøí è òåêñò íîâîñòè.  ïëîíå ïî óìîë÷àíèþ â ïðîñìîòðå íîâîñòè îòîáðàæàåòñÿ è äåñêðèïøí (æèðíûì), è òåêñò. Åñòü äâà âàðèàíòà. Ëèáî òåêñò íîâîñòè ïèñàòü êàê ïðîäîëæåíèå. Íî òîãäà ôóë-òåêñò â ÿíäåêñå áóäåò òîëüêî èç ïðîäîëæåíèÿ è íàäî áóäåò êàê-òî ñêëåèâàòü. Ëèáî äðóãîé âàðèàíò. Ïèñàòü äåñêðèïøí. È ïîëíûé (ñ äåñêðèïøíîì) òåêñò íîâîñòè. Íî â øàáëîíå äëÿ îòîáðàæåíèÿ íîâîñòè óáðàòü ïîêàç äåñêðèïøíà.
×òî ëó÷øå - íå çíàþ.
ðåäàêòèðóþ /Plone/portal_skins/plone_content/newsitem_view. Íî òîãäà íàäî áóäåò ïîïðàâèòü è äðóãèå øàáëîíû (íàïðèìåð, äîêóìåíò_âüþ). ÍÅ ÇÀÁÛÒÜ!!!
Åùå íóæíî â øàáëîí äëÿ ïðîñìîòðà íîâîñòè çàáóáåíèòü âðåìÿ ïóáëèêàöèè.
Åùå ïîäïðàâèòü êàðòèíêó. (ñäåëàòü åå ñëåâà è îáòåêàòü òåêñòîì).
Òàê. Äåñêðèïøí óáðàë (çàêîììåíòèë).
Ó êàðòèíêè ñòèëü css_class='newsImage'
Ãäå îòîáðàæàòü äàòó?
python:toLocalizedTime(here.ModificationDate(),long_format=1) - äàòà â ôîðìàòå
2007-10-12 15:22
Íî ïðè ìîäèôèêàöèè äàòà ìåíÿåòñÿ. Íóæíî äàòó ïóáëèêàöèè
Äàòó ïóáëèêàöèè íàì âîçâðàùàåò EffectiveDate().
Çíà÷èò íóæíî äåëàòü òàê:
python:toLocalizedTime(here.EffectiveDate(),long_format=1)
×å çàìåòèë: ôóíêöèè íà÷èíàþòñÿ ñ çàãëàâíîé áóêâû, àòðèáóòû - ñî ñòðî÷íîé.
object_title - çàãîëîâîê íîâîñòè.
Òàê.
Ïîäâàë (êîïèðàéòû è ò.ä.) ìîæíî ñäåëàòü, åñëè òåêñò çàáèòü â äîêóìåíò, à ïîòîì åãî ïîêàçûâàòü.
Òàê, äåëàåì äîêóìåíò.  ïðèíöèïå, îí ìîæåò îñòàòüñÿ ïóáëè÷íûì ÷åðíîâèêîì, ÷òîáû íå ìàÿ÷èòü â ëåíòàõ.
Ñîçäàåì ïàïêó, íàïðèìåð, Templ â êîðíå. Èñêëþ÷àåì åå èç íàâèãàöèè.  íåå ïèõàåì äîêóìåíò, íàïðèìåð, copyrights. Òàê, äîêóìåíò ñîçäàëè.
Òåïåðü èäåì â êîëîôîí.
Êàê âçÿòü îáúåêò, åñëè èçâåñòåí ïóòü äî íåãî, è îò ýòîãî îáúåêòà âçÿòü êóêåäáîäè? Íàâåðíîå, åñòü ôóíêöèÿ, íî ÿ åå íå íàøåë. Ìîæåò, ïëîõî èñêàë.
Èäåì â ëîá. Äåëàåì ïîèñê ïî êàòàëîãó ñ ïóòåì Templ/copyrights è âûáèðàåì äîêóìåíò. Áåðåì òîëüêî îäèí ýëåìåíò.
Ïîñëå äîëãèõ ìó÷åíèé âîò ÷å ïîëó÷èëîñü:
ñopyrights!!!
Îòîáðàæàåòñÿ âñå êàê íàäî. ß æå ãîâîðèë ðàíåå, ÷òî structure ïîíàäîáèòñÿ... Òàê è âûøëî.
 ïðèíöèïå, íèæíèå ññûëêè òîæå ìîæíî çàáèòü â ýòîò äîêóìåíò. È âåðõíèå òîæå. Ïîñìîòðèì, êàê áóäåò óäîáíåå!
Òàê. Äåëàåì ðàçíîöâåò. Âçÿë ïàðó äîêóìåíòîâ, â ñâîéñòâàõ äîáàâèë êëþ÷åâîå ñëîâî raznocvet
Òåïåðü èäåì, íàïðèìåð â raznocvet è ïóëÿåì òóäà ïîèñê ïî êàòàëîãó íîâîñòåé ñ êëþ÷îì ðàçíîöâåò. Ñîðòèðîâêà ïî äàòå ðåâåðñíàÿ.
Êîðî÷å, âñå ñäåëàë, ùà îïèøó
 ðàçíîöâåòå çàáóáåíèë
lalala raznocvet
Òî åñòü, áåðåòñÿ 5 ïîñëåäíèõ îïóáëèêîâàííûõ íîâîñòåé ñ êëþ÷îì raznocvet è îòîáðàæàåòñÿ. Åñëè íîâîñòü ÷åòíàÿ, òî ññûëêà êðàñíàÿ, èíà÷å - ãîëóáàÿ. Ñòèëè çàäàåì â òàáëèöå ñòèëåé.
Ýòî äîáàâëÿåì â /Plone/portal_skins/custom/public.css, õîòÿ, íàâåðíîå, ìîæíî è â êàñòîì êàêîé-íèáóäü.
#raznocvet_red {
color: #FF3300;
}
#raznocvet_blue {
color: #0066CC;
}
Öâåòà îáàëäåííûå. È ìîäíûå. Íàäî áû âåñü ñàéò ñäåëàòü â ýòèõ òîíàõ!
Òàïåðè÷à íåîáõîäèìî îòîáðàçèòü ãëàâíûå òåìû äíÿ. Ìîæíî òàêæå ïî êëþ÷ó. Êëþ÷ áóäåò, äîïóñòèì, main
Íóæíî îòêóñòîìèçèòü êàêîé íèáóäü øàáëîí ñ ìàêðî. Ïåðåíàçâàòü øàáëîí è ìàêðî. È âûçûâàòü ýòó ìàêðó èç main_template.
Áåðåì øàáëîí ðàçíîöâåò, êîïèðóåì. Êîïèþ ïåðåèìåíîâûâàåì â main_themes. Âñå òàì íå ÷èñòèì. Ñìîòðèì âíèìàòåëüíî.
Áëÿ, èñïðàâèë ðàçíîöâåò.
Âðîäå âñå èñïðàâèë. Âñå, êàê íàäî. Ñî ñòèëÿìè åùå ïðåäñòîèò ïîèãðàòüñÿ, òàì îòñòóïû îò êàðòèíîê è ò.ä.
Âîò êîä ìàêðî â /Plone/portal_skins/custom/main_themes
Ýòó ìàêðó âûçûâàåì èç /Plone/portal_skins/custom/main_template êàê ïîêàçàíî íèæå:
main themes table!
Âûçûâàåì äî
Íå çàáûòü!!! Òóäó: Åñëè íåò êàðòèíêè - íå÷åãî åå ïîêàçûâàòü!!! Ýòî ãäå-òî åñòü.  øàáëîíàõ.
30 îêòÿáðÿ.
Ïðàâèì CSS.
1. Íóæíî, ÷òîáû êàðòèíêà â íîâîñòè áûëà ñëåâà.
/Plone/portal_skins/custom/public.css
Íàõîäèì. Ïðàâèì.
.newsImageContainer {
float:left;
/* float:right; */
margin: 0 1em 0.5em 0;
/* margin: 0 0 0.5em 1em;*/
width: 202px;
}
float:left; - âûðàâíèâàíèå ïî ëåâîìó êðàþ.
margin: 0 1em 0.5em 0; - âåðõ ïðàâî íèç ëåâî. - ñïðàâà îòñòóï îò òåêñòà
Ãîòîâî.
Óáèðàåì ðàìêó ó êàðòèíêè.
Íàõîäèì êëàññ newsImage
.newsImage {
border: none;
/* border: 1px solid black;*/
}
2. Êàðòèíêà â ëåíòå íîâîñòåé - ïî àíàëîãèè
ñòèëü tileImage
.tileImage {
float:left;
/* float: right;*/
margin: 0 0.5em 0.5em 0;
/* margin: 0 0 0.5em 0.5em;*/
border: none;
/* border: 1px solid black;*/
}
 ëåíòå íîâîñòåé ññûëêà "Äàëåå" êàê ïàðàãðàô êëàññà tileFooter
×åãî-òî ýòîò êëàññ íå íàéäó.
Ñîçäàåì òîãäà åãî. è äåëàåì float: right;
.tileFooter {
float: right;
}
Õîòÿ, ññûëêà "Äàëåå" íå ðåêîìåíäóåòñÿ.
3. Ïîðòëåòû áåç ðàìêè.
Ðåäàêòèðóåì /Plone/portal_skins/custom/portlets.css
Íàõîäèì dl.portlet è äîáàâëÿåì border:none;
dl.portlet {
margin: 1px 0 1em 0;
border:none;
/* border-bottom: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;;*/
background-color: &dtml-backgroundColor;;
}
Ñíèçó ðàìêà óáðàëàñü
Íàõîäèì .portletHeader è äîáàâëÿåì border:none;
.portletHeader {
background-color: &dtml-globalBackgroundColor;;
border:none;
/* border: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;; */
padding: 0em 1em;
text-transform: &dtml-textTransform;;
font-weight: normal;
line-height: 1.6em;
}
 çàãîëîâêå ïîðòëåòà ðàìêà óáðàëàñü.  ïðèíöèïå, ðàìêó ìîæíî ñíèçó çàãîëîâêà, òî åñòü âìåñòî äîáàâëåíèÿ border:none; çàìåíèòü
border: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;;
íà
border-bottom: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;;
Ïîòîì íàõîäèì êëàññ portletItem è óáèðàåì ðàìêó ñëåâà è ñïðàâà
.portletItem {
margin: 0;
padding: 1em;
/* border-left: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;; */
/* border-right: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;; */
}
Ïîòîì â íåêîòîðûõ ïîðòëåòàõ åñòü ïîäâàë (ïî òèïó ññûëêè "Îñòàëüíûå íîâîñòè").
Ñâåðõó òî÷êè, ñëåâà è ñïðàâà - ëèíèè.
Ìåíÿåì êëàññ portletFooter
Óáèðàåì ðàìêó. Èíòåðåñíî ðàìêà ñäåëàíà. ðàçíûå ñòèëè.
dd.portletFooter {
background-color: &dtml-evenRowBackgroundColor;;
margin: 0;
padding: 0.25em 1em;
/* border: &dtml-borderWidth; &dtml-borderStyle; &dtml-globalBorderColor;; */
/* border-style: dotted &dtml-borderStyle; none &dtml-borderStyle;; */
text-align: right;
}
Âñå-òàêè ëåâûå è ïðàâûå ñëîòû íå ðàñøèðÿþòñÿ. Ìåíÿåì /Plone/portal_skins/custom/base_properties
columnOneWidth 30em
columnTwoWidth 30em
ó êàðòèíêè, ÷òîáû íå çàäåâàëà òåêñò îòñòóïû ñïðàâà è ñíèçó
img style="margin-top: 2px; margin-right: 5px;"
â /Plone/portal_skins/custom/main_themes ó êàðòèíîê!
äåëàåì ñòèëü
Ýõ, áëèí! Ñêîëüêî ìó÷àëñÿ è òîëüêî ñåé÷àñ, â 12 íî÷è äîïåðëî, ÷òî íóæíî âèæë-êëåàð äåëàòü, ÷òîáû êàðòèíêè íå íàåçæàëè äðóã íà äðóãà!!! Âìåñòî òàáëèö! Ñïàñèáî Ãàçåòå.ðó!
Òî åñòü íóæíî äåëàòü ïîñëå òåêñòà, îáòåêàþùåãî êàðòèíêó òàêóþ ïëþøêó:
Ðåøèë ïðè÷åñàòü /Plone/portal_skins/custom/portlet_business
áåðåì èç ïàïêè áèçíåñ 3 îïóáëèêîâàííûå íîâîñòè, åñëè îíè åñòü è åñëè ìû íå íàõîäèìñÿ íà ëåíòå äåëîâûõ íîâîñòåé.
â çàãîëîâêå ïîðòëåòà ïèøåì "äåëîâûå íîâîñòè" (ïî íàçâàíèþ ðàçäåëà) è äàåì ññûëêó íà /business (åñëè åñòü òàêàÿ ïàïêà)
News of business
Âîò òàê
python:portal.business.Title()
áåðåòñÿ çàãîëîâîê íóæíîé ïàïêè. ïî îáðàçó ìîæíî âçÿòü íå òîëüêî çàãîëîâîê, íî è âñå, ÷òî óãîäíî.
Ïî îáðàçó è ïîäîáèþ ïðàâëþ /Plone/portal_skins/custom/portlet_interview
Òîëüêî âìåñòî business ïèøó interview.
Òàêæå îòëè÷èå - âìåñòî äàòû òàì âðåìÿ! êàê ïèñàëîñü ðàíåå - python:DateTime(obj.Date).TimeMinutes()
Òåïåðü îòïðàâèì ïîðòëåò äåëîâûõ íîâîñòåé â ïðàâûé ñëîò! (ïîðòàë -> âêëàäêà "Properties")
here/portlet_business/macros/portlet çàïñûâàåì â right_slots, à here/portlet_news/macros/portlet ìîæíî áóäåò óáðàòü ñêîðî.
Òàê, â ïðèíöèïå, íå íóæåí â ëåâîì ñëîòå è here/portlet_navigation/macros/portlet, åñëè ãîðèçîíòàëüíîå ìåíþ áóäåò ñâåðõó. Íî âñå ðàâíî ïîêà îñòàâèì.
Äîðàáîòàë íåìíîãî /Plone/portal_skins/custom/main_themes:
Çàãîëîâîê ñäåëàë êëàññîì class="tileHeadline" (äëÿ æèðíîñòè) è îòäåëèë åãî îò îïèñàíèÿ
Òåïåðü íóæíî ñàìûé âåðõ ïðè÷åñàòü êàê â ÒÇ.
Òî åñòü òàáëèöó, â íåé äâà ñòîëáöà:
â ïåðâîì - ñåãîäíÿ - òåêóùàÿ äàòà, ëîãîòèï, ñâèäåòåëüñòâî;
âî âòîðîì - ññûëêè âåðõíèå + ðàçíîöâåòíûå çàãîëîâêè + ìåíþ.
Õîòÿ ìåíþ ìîæíî è ïîñåðåäêå îñòàâèòü â òåëå ñòðàíèöû.
Ïðàâèì /Plone/portal_skins/custom/raznocvet
Äåëàåì òàáëèöó.
Ñäåëàëè. âñå çå, äàæå ìåæäó ðàçíîöâåòíûìè çàãîëîâêàìè ñëåø!
/
Ýòèì ìû ñòàâèì ñëåø ïåðåä âñåìè, êðîìå ïåðâîãî.
Òó æå ïëþøêó â êîëîôîíå, òîëüêî âìåñòî ñëåøà - êðóæîê!
È ââåðõó |
Âëîæåíèå: 3622405_readme.txt