![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen | Thema bewerten | Ansicht |
|
#1
| |||
| |||
Hallo Zusammen, ich bin gerade dabei die jm_gallery zu konfigurieren, funktioniert schon recht gut. Jetzt möchte ich noch die Kommentar Funktion aktivieren, aber die will irgendwie nicht so richtig. Ich kann das Formular zwar ausfüllen und abschicken, allerdings werden die Kommentare nicht in der DB eingetragen (Tabelle: tx_jmgallery_comments), noch sind sie unter dem jeweiligen Bild zu sehen (0 Comments). Zu meiner Konfiguration: Ich habe für die Kommentare einen zusätzlichen SysFolder angelegt. Auf der Einzelansicht wurden zwei weitere Einträge konfiguriert: Comments: Plugin: Website Photo Gallery; What to display: COMMENTS; Startingpoint: “der neue SysFolder”; Form: Plugin: Website Photo Gallery; What to display: FORM; Startingpoint: “der neue SysFolder”; Folgende Constants auf dem Root Template wurden gesetzt: plugin.tx_jmgallery_pi1 { list_pid = 3 album_pid = 4 single_pid = 5 admin { repositoryRoot = 6 basePath = fileadmin/funpics/ } } plugin.tx_jmgallery_pi1 { display { FORM { captcha = sr_freecap } } } plugin.tx_jmgallery_pi1 { comments { storagePid = 8 << ç Neuer SysFolder >> } } Versionen: TYPO3 Ver. 4.1.5 jm_gallery Ver. 0.9.1 (sr_freecap 1.0.1; jm_scriptaculous 1.7.1) Für jegliche Hilfe bin ich sehr Dankbar! Viele Grüße, Grilli |
| Sponsored Links |
![]() TYPO3 Forum.net empfiehlt domainFactory als Hoster! |
|
#2
| |||
| |||
| Also bei mir hatte es das selbe problem. Hab aber dann irgendwo gelesen, das man das Formular zuerst einbinden muss uns erst dann die Kommentare. Seit dem funktioniert es auch. Ich hab jetzt nur ein Problem. Ich kann zwar kommentare schreiben, aber es wäre jetzt besser, wenn man schon in der albumansicht sehen kann, das zu dem bild ein Kommentar geschrieben wurde. Wäre das irgendwie machbar? Wenn ja wie? Mfg Skyhead |
|
#3
| |||
| |||
| So, ich hab jetzt den Quellcode gefunden, der die Anzahl der Kommentare ausgibt: class.tx_jmgallery_view_Comments.php Code: require_once(PATH_tslib.'class.tslib_pibase.php');
require_once(t3lib_extMgm::extPath('jm_gallery').'pi1/class.tx_jmgallery_view_Base.php');
class tx_jmgallery_view_Comments extends tx_jmgallery_view_Base {
/* initial call */
function display() {
$template = $this->cObj->getSubpart($this->templateCode, '###COMMENT_LIST###');
$marks = array();
$marks['###IMAGE_COMMENTS_COUNT###'] = sizeof($this->input);
$marks['###LL_COMMENTS###'] = $this->pi_getLL('commentsComment');
$marks['###LL_SAYS###'] = $this->pi_getLL('commentsSays');;
$comments = '';
for ($i = 0; $i < sizeof($this->input); $i++) {
$comments .= $this->wrapCommentInHTML($template, 'IMAGE_COMMENT_ENTRY', $this->input[$i], $i);
}
$template = $this->cObj->substituteSubpart($template,'###IMAGE_COMMENT_ENTRY###', $comments);
$template = $this->cObj->substituteMarkerArray($template, $marks);
return $template;
}
/* Section H: Helper functions ----------------------------------------- */
function wrapCommentInHTML($template, $code, $object, $num) {
$code = $this->cObj->getSubpart($template, '###'.$code.'###');
$marks = array();
$marks['###IMAGE_COMMENT_NUM###'] = $num;
$marks['###IMAGE_COMMENTER_FIRSTNAME###'] = $object->getFirstname();
$marks['###IMAGE_COMMENTER_SURNAME###'] = $object->getSurname();
$marks['###IMAGE_COMMENT_DATE###'] = strftime($this->conf['dateFormat'], $object->getTimestamp());
$marks['###IMAGE_COMMENT_MESSAGE###'] = htmlspecialchars($object->getMessage(), ENT_QUOTES);
$marks['###IMAGE_COMMENT_HOMEPAGE###'] = $object->getHomepage();
$marks['###IMAGE_COMMENT_PLACE###'] = $object->getPlace();
$marks['###IMAGE_COMMENT_EMAIL###'] = $object->getEMail();
return $this->cObj->substituteMarkerArray($code, $marks);
}
} Hier nochmal die PHP datei: class.tx_jmgallery_view_Album.php Code: require_once(PATH_tslib.'class.tslib_pibase.php');
require_once(t3lib_extMgm::extPath('jm_gallery').'pi1/class.tx_jmgallery_model_Category.php');
require_once(t3lib_extMgm::extPath('jm_gallery').'pi1/class.tx_jmgallery_view_Base.php');
class tx_jmgallery_view_Album extends tx_jmgallery_view_Base {
var $page = 1;
/* set page for pagebrowser */
function setPage($page) {
$this->page = $page;
}
/* initial call */
function display() {
$template = $this->cObj->getSubpart($this->templateCode, '###ALBUM_TEMPLATE###');
$album = $this->input;
$pagebrowser = '';
$imagecount = $album->getImageCount();
/* check if a pagebrowser is needed */
if (!empty($this->conf['display.']['ALBUM.']['pagebrowser.']['limit']) && $this->conf['display.']['ALBUM.']['pagebrowser.']['enable'] == 1) {
if ($imagecount > $this->conf['display.']['ALBUM.']['pagebrowser.']['limit']) {
/* we need a pagebrowser */
$pages = ceil ($imagecount / $this->conf['display.']['ALBUM.']['pagebrowser.']['limit']);
$browsertemplate = $this->cObj->getSubpart($template, '###PAGEBROWSER_TEMPLATE###');
$linkstemplate = $this->cObj->getSubpart($browsertemplate, '###PAGELINKS###');
for ($i = 1; $i <= $pages; $i++) {
$marks = array();
if ($i == $this->page) {
$marks['###PAGE_LINK###'] = $i;
} else {
$marks['###PAGE_LINK###'] = $this->pi_linkTP_keepPIvars($i, array('albumUid' => $album->getUid(), 'page' => $i), $this->conf['allowCaching'], 1, $this->conf['album_pid']);
}
$pagebrowser .= $this->cObj->substituteMarkerArray($linkstemplate,$marks);
}
$pagebrowser = $this->cObj->substituteSubpart($browsertemplate, '###PAGELINKS###',$pagebrowser);
/* if we show all images */
if ($this->page == 0) {
$pagebrowser = $this->cObj->substituteMarkerArray($pagebrowser,array('###DISPLAY_ALL_LINK###' => $this->pi_getLL('displayAll')));
$offset = 0;
$loops = $imagecount;
} else { /* if we show a selected page */
$pagebrowser = $this->cObj->substituteMarkerArray($pagebrowser,array('###DISPLAY_ALL_LINK###' => $this->pi_linkTP_keepPIvars($this->pi_getLL('displayAll'), array('albumUid' => $album->getUid(), 'page' => 0,), $this->conf['allowCaching'], 1, $this->conf['album_pid'])));
$offset = ($this->page - 1) * $this->conf['display.']['ALBUM.']['pagebrowser.']['limit'];
$loops = ($imagecount - $offset) < $this->conf['display.']['ALBUM.']['pagebrowser.']['limit']
? ($imagecount - $offset) : $this->conf['display.']['ALBUM.']['pagebrowser.']['limit'];
}
} else {
$offset = 0;
$loops = $imagecount;
}
} else {
$offset = 0;
$loops = $imagecount;
}
/* insert the pagebrowser */
$template = $this->cObj->substituteSubpart($template, '###PAGEBROWSER_TEMPLATE###', "");
/* substitute album description */
$marks = array();
$marks['###PAGEBROWSER###'] = $pagebrowser;
$marks['###ALBUM_UID###'] = $this->_GP["albumUid"];
$marks['###ALBUM_NAME###'] = htmlspecialchars($this->cObj->stdWrap($album->getName(), $this->conf['display.']['ALBUM.']['albumNameWrap.']), ENT_QUOTES);
$marks['###ALBUM_CRDATE###'] = $this->cObj->stdWrap($album->getDatum(), $this->conf['display.']['LIST.']['dateWrap.']);
$marks['###ALBUM_PICTURECOUNT###'] = $album->getImageCount();
$marks['###LL_PAGES###'] = $this->pi_getLL('pagesText');
$marks['###GALLERY_PAGE_LINK###'] = $this->pi_linkTP_keepPIvars_url(array(), $this->conf['allowCaching'], 1, $this->conf['list_pid']);
$marks['###ALBUM_DESCRIPTION###'] = htmlspecialchars($this->cObj->stdWrap($album->getDescription(), $this->conf['display.']['ALBUM.']['albumDescriptionWrap.']), ENT_QUOTES);
$marks['###LL_LIST_PAGE###'] = $this->pi_getLL('galleryIndexLinkTitle');
$template = $this->cObj->substituteMarkerArray($template,$marks);
/* finally show images */
$images = $album->getImages();
/* 'jump' to offset */
for ($i = 0; $i < $offset; $i++)
list (, $image) = each ($images);
if ($this->conf['display.']['ALBUM.']['alternate.']['enable'] == 0) {
for ($i = 0; $i < $loops; $i++) {
list (, $image) = each ($images);
$imageCode .= $this->wrapImageInHTML($template, 'IMAGE_ENTRY', $image);
}
$template = $this->cObj->substituteSubpart ($template, '###IMAGE_ROW###', $imageCode);
} else {
$subCode = "";
$imageCode = "";
$rowCode = $this->cObj->getSubpart($template, '###IMAGE_ROW###');
$i = 0;
$k = 0;
$max = $this->conf['display.']['ALBUM.']['alternate.']['oddRows'];
for ($l = 0; $l < $loops; $l++) {
list (, $image) = each ($images);
if ($i < $max) {
$imageCode .= $this->wrapImageInHTML($template, 'IMAGE_ENTRY', $image);
$i++;
} else {
$subCode .= $this->cObj->substituteSubpart ($rowCode, '###IMAGE_ENTRY###', $imageCode);
$rowCode = $this->cObj->getSubpart($template, '###IMAGE_ROW###');
$imageCode = $this->wrapImageInHTML($template, 'IMAGE_ENTRY', $image);
$i = 1;
if ($k == 1) {
$max = $this->conf['display.']['ALBUM.']['alternate.']['oddRows'];
$k = 0;
} else {
$max = $this->conf['display.']['ALBUM.']['alternate.']['evenRows'];
$k = 1;
}
}
}
$subCode .= $this->cObj->substituteSubpart ($rowCode, '###IMAGE_ENTRY###', $imageCode);
$template = $this->cObj->substituteSubpart ($template, '###IMAGE_ROW###', $subCode);
}
return $template;
}
/* Section H: Helper functions ----------------------------------------- */
function wrapImageInHTML($template, $code, $object) {
$code = $this->cObj->getSubpart($template, '###'.$code.'###');
$album = $object->getAlbum();
$marks = array();
$marks['###IMAGE_FILENAME###'] = $object->getFilename();
$marks['###IMAGE_FILESIZE###'] = (int) (filesize($object->getImageLocation()) / 1024);
$marks['###IMAGE_RESOLUTION###'] = $object->getResolution();
$marks['###IMAGE_UID###'] = $object->getUid();
$marks['###IMAGE_THUMBNAIL###'] = $object->getDefaultThumbnailLocation();
$marks['###IMAGE_CAPTION###'] = htmlspecialchars($this->cObj->stdWrap($object->getCaption(), $this->conf['display.']['ALBUM.']['imageCaptionWrap.']), ENT_QUOTES);
$marks['###IMAGE_VIEWS###'] = $object->getViews();
$marks['###IMAGE_DATE###'] = $object->getDatum();
$marks['###ALBUM_UID###'] = $album->getUid();
$marks['###IMAGE_PAGE_LINK###'] = $this->pi_linkTP_keepPIvars_url(array('albumUid' => $album->getUid(), 'imageUid' => $object->getUid()), $this->conf['allowCaching'], 1, $this->conf['single_pid']);
$marks['###LL_HITS###'] = $this->pi_getLL('Hits');
$marks['###LL_INFORMATION###'] = $this->pi_getLL('adminImageInformation');
$marks['###LL_CAPTION###'] = $this->pi_getLL('adminImageCaption');
$marks['###BACK_GALLERY_INDEX###'] = $this->pi_getLL('galleryIndexLinkTitle');
return $this->cObj->substituteMarkerArray($code, $marks);
}
} Mfg Skyhead |
|
#4
| ||||
| ||||
| Danke für den Tipp mit der Reihenfolge! Ich kann das ganze nicht abschicken, weil dauernd die Meldung kommt: Code: Bitte gib die folgenden Daten ein:
* \n
\n Der Vorname, Mail und Webseite wurde aber eingegeben bzw. automatisch ausgefüllt... Hatte auch dieses Phänomen jemand? Mit bestem Dank im Voraus, jos
__________________ Bitte markiere Deinen Thread als Gelöst, wenn er es ist! Wie geht das? Hast Du ihn eventl. selbst gelöst? Dann lass uns an der Lösung teilhaben! Das Anzeigen von Typoscript in Beiträgen steuern |
|
#5
| |||
| |||
| ja, ich hatte das problem auch, aber ich weiß leider nicht wie ich es geändert hab. Ich hab ziemlich viel herumgespielt und außerdem hab ich mein Forular-Template geändert. Bei mir gibt es nur noch Vorname und Nachneme, da die Extension ist den privaten bereich einer Community eingebunden ist und ich da keine E-mail brauche. Dies muss man jedoch auch da ändern, wo man die Extension eingebunden hat. Als Pflichtfelder sind da nur noch Vorname, Nachname und Message. So sieht mein Formular-Template aus: (pi1/gallery-template.html) Code: <!-- ###COMMENT_FORM### begin -->
<h3 id="respond" style="border-top:1px solid #e6e6e6; width: 700;">###BLOG_LEAVE_REPLY###</h3>
<span class="jm-gallery-form-error">###FORM_ERROR###</span>###FORM_ERROR_FIELDS###
<form action="###ACTION_URL###" method="post" id="commentform">
<table width="600">
<tr>
<td><table width="150" cellpadding="3">
<tr>
<td><label for="author"><small>###FORM_FIRSTNAME### ###FORM_FIRSTNAME_OBLIGATION###</small></label></td>
</tr>
<tr>
<td><input type="text" name="tx_jmgallery_pi1[firstname]" id="author" value="###VALUE_FIRSTNAME###" size="15" tabindex="1" /></td>
</tr>
<tr>
<td><label for="author"><small>###FORM_SURNAME### ###FORM_SURSTNAME_OBLIGATION### * </small></label></td>
</tr>
<tr>
<td><input type="text" name="tx_jmgallery_pi1[surname]" id="author" value="###VALUE_SURNAME###" size="15" tabindex="2" /></td>
</tr>
</table>
</td>
<td><table width="450">
<tr>
<td>Kommentar:</td>
</tr>
<tr>
<td><textarea name="tx_jmgallery_pi1[entry]" id="comment" rows="5" cols="70" tabindex="5">###VALUE_ENTRY###</textarea></td>
</tr>
</table>
</td>
</tr>
</table>
<!--###CAPTCHA_INSERT### -->
<p>
<b>###FORM_CAPTCHA_RESPONSE###</b>
<p>###SR_FREECAP_NOTICE###<br />
###SR_FREECAP_CANT_READ###</p>
<input type="text" class="jm-gallery-form-inputfield-med" name="tx_jmgallery_pi1[captcha_response]" title="###SR_FREECAP_NOTICE###" value="">
<p>###SR_FREECAP_IMAGE###</p>
</p>
<!--###CAPTCHA_INSERT###-->
<p class="button-submit">
<input name="submit" type="submit" id="submit" tabindex="5" value="###FORM_SUBMIT###" />
<input type="hidden" name="id" value="###PAGE_ID###" />
<input type="hidden" name="tx_jmgallery_pi1[submitted]" value="1" />
<input type="hidden" name="tx_jmgallery_pi1[albumUid]" value="###ALBUM_UID###" />
<input type="hidden" name="tx_jmgallery_pi1[imageUid]" value="###IMAGE_UID###" />
</p>
</form>
<!-- ###COMMENT_FORM### end --> Mfg Skyhead P.S.Ich würde mich freuen wenn jemand für die Anzeige der Kommentaranzahl in der Albumansicht eine Idee hätte. |
|
#6
| ||||
| ||||
| Danke.. Da ich Kommentare nicht zwingend brauchte ich aber die Galerie beschleunigen wollte habe ich mir die Perfectlightbox eingebaut .Habe zwar keine Kommentare und keine "wirkliche" Einzelansicht, aber dafür geht allles recht schnell...
__________________ Bitte markiere Deinen Thread als Gelöst, wenn er es ist! Wie geht das? Hast Du ihn eventl. selbst gelöst? Dann lass uns an der Lösung teilhaben! Das Anzeigen von Typoscript in Beiträgen steuern |
|
#7
| |||
| |||
| hmm, das hilft mir leider bei meinem Problem nicht wirklich weiter, hättest du (irgndwer) vielleicht eine Idee??? Mir geht es ja vorwiegend um die Kommentare. Mfg Skyhead |
|
#8
| |||
| |||
| hallo skyhead ich hatte das gleiche problem mit dem code Zitat:
![]() auf der seite mit der einzelansicht, page content "comments" unter den plugin optionen im tab "comments" einfach item "message" anwählen (achtung: nur message, wenn man vorname, etc. anwählt gehts bei mir auch nicht) speichern, seite neu laden und erneut was eingeben. nun sollte die meldung verschwunden sein. ich hoffe bei dir klappt es auch! viele grüsse sternchen |
|
#9
| ||||
| ||||
| Danke für den Tipp!!
__________________ Bitte markiere Deinen Thread als Gelöst, wenn er es ist! Wie geht das? Hast Du ihn eventl. selbst gelöst? Dann lass uns an der Lösung teilhaben! Das Anzeigen von Typoscript in Beiträgen steuern |
|
#10
| |||
| |||
| ja, das funktioniert, aber ich würde jetzt ganz gern auf der Albumansicht sehen, zu welchem Bild ein Kommentar abgegeben wurde Sollte dann in etwa so aussehen!!! Ich weiß leider nicht, wie sich das realisieren lässt, denn in der Einzelansicht zählt er ja auch die Kommentare. Das müsste halt jetzt nur noch irgendwie in die Albumansicht. Mfg Skyhead |
![]() |
| Themen-Optionen | Thema durchsuchen |
| Ansicht | Thema bewerten |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| submenu mit kommentar incl. daten (insertdata) umschließen | dima | GMENU, HMENU, TMENU und Co. | 2 | 12.09.07 22:07 |
| timtab übernimmt Kommentar nicht!!! | eschemaster | Alle anderen Extensions | 1 | 12.08.07 10:58 |
| realurl - gästebuch als kommentar für die news | baserider | TYPO3 4.x Fragen und Probleme | 2 | 18.02.07 18:17 |
| Kommentar im <head> erweitern | fatdude | TYPO3 4.x Fragen und Probleme | 2 | 13.02.07 19:39 |
| TimTab - Kommentar Fehler | eco | Alle anderen Extensions | 1 | 04.04.06 12:31 |