Hallo Zusammen,
wie kann man im Portal ähnlich wie hier die letzten 5 Produkte ausgeben lassen?
Hat da jemand eine Idee?
Hallo Zusammen,
wie kann man im Portal ähnlich wie hier die letzten 5 Produkte ausgeben lassen?
Hat da jemand eine Idee?
Bist du sicher das es keine Portalbox für den Kundenbereich gibt? Ich dachte ich hätte das schon gesehen
Ich weiß nicht, ob das passt, aber bei der Startseite von Jenso, siehe hier http://codequake.de/downloads/…php?page=Entry&entryID=36, kann man ja auch eigene Boxen erstellen, die dann für die "Letzten 5 Produkte" nehmen, oder?
Falls nicht, nichts für ungut.
Bist du sicher das es keine Portalbox für den Kundenbereich gibt? Ich dachte ich hätte das schon gesehen
Wenn es diese gibt, wo denn dann bitte? Ich habe keine gefunden!
Offizielles gibt es nichts von Viecode
Hallo zusammen,
ich habe ein kleines Problem und komme mit der Cache-Verarbeitung nicht weiter.
Folgende Datei habe ich für die Portalbox erstellt
<?php
// wcf imports
require_once(WCF_DIR.'lib/system/cache/CacheBuilder.class.php');
class CacheBuilderPortalWebdisk implements CacheBuilder {
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource) {
$data['newDatabaseItems'] = array();
$sql = "SELECT a.name, a.releaseTime, a.active, a.productID, b.public, b.priceLicense, b.productID
FROM wcf".WCF_N."_customer_storage a
LEFT JOIN wcf".WCF_N."_customer_product b
ON (a.productID = b.productID)
WHERE a.active = 1, b.public = 0
ORDER BY a.releaseTime DESC
LIMIT ".DATABASE_ITEM_VIEW_TOP."";
$result = WCF::getDB()->sendQuery($sql);
while($row = WCF::getDB()->fetchArray($result)) {
$data['newDatabaseItems'][] = $row;
}
return $data;
}
}
?>
Alles anzeigen
Nun bekomme ich aber diese Fehlermeldung ausgegeben wenn ich das Portal aufrufe:
You get more information about the problem in our knowledge base: http://www.woltlab.com/help/?code=1064
Information:
error message: Invalid SQL: SELECT a.name, a.releaseTime, a.active, a.productID, b.public, b.priceLicense, b.productID FROM wcf1_customer_storage a LEFT JOIN wcf1_customer_product b ON (a.productID = b.productID) WHERE a.active = 1, b.public = 0 ORDER BY a.releaseTime DESC LIMIT 5
error code: 1064
sql type: MySQLDatabase
sql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' b.public = 0 ORDER BY a.releaseTime DESC LIMIT 5' at line 5
sql error number: 1064
sql version:
file: /www/htdocs/w00b2576/sumlinemediade/wcf/lib/system/database/MySQLDatabase.class.php (118)
php version: 5.3.13-nmm1
wcf version: 1.1.9 (Tempest)
date: Fri, 20 Jul 2012 12:03:43 +0000
request: /index.php?page=Portal
referer: http://wbb.sumline-media.de/in…&productID=1&categoryID=0
Stacktrace:
#0 /www/htdocs/w00b2576/sumlinemediade/lib/system/cache/CacheBuilderPortalWebdisk.class.php(31): MySQLDatabase->sendQuery('SELECT a.name, ...')
#1 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/system/cache/CacheHandler.class.php(173): CacheBuilderPortalWebdisk->getData(Array)
#2 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/system/cache/CacheHandler.class.php(126): CacheHandler->rebuild(Array)
#3 /www/htdocs/w00b2576/sumlinemediade/lib/system/portalbox/cachebuilder/DefaultCacheBuilder.class.php(28): CacheHandler->get('box-19')
#4 /www/htdocs/w00b2576/sumlinemediade/lib/data/boxes/PortalBox.class.php(117): DefaultCacheBuilder->execute('19', 'CacheBuilderPor...', 'type2', '0', '0')
#5 /www/htdocs/w00b2576/sumlinemediade/lib/system/portalbox/PortalBoxFactory.class.php(102): PortalBox->initialize()
#6 /www/htdocs/w00b2576/sumlinemediade/lib/system/portalbox/PortalBoxFactory.class.php(44): PortalBoxFactory->initializeBoxes(false)
#7 /www/htdocs/w00b2576/sumlinemediade/lib/page/PortalPage.class.php(120): PortalBoxFactory->__construct(true, false, true, true, true)
#8 /www/htdocs/w00b2576/sumlinemediade/lib/page/PortalPage.class.php(105): PortalPage::getPortalBoxes()
#9 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/page/AbstractPage.class.php(90): PortalPage->readData()
#10 /www/htdocs/w00b2576/sumlinemediade/lib/page/PortalPage.class.php(147): AbstractPage->show()
#11 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/page/AbstractPage.class.php(46): PortalPage->show()
#12 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/util/RequestHandler.class.php(64): AbstractPage->__construct()
#13 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/util/RequestHandler.class.php(92): RequestHandler->__construct('Portal', Array, 'page')
#14 /www/htdocs/w00b2576/sumlinemediade/index.php(8): RequestHandler::handle(Array)
#15 {main}
Kann mir jemand helfen?
Wenn ich es nur so machen, dann funktioniert das
<?php
// wcf imports
require_once(WCF_DIR.'lib/system/cache/CacheBuilder.class.php');
class CacheBuilderPortalWebdisk implements CacheBuilder {
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource) {
$data['newDatabaseItems'] = array();
$sql = "SELECT *
FROM wcf".WCF_N."_customer_storage
WHERE `active` = '1'
ORDER BY `releaseTime` DESC
LIMIT ".DATABASE_ITEM_VIEW_TOP."";
$result = WCF::getDB()->sendQuery($sql);
while($row = WCF::getDB()->fetchArray($result)) {
$data['newDatabaseItems'][] = $row;
}
return $data;
}
}
?>
Alles anzeigen
Aber so habe ich nur den Name, daher muss ich in diese Tabelle
um den Preis ebenfalls anzuzeigen.
Kann mir jemand helfen?
Brauchst du denn zwingend das Veröffentlichungsdatum? Falls nicht kannst du dir den JOIN sparen:
$sql = "SELECT *
FROM wcf".WCF_N."_customer_product
WHERE public = 1
AND isDeleted IS NULL
ORDER BY productID DESC
LIMIT ".DATABASE_ITEM_VIEW_TOP."";
und einfach nach ID sortieren. Höchste ID = neustes Produkt.
Ansonsten hast du hier einen Fehler:
das müsste so aussehen:
Erst am schluss, ich muss überhaupt erst einmal das angezeigt bekommen was ich will
Ich möchte nun aus dem "wcf1_option" die Währung nun auslesen, aber das funktioniert nicht.
<?php
// wcf imports
require_once(WCF_DIR.'lib/system/cache/CacheBuilder.class.php');
class CacheBuilderPortalWebdisk implements CacheBuilder {
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource) {
$data['newDatabaseItems'] = array();
$sql = "SELECT a.name, a.releaseTime, a.active, a.productID, b.public, b.priceLicense, b.productID, c.optionValue
FROM wcf".WCF_N."_customer_storage a
LEFT JOIN wcf".WCF_N."_customer_product b
LEFT JOIN wcf".WCF_N."_option c
ON (b.productID = a.productID)
WHERE a.active = 1 AND b.public = 1 AND c.optionName = 'customer_currency'
ORDER BY a.releaseTime DESC
LIMIT ".DATABASE_ITEM_VIEW_TOP."";
$result = WCF::getDB()->sendQuery($sql);
while($row = WCF::getDB()->fetchArray($result)) {
$data['newDatabaseItems'][] = $row;
}
return $data;
}
}
?>
Alles anzeigen
so auch nicht
<?php
// wcf imports
require_once(WCF_DIR.'lib/system/cache/CacheBuilder.class.php');
class CacheBuilderPortalWebdisk implements CacheBuilder {
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource) {
$data['newDatabaseItems'] = array();
$sql = "SELECT a.name, a.releaseTime, a.active, a.productID, b.public, b.priceLicense, b.productID
FROM wcf".WCF_N."_customer_storage a
LEFT JOIN wcf".WCF_N."_customer_product b
ON (b.productID = a.productID)
WHERE a.active = 1 AND b.public = 1
ORDER BY a.releaseTime DESC
LIMIT ".DATABASE_ITEM_VIEW_TOP."";
$result = WCF::getDB()->sendQuery($sql);
$sql = "SELECT coptionValue
FROM wcf".WCF_N."_option
WHERE categoryName = 'customer.currency' AND optionName = 'customer_currency'";
$result = WCF::getDB()->sendQuery($sql);
while($row = WCF::getDB()->fetchArray($result)) {
$data['newDatabaseItems'][] = $row;
}
return $data;
}
}
?>
Alles anzeigen
Eine Fehlermeldung von der oberen Variante ist diese:
ZitatAlles anzeigenYou get more information about the problem in our knowledge base: http://www.woltlab.com/help/?code=1064
Information:
error message: Invalid SQL: SELECT a.name, a.releaseTime, a.active, a.productID, b.public, b.priceLicense, b.productID, c.optionValue
FROM wcf1_customer_storage a
LEFT JOIN wcf1_customer_product b
LEFT JOIN wcf1_option c
ON (b.productID = a.productID)
WHERE a.active = 1 AND b.public = 1 AND c.optionName = 'customer_currency'
ORDER BY a.releaseTime DESC
LIMIT 5
error code: 1064
sql type: MySQLDatabase
sql error: You have an
error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'WHERE a.active =
1 AND b.public = 1 AND c.optionName = 'customer_currency'
' at line 6
sql error number: 1064
sql version:
file: /www/htdocs/w00b2576/sumlinemediade/wcf/lib/system/database/MySQLDatabase.class.php (118)
php version: 5.3.13-nmm1
wcf version: 1.1.9 (Tempest)
date: Mon, 23 Jul 2012 18:27:29 +0000
request: /index.php?page=Portal
referer: http://wbb.sumline-media.de/in…&productID=1&categoryID=0
Stacktrace:
#0 /www/htdocs/w00b2576/sumlinemediade/lib/system/cache/CacheBuilderPortalWebdisk.class.php(20): MySQLDatabase->sendQuery('SELECT a.name, ...')
#1 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/system/cache/CacheHandler.class.php(173): CacheBuilderPortalWebdisk->getData(Array)
#2 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/system/cache/CacheHandler.class.php(126): CacheHandler->rebuild(Array)
#3 /www/htdocs/w00b2576/sumlinemediade/lib/system/portalbox/cachebuilder/DefaultCacheBuilder.class.php(28): CacheHandler->get('box-23')
#4 /www/htdocs/w00b2576/sumlinemediade/lib/data/boxes/PortalBox.class.php(117): DefaultCacheBuilder->execute('23', 'CacheBuilderPor...', 'type2', '0', '0')
#5 /www/htdocs/w00b2576/sumlinemediade/lib/system/portalbox/PortalBoxFactory.class.php(102): PortalBox->initialize()
#6 /www/htdocs/w00b2576/sumlinemediade/lib/system/portalbox/PortalBoxFactory.class.php(44): PortalBoxFactory->initializeBoxes(false)
#7 /www/htdocs/w00b2576/sumlinemediade/lib/page/PortalPage.class.php(120): PortalBoxFactory->__construct(true, false, true, true, true)
#8 /www/htdocs/w00b2576/sumlinemediade/lib/page/PortalPage.class.php(105): PortalPage::getPortalBoxes()
#9 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/page/AbstractPage.class.php(90): PortalPage->readData()
#10 /www/htdocs/w00b2576/sumlinemediade/lib/page/PortalPage.class.php(147): AbstractPage->show()
#11 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/page/AbstractPage.class.php(46): PortalPage->show()
#12 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/util/RequestHandler.class.php(64): AbstractPage->__construct()
#13 /www/htdocs/w00b2576/sumlinemediade/wcf/lib/util/RequestHandler.class.php(92): RequestHandler->__construct('Portal', Array, 'page')
#14 /www/htdocs/w00b2576/sumlinemediade/index.php(8): RequestHandler::handle(Array)
#15 {main}
Kann mir denn da wenigstens jemand helfen?