+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Drucken für eigene Komponente

  1. #1
    Verbringt hier viel Zeit Avatar von Sentry
    Registriert seit
    29.11.2005
    Beiträge
    748
    Bedankte sich
    24
    Erhielt 158 Danksagungen
    in 149 Beiträgen

    Standard Drucken für eigene Komponente

    Hallo zusammen.
    Ich bau grad ein wenig an meiner Komponente weiter. Nun will ich seit geraumer Zeit die Drucken Funktion nutzen. Habe diesen Beitrag gefunden (siehe unten). Scheinbar hat es jemand gelöst nur Funktioniert seine Lösung bei mir nicht. Ausserdem erscheint mir der Code fehlerhaft. Bitte um Hilfe bei dem Problem bzw. beim Bugfixing/Erklärung des scheinbar funktionierenden Codes. Hier der Link:

    http://www.joomlaportal.de/geloeste-...ponente-2.html


    Vielen Dank im Vorraus. Ich würde mich echt über Antworten freuen, da ich schon mehrere Monate an der Funktion hänge und sie nicht zum laufen bekomme. Ausserdem veröffentliche ich meine Komponente für alle wenn sie denn fertig ist.
    Herausforderungen sind dazu da um an ihnen zu wachsen.
    Problem gelöst? Dann markiere den Thread mit GELÖST!

  2. #2
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Test das mal.

    Das kann man natürlich noch beliebig ausbauen, aber vom Prinzip ist das schon alles.
    PHP-Code:
    /**
     * Gibt den Drucklink für die aktuelle Seite zurück.<br />
     * @param string $content Ausgabe im Link (HTML erlaubt).
     * @param array $attribs Attribute für die HTML Ausgabe des Links.
     * @return string $printLink Drucklink im HTML Konstrukt.
     */
    function getPrintLink($content='print',$attribs=array())
    {
        global 
    $mosConfig_live_site;

        
    $query mosGetParam($_SERVER'QUERY_STRING''');
        
    $resource ampReplace($mosConfig_live_site.'/index2.php?'.$query.'&pop=1');
        
    $printLink =  '<a href="javascript:void(0)" onclick="window.open(\''.$resource.'\',\'win2\',\'status=no,toolbar=no,scrollbars=yes,titlebar=yes,menubar=yes,resizable=no,width=640,height=480,directories=no,location=no\');"'.attribsToString($attribs).'>'.$content.'</a>';

        return 
    $printLink;
    }
    //------------------
    //hat mit dem Drucklink eigentlich nicht mehr zu tun, verarbeitet nur die Attribute.
    function attribsToString($attribs)
    {
       
    $return '';
       if(
    count($attribs))
       {
            foreach(
    $attribs as $name => $value)
            {
                     
    $return .= ' 'trim(htmlspecialchars(strip_tags($name))).'="'.trim(htmlspecialchars(strip_tags($value))).'"'
            }
       }
       return 
    $return;

    Beispiel:
    PHP-Code:
    $printLink getPrintLink('Seite Drucken', array('class' => 'print''title' => 'Drucklink'));
    echo 
    $printLink
    Gruß
    ec

  3. Erhielt Danksagungen von:


  4. #3
    Verbringt hier viel Zeit Avatar von Sentry
    Registriert seit
    29.11.2005
    Beiträge
    748
    Bedankte sich
    24
    Erhielt 158 Danksagungen
    in 149 Beiträgen

    Standard

    Danke Ecomeback, ist aber ein selbstgemachtes Script oder?

    Mit Joomla geht es folgendermaßen (endlich hab ichs geschafft)

    Hiermit wird die Druckfunktion konfiguriert:
    PHP-Code:
    $popup intvalmosGetParam$_REQUEST'popup') );
    $params = new mosParameters'' );

    // if set to 0, there won't be a print icon at all
    $params->set'print''1' ); 

    // set to 0 to use text instead of icon.
    $params->set'icons''1' ); 

    // if set to 1, this will invoke the browser's print function.
    $params->set'popup'$popup ); 

    $print_link $mosConfig_live_site'/index2.php?option=com_DEINECOMPONENTE&DEINECOMPONENTENPARAMETER&Itemid='$Itemid .'&popup=1'
    Bei $print_link folgendes beachten:
    option=com_DEINECOMPONENTE hier musst du deinen Componentennamen angeben
    &DEINECOMPONENTENPARAMETER an der Stelle kannst du alle deine Komponentenparamter angeben z.B. &task=view oder so

    Hiermit wird der Druckbutton ausgegeben:
    PHP-Code:
    mosHTML::printIcon$row$params$hide_js$print_link ); 
    Herausforderungen sind dazu da um an ihnen zu wachsen.
    Problem gelöst? Dann markiere den Thread mit GELÖST!

  5. #4
    Kommt häufiger vorbei
    Registriert seit
    26.04.2006
    Beiträge
    360
    Bedankte sich
    23
    Erhielt 9 Danksagungen
    in 7 Beiträgen

    Standard

    Hallo,
    ich klinke mich hier mal ein, das sieht vielversprechend aus. Ich suche in einem anderen Thread eine Druckfunktion für Virtuemart. Eigentlich nur für die Detailseite.

    Wie kann ich nun das Beispiel hier bei mir integrieren. Das habe ich so nicht verstanden.
    Code In die entsprechende Detailseite einbauen (flypage.php) funktioniert nicht.
    Womöglich mache ich als PHP unkundiger einfach nur einen Fehler.

    Würde mich über Lösungsvorschlag sehr freuen.
    Gruß
    Frank

  6. #5
    Gehört zum Inventar
    Registriert seit
    18.02.2005
    Beiträge
    8.841
    Bedankte sich
    85
    Erhielt 2.269 Danksagungen
    in 1.936 Beiträgen

    Standard

    Beschreibe und zeige doch mal was du gemacht hast.

    Grüße
    ec

  7. #6
    Kommt häufiger vorbei
    Registriert seit
    26.04.2006
    Beiträge
    360
    Bedankte sich
    23
    Erhielt 9 Danksagungen
    in 7 Beiträgen

    Standard

    Hallo.
    Also probiert habe ich es noch nicht. Aber so wie die flypage.php aussieht, kann ich mir nicht vorstellen, das der Code für die Druckfunktion dort einfach reinkopiert werden kann und funktioniert. Dessen bin ich mir trotz meiner recht geringen PHP-Kenntnisse fast sicher. Ich lasse mich aber gerne eines Besseren belehren.

    Diese Datei enthält aber die Daten die ich später ausdrucken möchte und das ist eben mein Problem. Wo packe ich den Druck-Code hinein?

    Die flypage.php ist nur eine einfache Template-Datei in Virtuemart und sieht so aus:

    Code:
    <br/><br/><br/>
    
    <table border="0" style="width: 100%;">
      <tbody>
        <tr> 
          <td width="21%" rowspan="6" align="center" valign="top" style="text-align:center;"> 
            <div align="center"> {product_image}<br>
              <br>
              {more_images} </div></td>
          <td rowspan="1" class="shoptable"> {product_name} {edit_link}</td>
        </tr>
        <tr> 
          <td rowspan="1" valign="top" class="border"> {product_description}<br/> 
            <span style="font-style: italic;">{file_list}</span></td>
        </tr>
        <tr>
          <td valign="top" class="shoptable">&nbsp;</td>
        </tr>
        <tr> 
          <td align="left" valign="top" class="price">{product_price}<br /> <br /></td>
        </tr>
        <tr> 
          <td align="left" valign="top" class="price">{product_packaging}</td>
        </tr>
        <tr style="font-style: italic;"> 
          <td rowspan="1">&nbsp;</td>
        </tr>
        <tr> 
          <td>{product_availability}<br /></td>
          <td><br />
            {addtocart}</td>
        </tr>
        <tr> 
          <td colspan="2">{product_type}</td>
        </tr>
        <tr> 
          <td colspan="2">{product_reviews}</td>
        </tr>
        <tr> 
          <td colspan="2">{product_reviewform}<br /></td>
        </tr>
        <tr> 
          <td colspan="2">{related_products}<br /></td>
        </tr>
        <tr> 
          <td colspan="2"><div style="text-align: center;"><br />
            </div>
            <br /></td>
        </tr>
      </tbody>
    </table>
    {navigation_childlist}<br style="clear:both"/>

    Gruß
    Frank

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein