[Gelöst] CompanyDirectory -> Nur Link zu einem Eintrag generieren

Hilfe zu Modulen und Tags
Post Reply
User avatar
antiheld2000
Forum Members
Forum Members
Posts: 236
Joined: Thu Jan 31, 2008 9:23 am

[Gelöst] CompanyDirectory -> Nur Link zu einem Eintrag generieren

Post by antiheld2000 »

Hi,

ich möchte gerne den Link zu einem spezifischen Eintrag im Companydirectoy Modul generieren lassen. Also quasi so:
{CompanyDirectory action="default" companyid="1"} und dann ein summarytemplate, welches nur den Link anzeigt. Leider ist dies in der derzeitigen Version nicht möglich.

Aus diesem Grunde hab ich mich dazu entschieden, die action.default.php zu bearbeiten. Leider erfolglos. Ich denke aber der Ansatz ist nicht so verkehrt. Zuerst habe ich folgendes eingefügt:

Code: Select all

if( isset($params['companyid']) && $params['companyid'] != 0 )
  {
	  $singlelink = true;
	  $companyid = $params['companyid'];
  }
Hiermit registriere ich den Parameter… Nun habe ich mir gedacht, ich schraube simpel an den MySQL-Querys rum. Jedoch erzielte ich keinen Erfolg. Ich dachte, es würde reichen, aus dieser Zeile

Code: Select all

if ( isset($categoryid) && $categoryid != '')
 dies zu machen:

Code: Select all

if ($singlelink == true) 
{
  $where[] = 'cc.company_id = '.$companyid;
}
else if ( isset($categoryid) && $categoryid != '')
Nu leider habe ich damit keinen Erfolg. Hat jemand einen Tipp für mich?

Dank und Gruß
anti
Last edited by antiheld2000 on Tue Mar 09, 2010 12:06 pm, edited 1 time in total.
NaN

Re: CompanyDirectory -> Nur Link zu einem Eintrag generieren

Post by NaN »

Ist eigentlich alles richtig so.
Nur ein kleiner Fehler bei der DB Abfrage.
Das hier ist falsch:

Code: Select all


if ($singlelink == true) 
{
  $where[] = 'cc.company_id = '.$companyid;
}

cc.company_id existiert hier einfach nicht.
Weil die Verknüpfung mit der CompanyCategories Tabelle nur hergestellt wird, wenn eine Kategorie angegeben ist.
Das INNER JOIN kommt ja nur dann, wenn isset($categoryid) && $categoryid != '' bzw isset($category) && $category != '') erfüllt ist.
Also entweder einfach nur ein c weniger und nicht company_id sondern einfach nur id, aber dafür dann das ELSE weglassen:

Code: Select all


if ($singlelink == true) 
{
  $where[] = 'c.id = ?';
  $paramarray[] = $companyid;
}

oder die Verknüpfung aus dem ELSE mit in Deine if-Abfrage übernehmen:

Code: Select all


if ($singlelink == true) 
{
  $str = " INNER JOIN ".cms_db_prefix()."module_compdir_company_categories cc ON cc.company_id = c.id";
  $query .= $str;
  $query2 .= $str;
  $where[] = 'cc.company_id = ?';
  $paramarray[] = $companyid;
}

Sollte eigentlich schon alles gewesen sein.
Die Erste Variante dürfte etwas parformanter sein, da die Verknüpfung mit der CompanyCatagories Tabelle wegfällt. Sollte bei einer einzigen ganz bestimmten Company eigentlich sowieso nicht nötig sein.
(Habs allerdings noch nicht ausprobiert)
User avatar
antiheld2000
Forum Members
Forum Members
Posts: 236
Joined: Thu Jan 31, 2008 9:23 am

Re: CompanyDirectory -> Nur Link zu einem Eintrag generieren

Post by antiheld2000 »

supercool! damit hast du mir sehr geholfen! danke!
Post Reply

Return to “Module und Tags”