ke_search_premium

Die kostenpflichtige Premiumversion beinhaltet folgende Features:

Sie können die einzelnen Features ein- bzw. ausschalten, indem Sie sie im Extension-Manager im Reiter "Konfiguration" aktivieren, bzw. deaktivieren.

Weitere Informationen und die Bestellmöglichkeit finden Sie hier: ke_search_premium.

BastianBalthasarBux (Archiv)
Super, die Erweiterung 'looks promising'!
Ziemlich genau das was ich gesucht hab, glaub ich.

Ich hätte allerdings noch ein paar Fragen, nur damit ich das richtig verstehe:

1. Die 'premium' features kommen mit einer _zusätzlichen_ erweiterung ke_search_premium einher?

2. und falls ja, kann man das dann jederzeit später quasi 'upgraden'?
Insbesondere wenn man eigene Indexer, ergebnistemplates etc.. benutzt und fleissigen gebrauch von den vorhandenen hooks macht?
Oder gibt's da besondere sachen die man beachten müsste?

3. und was ist übrigens das problem mit dem plugin vs. typoscript bzgl. autovervollständigen? könnte man den plugin-inhalt z.b. als alternative via TS von einer bestimmten seite auf allen seiten einbinden? (schlagworte: typoscript - select - ce-uid)?
Christian (Archiv)
Hallo Bastian, zu Deinen Fragen:
1.) ja
2.) grundsätzlich ja, hängt natürlich davon ab, was genau Du programmierst, ganz allgemein lässt sich das nicht sagen.
3.) ja, das ist grundsätzlich möglich.
BastianBalthasarBux (Archiv)
Spitze! Danke für die rasche Auskunft.
Jetzt hab ich noch eine weitere blöde Frage: Ich habe gesehen, dass anscheinend Teile der Extension schon auf die Namespaces von typo3 6.x portiert wurden. ich müsste aber zumindest noch ein halbes jahr auf der 4.5 lts bleiben, da ich bei dem projekt etliche (sicher so an die 25-30 stück, mit teils etlichen klassen, eid etc..) eigenentwickelte extensions einsetze, und ein upgrade auf 6.2 lts entsprechend zeit und testing braucht.
wie sieht's den dbzgl. aus bei der premium erweiterung? ist die auch schon in die richtung portiert? und mit welchem aufwand sollte ich da rechnen, wenn ich das wieder 'zurückportieren' müsste?
ich hab mich in die namespaces noch nicht 100% eingearbeitet, aber theoretisch sollte es ja kein problem sein, diese zu verwenden, solange die php version >= 5.3 ist?
Christian (Archiv)
Hallo Bastian, beide Erweiterungen laufen auch mit 4.5.X, es gibt noch keine Pläne, ob oder ab wann die Erweiterungen die Version 6 voraussetzen. Richtig, Namespaces setzen PHP 5.3 voraus.
stefanie (Archiv)
Hallo!

funktioniert das autocomplete nach wie vor nur über die ke_search_premium? Und wie aktuell ist die? Auf der Seite steht "The current version is 1.0.2 of 9.10.2012."
Christian (Archiv)
Hallo Stefanie, ja genau, Autocomplete ist eine Funktion der Erweiterung ke_search_premium. Die Erweiterung wird von uns weitergepflegt und wir planen auch neue Funktionen.
Freggl (Archiv)
Hallo, eine Frage zum Umfang der Lizenz: Kaufe ich die einmal und darf sie dann bei mehreren Kunden einsetzen oder muss jeder Kunde separat eine Lizenz erwerben?
Christian (Archiv)
Hallo Freggl, da es sich nicht um eine Lizenzierung handelt, sondern um eine Unterstützung der Weiterentwicklung darfst Du die Extension auch bei mehreren Kunden einsetzen.
Jan (Archiv)
Wir haben eine Website mit 60 Seiten in 5 Sprachen, Typo3 6.2.6, PHP-Speicher bei 1,5 GB, dennoch: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 72 bytes) in xxx/typo3conf/ext/ke_search/Classes/indexer/types/class.tx_kesearch_indexer_types_page.php on line 201

Wie viel Speicher braucht die Extension denn??
Christian (Archiv)
Hi Jan, das ist leider noch ein Bug, siehe forge.typo3.org / issues / 58427
Steffen (Archiv)
Erlaubt die Premium-Suche die Verwendung von führenden Wildcards * bei der Volltext-Suche, also z.B. "*wasser" zum Finden von "Abwasser"?
Christian (Archiv)
Hallo Steffan, ja, bei der Premium-Suche ist die Option drin! Dazu muss Sphinx aktiviert sein und die entsprechende Option im Extension-Manager aktiver sein (Enable "in word search").
Dirk, 23-11-16 12:16
Hallo , wir haben einen indexer erstellt für tt_products, vielleicht können Sie diesen ja in die Ext. mit einfließen lassen?

<?php
/***************************************************************
* Copyright notice
*
* (c) 2012-2014 Christian Bülter (kennziffer.com) <buelter@kennziffer.com>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/


/***************************************************************
* This class is an example for a custom indexer for ke_seach,
* a faceted search extension for TYPO3.
* Please use it as a kickstarter for your own extensions.
* It implements a simple indexer for tt_products (although
* there's already one implemented in ke_search itself).
* And it shows how to add more information to your result list,
* in this case images to ext:tt_products and ext:news results.
***************************************************************/

class user_kesearchhooks {

var $imageSize = array('width' => 150, 'height' => 150);

/**
* add marker to search results
* display first image from tt_products search results
* image will be added to the marker ###TEASER###
* (you may add your own marker to the template and change that)
* You may set the image width in the typoscript template like this:
* ke_search_hooks.newsImageWidth = 100
*
* @param array $tempMarkerArray
* @param array $row
* @param tx_kesearch_lib $pObj
*/
public function additionalResultMarker(array &$tempMarkerArray, array $row, tx_kesearch_lib $pObj) {
$this->pObj = $pObj;

// display tt_product image (ext:news with FAL)
// get the image from the news entry and add it to the teaser
if ($row['type'] == 'tt_products') {
$tempMarkerArray['teaser'] = $this->getImage($row['orig_uid'], 'tt_products', 'image_uid') . $tempMarkerArray['teaser'];
}
}

/*
* get fal media file
* @param int $newsUid
* @param string $tablenames
* @return string $file / empty
*/
protected function getImage($newsUid, $tablenames, $fieldname) {
$fields = 'identifier,alternative';
$table = 'sys_file_reference, sys_file';
$where = 'tablenames = "' . $tablenames . '"';
$where .= ' AND fieldname = "' . $fieldname . '"';
$where .= ' AND uid_foreign = ' . intval($newsUid);
$where .= ' AND uid_local = sys_file.uid';
$where .= $this->pObj->cObj->enableFields('sys_file_reference');
$where .= $this->pObj->cObj->enableFields('sys_file');
$groupBy = '';
$orderBy = '';
$limit = 1;
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($fields, $table, $where, $groupBy, $orderBy, $limit);

if ($GLOBALS['TYPO3_DB']->sql_num_rows($res)) {
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
return $this->renderImage($row['identifier'], $row['alternative']);
} else {
return '';
}
}

/**
* render the image tag
*
* @param string $imagePath
* @return string
*/
protected function renderImage($imagePath, $altText = '') {
if ($imagePath != '') {
$myCObj = new tslib_cObj();

$imgTSConfig['file'] = 'fileadmin' . $imagePath;
$imgTSConfig['file.']['maxW'] = $this->imageSize['width'];
$imgTSConfig['file.']['maxH'] = $this->imageSize['height'];
$imgTSConfig['altText'] = $altText;

$imageCode = '<div class="ke_search_image">'.$myCObj->IMAGE($imgTSConfig).'</div>';

return $imageCode;
}
}

function registerIndexerConfiguration(&$params, $pObj) {
// add item to "type" field
$newArray = array(
'Product indexer',
'tt_products',
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('ke_search_hooks') . 'customnews-indexer-icon.gif'
);
$params['items'][] = $newArray;
// enable "sysfolder" field
$GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['sysfolder']['displayCond'] .= ',tt_products';
}
/**
* Custom indexer for ke_search
*
* @param array $indexerConfig Configuration from TYPO3 Backend
* @param array $indexerObject Reference to indexer class.
* @return string Output.
* @author Christian Buelter <buelter@kennziffer.com>
* @since Fri Jan 07 2011 16:01:51 GMT+0100
*/
public function customIndexer(&$indexerConfig, &$indexerObject) {
if($indexerConfig['type'] == 'tt_products') {

$content = '';
// get all the entries to index
// don't index hidden or deleted elements, BUT
// get the elements with frontend user group access restrictions
// or time (start / stop) restrictions.
// Copy those restrictions to the index.
$fields = '*';
$table = 'tt_products';
$where = 'hidden = 0 AND deleted = 0';
$groupBy = '';
$orderBy = '';
$limit = '';
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($fields,$table,$where,$groupBy,$orderBy,$limit);
$resCount = $GLOBALS['TYPO3_DB']->sql_num_rows($res);
// Loop through the records and write them to the index.
if($resCount) {
while ( ($record = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) ) {
// compile the information which should go into the index
// the field names depend on the table you want to index!
$title = strip_tags($record['title']);
$subtitle = strip_tags($record['subtitle']);
$price = strip_tags($record['price']);
$price_secondary = strip_tags($record['price2']);
$keyword = strip_tags($record['keyword']);
$note = strip_tags($record['note']);
$note_secondary = strip_tags($record['note2']);
$fullContent = $title . "<br />" . $subtitle . "<br />Preis: " . $price . ", " . $price_secondary . "<br />" . $keyword . "<br />" . $note . "<br />" . $note_secondary;

$field_article = '*';
$table_article = 'tt_products_articles LEFT JOIN tt_products_products_mm_articles ON tt_products_articles.uid = tt_products_products_mm_articles.uid_foreign';
$where_artcile = 'tt_products_products_mm_articles.uid_local = "'.$record['uid'].'" AND tt_products_articles.hidden = 0 AND tt_products_articles.deleted = 0';
$groupBy = '';
$orderBy = '';
$limit = '';
$article_res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($field_article,$table_article,$where_artcile,$groupBy,$orderBy,$limit);
$article_count = $GLOBALS['TYPO3_DB']->sql_num_rows($article_res);

if($article_count){
while(($record_article = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($article_res))){
$title = strip_tags($record_article['title']);
$subtitle = strip_tags($record_article['subtitle']);
$price = strip_tags($record_article['price']);
$price_secondary = strip_tags($record_article['price2']);
$keyword = strip_tags($record_article['keyword']);
$note = strip_tags($record_article['note']);
$note_secondary = strip_tags($record_article['note2']);
$item_number = strip_tags($record_article['itemnumber']);
$fullContent .= "<br />" . $title . " " . $subtitle . " Preis: " . $price . ", " . $price_secondary . " " . $keyword . " " . $note . $note_secondary . "<br />" . $item_number;
}
}

$params = '&tt_products[product]=' . $record['uid'];

$tags = '';
$additionalFields = array(
'sortdate' => $record['crdate'],
'orig_uid' => $record['uid'],
'orig_pid' => $record['pid'],
'sortdate' => $record['datetime'],
);
// add something to the title, just to identify the entries
// in the frontend
$title = $title;
// ... and store the information in the index
$indexerObject->storeInIndex(
$indexerConfig['storagepid'], // storage PID
$title, // record title
'tt_products', // content type
$indexerConfig['targetpid'], // target PID: where is the single view?
$fullContent, // indexed content, includes the title (linebreak after title)
$tags, // tags for faceted search
$params, // typolink params for singleview
$subtitle, // abstract; shown in result list if not empty
$record['sys_language_uid'], // language uid
$record['starttime'], // starttime
$record['endtime'], // endtime
$record['fe_group'], // fe_group
false, // debug only?
$additionalFields // additionalFields
);

}
$content = '<p><b>Custom Indexer "' . $indexerConfig['title'] . '": ' . $resCount . 'Elements have been indexed.<b></p>';
}
return $content;
}
}
}
?>
Jörg, 26-09-17 16:11
Hallo,
gibt es schon eine aktuelle Premium-Version für TYPO3 8.7 LTS?
Christian, 26-09-17 16:29
Hallo Jörg, nein derzeit noch nicht.
Sebastian Haak, 27-09-17 17:23
Bis wann ist denn mit der 8.7 kompatiblen Premium Version zu rechnen?
Andy, 21-10-17 10:04
Hallo,
Wir sind auch kurz davor die Premium zu kaufen. Wie verhält es sich mit Updates, wenn z.B. eine Version für 8.7 dann erscheint? Sind die kostenlos erhältlich? Gleiche Frage für Minor-/Sicherheitsupdates / Bugfixes
Christian, 25-10-17 14:50
Hallo Andy,
Updates sind sechs Monate nach Kauf kostenlos. Das umfasst auch Versionen, die für 8.7 kompatibel sind, wenn die gekaufte Version für 7.6 kompatibel war.

Kommentar hinzufügen

* - Pflichtfeld

Teilen

Ihr Ansprechpartner für ke_search

* Pflichtfelder
zurück zum Kontakt
 

TYPO3 Agentur aus Leidenschaft. Wir erbringen alle Dienstleistungen rund um TYPO3. Von einfachen Webseiten bis hin zu TYPO3 Portal-Webseiten oder hoch komplexen TYPO3-Extensions. Wir engagieren uns im TYPO3 Security Board und in der Community. Unsere TYPO3 Agentur "lebt" TYPO3.