Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Individuelle Title-Tags in den Datenbank erzeugten Links

    Riverside

    • Neu im Forum
    • Beiträge: 33
    Beim optimieren des Onlineshops fallen einem immer kleine Dinge auf die man gerne ändern möchte weil sie einen persönlich stören oder weil man sich eine Verbesserungen für den Kunden (Shop-Kunde) bzw. das Suchmaschinen-Ranking wünscht. Oftmals ist auch beides der Grund.
    Bei der folgenden Bastelei haben mich die nicht vorhanden Title-Tags (title="") in den vom Onlineshop erzeugten Links geärgert. Standart-Technisch (mit SEO_URLS, ohne Klassen etc.) sehen die Links aus der Datenbank wie folgt aus:

    Code: PHP  [Auswählen]
    <a href="http://www.domain.com/de/impressum.html">Impressum</a>
    <a href="http://www.domain.com/de/agb.html">AGB</a>
    <a href="http://www.domain.com/de/nachrichten.html">Nachrichten</a>

    Mit etwas frickelei können die Title-Tags Shop-Intern erzeugt werden. Es kann aber nur die gleiche Bezeichnung wie der Title-Text verwendet werden (bzw. durch das native setzten von Wörtern kann der Text vergrößert werden, aber diese bleiben dann bei allen Links gleich).

    Code: PHP  [Auswählen]
    <a href="http://www.domain.com/de/impressum.html" title="Impressum">Impressum</a>
    <a href="http://www.domain.com/de/agb.html" title="AGB">AGB</a>
    <a href="http://www.domain.com/de/nachrichten.html" title="Nachrichten">Nachrichten</a>

    oder mit nativen Wörtern:

    Code: PHP  [Auswählen]
    <a href="http://www.domain.com/de/impressum.html" title="Informationen: Impressum">Impressum</a>
    <a href="http://www.domain.com/de/agb.html" title="Informationen: AGB">AGB</a>
    <a href="http://www.domain.com/de/nachrichten.html" title="Informationen: Nachrichten">Nachrichten</a>

    Der Sinn meiner Erweiterung besteht darin eine individuelle Title-Tag-Beschreibung zu erzeugen. Die zum Einen für den Kunden eine Bereicherung (Title-Tag wird vor dem öffnen angezeigt, Lightboxen verwenden Title-Tag als Über- / Unterschrift, Title-Tag kann maschinell vorgelesen werden etc.) und zum Anderen für Suchmaschinen relevant sein soll. Da der Link besser, individuell nach eignem Geschmack, beschrieben werden kann. Etwa in dieser Form :

    Code: PHP  [Auswählen]
    <a href="http://www.domain.com/de/impressum.html" title="Impressum und Herkunftsnachweise">Impressum</a>
    <a href="http://www.domain.com/de/agb.html" title="Unsere allgemeinen Geschäftsbedingungen">AGB</a>
    <a href="http://www.domain.com/de/nachrichten.html" title="Die neusten Nachrichten vom www.domain.com">Nachrichten</a>

    Als kleinen Vorgeschmack und zu Test, ob überhaupt „Bedarf“ besteht, werde ich in dieser Anleitung nur das Erzeugen von Title-Tags beschreiben die in den Content- und Information-Boxen vorkommen. Bei „Bedarf“ werde ich die Anleitung dann nach und nach erweitern (Kategorien, Artikel, Produkt-Bilder etc.). Ich bin selber noch in der Entwicklung…

    Zuerst erzeugen wir eine neue Spalte, mit dem Namen „content_link_title“ in der Tabelle „content_manager“. Es können die gleichen Einstellung verwendet werden wie bei den bereits vorhandenen Spalten „content_meta_title“, „content_meta_description“ oder  „content_meta_keywords“.

    Als nächstes bearbeiten wir die: admin/content_manager.php

    Suchen nach folgendem Abschnitt:

    Code: PHP  [Auswählen]
        $group_ids = $group_ids;
        $sort_order=xtc_db_prepare_input($_POST['sort_order']);
        $content_meta_title = xtc_db_prepare_input($_POST['cont_meta_title']);
        $content_meta_description = xtc_db_prepare_input($_POST['cont_meta_description']);
        $content_meta_keywords = xtc_db_prepare_input($_POST['cont_meta_keywords']);

    und folgende Zeile anhängen:

    Code: PHP  [Auswählen]
        $content_link_title = xtc_db_prepare_input($_POST['cont_link_title']);

    weiter nach folgender Zeile suchen:

    Code: PHP  [Auswählen]
          $sql_data_array = array(
                                'languages_id' => $content_language,
                                'content_title' => $content_title,
                                'content_heading' => $content_header,
                                'content_text' => $content_text,
                                'content_file' => $content_file_name,
                                'content_status' => $content_status,
                                'parent_id' => $parent_id,
                                'group_ids' => $group_ids,
                                'content_group' => $group_id,
                                'sort_order' => $sort_order,
                                'file_flag' => $file_flag,
                                'content_meta_title' => $content_meta_title,
                                'content_meta_description' => $content_meta_description,
                                'content_meta_keywords' => $content_meta_keywords);

    und diese durch folgende ersetzen:

    Code: PHP  [Auswählen]
          $sql_data_array = array(
                                'languages_id' => $content_language,
                                'content_title' => $content_title,
                                'content_heading' => $content_header,
                                'content_text' => $content_text,
                                'content_file' => $content_file_name,
                                'content_status' => $content_status,
                                'parent_id' => $parent_id,
                                'group_ids' => $group_ids,
                                'content_group' => $group_id,
                                'sort_order' => $sort_order,
                                'file_flag' => $file_flag,
                                'content_meta_title' => $content_meta_title,
                                'content_meta_description' => $content_meta_description,
                                'content_meta_keywords' => $content_meta_keywords,                                                 
                                'content_link_title' => $content_link_title);

    weiter nach folgender Zeile suchen:

    Code: PHP  [Auswählen]
                                $content_query=xtc_db_query("SELECT
                                                                    content_id,
                                                                    categories_id,
                                                                    parent_id,
                                                                    group_ids,
                                                                    languages_id,
                                                                    content_title,
                                                                    content_heading,
                                                                    content_text,
                                                                    sort_order,
                                                                    file_flag,
                                                                    content_file,
                                                                    content_status,
                                                                    content_group,
                                                                    content_delete,
                                                                    content_meta_title,
                                                                    content_meta_description,
                                                                    content_meta_keywords
                                                               FROM "
    .TABLE_CONTENT_MANAGER."
                                                              WHERE languages_id='"
    .$languages[$i]['id']."'
                                                                AND parent_id='0'
                                                           ORDER BY content_group,sort_order
                                                             "
    );
                                while ($content_data=xtc_db_fetch_array($content_query)) {
                                  $content[]=array(
                                                   'CONTENT_ID' =>$content_data['content_id'] ,
                                                   'PARENT_ID' => $content_data['parent_id'],
                                                   'GROUP_IDS' => $content_data['group_ids'],
                                                   'LANGUAGES_ID' => $content_data['languages_id'],
                                                   'CONTENT_TITLE' => $content_data['content_title'],
                                                   'CONTENT_HEADING' => $content_data['content_heading'],
                                                   'CONTENT_TEXT' => $content_data['content_text'],
                                                   'SORT_ORDER' => $content_data['sort_order'],
                                                   'FILE_FLAG' => $content_data['file_flag'],
                                                   'CONTENT_FILE' => $content_data['content_file'],
                                                   'CONTENT_DELETE' => $content_data['content_delete'],
                                                   'CONTENT_GROUP' => $content_data['content_group'],
                                                   'CONTENT_STATUS' => $content_data['content_status'],
                                                   'CONTENT_META_TITLE' => $content_data['content_meta_title'],
                                                   'CONTENT_META_DESCRIPTION' => $content_data['content_meta_description'],
                                                   'CONTENT_META_KEYWORDS' => $content_data['content_meta_keywords']);

    und diese durch folgende ersetzen:

    Code: PHP  [Auswählen]
                                $content_query=xtc_db_query("SELECT
                                                                    content_id,
                                                                    categories_id,
                                                                    parent_id,
                                                                    group_ids,
                                                                    languages_id,
                                                                    content_title,
                                                                    content_heading,
                                                                    content_text,
                                                                    sort_order,
                                                                    file_flag,
                                                                    content_file,
                                                                    content_status,
                                                                    content_group,
                                                                    content_delete,
                                                                    content_meta_title,
                                                                    content_meta_description,
                                                                    content_meta_keywords,
                                                                    content_link_title
                                                               FROM "
    .TABLE_CONTENT_MANAGER."
                                                              WHERE languages_id='"
    .$languages[$i]['id']."'
                                                                AND parent_id='0'
                                                           ORDER BY content_group,sort_order
                                                             "
    );
                                while ($content_data=xtc_db_fetch_array($content_query)) {
                                  $content[]=array(
                                                   'CONTENT_ID' =>$content_data['content_id'] ,
                                                   'PARENT_ID' => $content_data['parent_id'],
                                                   'GROUP_IDS' => $content_data['group_ids'],
                                                   'LANGUAGES_ID' => $content_data['languages_id'],
                                                   'CONTENT_TITLE' => $content_data['content_title'],
                                                   'CONTENT_HEADING' => $content_data['content_heading'],
                                                   'CONTENT_TEXT' => $content_data['content_text'],
                                                   'SORT_ORDER' => $content_data['sort_order'],
                                                   'FILE_FLAG' => $content_data['file_flag'],
                                                   'CONTENT_FILE' => $content_data['content_file'],
                                                   'CONTENT_DELETE' => $content_data['content_delete'],
                                                   'CONTENT_GROUP' => $content_data['content_group'],
                                                   'CONTENT_STATUS' => $content_data['content_status'],
                                                   'CONTENT_META_TITLE' => $content_data['content_meta_title'],
                                                   'CONTENT_META_DESCRIPTION' => $content_data['content_meta_description'],
                                                   'CONTENT_META_KEYWORDS' => $content_data['content_meta_keywords'],
                                                   'CONTENT_LINK_TITLE' => $content_data['content_link_title']);   

    weiter nach folgender Zeile suchen:

    Code: PHP  [Auswählen]
                                        $content_1_query = xtc_db_query("SELECT
                                                                                content_id,
                                                                                categories_id,
                                                                                parent_id,
                                                                                group_ids,
                                                                                languages_id,
                                                                                content_title,
                                                                                content_heading,
                                                                                content_text,
                                                                                file_flag,
                                                                                content_file,
                                                                                content_status,
                                                                                content_delete,
                                                                                content_meta_title,
                                                                                content_meta_description,
                                                                                content_meta_keywords
                                                                           FROM "
    .TABLE_CONTENT_MANAGER."
                                                                          WHERE languages_id='"
    .$i."'
                                                                            AND parent_id='"
    .$content[$ii]['CONTENT_ID']."'
                                                                       ORDER BY content_group,sort_order
                                                                         "
    );
                                        while ($content_1_data=xtc_db_fetch_array($content_1_query)) {
                                          $content_1[]=array(
                                                             'CONTENT_ID' =>$content_1_data['content_id'] ,
                                                             'PARENT_ID' => $content_1_data['parent_id'],
                                                             'GROUP_IDS' => $content_1_data['group_ids'],
                                                             'LANGUAGES_ID' => $content_1_data['languages_id'],
                                                             'CONTENT_TITLE' => $content_1_data['content_title'],
                                                             'CONTENT_HEADING' => $content_1_data['content_heading'],
                                                             'CONTENT_TEXT' => $content_1_data['content_text'],
                                                             'SORT_ORDER' => $content_1_data['sort_order'],
                                                             'FILE_FLAG' => $content_1_data['file_flag'],
                                                             'CONTENT_FILE' => $content_1_data['content_file'],
                                                             'CONTENT_DELETE' => $content_1_data['content_delete'],
                                                             'CONTENT_STATUS' => $content_1_data['content_status'],
                                                             'CONTENT_META_TITLE' => $content_1_data['content_meta_title'],
                                                             'CONTENT_META_DESCRIPTION' => $content_1_data['content_meta_description'],
                                                             'CONTENT_META_KEYWORDS' => $content_1_data['content_meta_keywords']);

    und diese durch folgende ersetzen:

    Code: PHP  [Auswählen]
                                        $content_1_query = xtc_db_query("SELECT
                                                                                content_id,
                                                                                categories_id,
                                                                                parent_id,
                                                                                group_ids,
                                                                                languages_id,
                                                                                content_title,
                                                                                content_heading,
                                                                                content_text,
                                                                                file_flag,
                                                                                content_file,
                                                                                content_status,
                                                                                content_delete,
                                                                                content_meta_title,
                                                                                content_meta_description,
                                                                                content_meta_keywords,
                                                                                content_link_title
                                                                           FROM "
    .TABLE_CONTENT_MANAGER."
                                                                          WHERE languages_id='"
    .$i."'
                                                                            AND parent_id='"
    .$content[$ii]['CONTENT_ID']."'
                                                                       ORDER BY content_group,sort_order
                                                                         "
    );
                                        while ($content_1_data=xtc_db_fetch_array($content_1_query)) {
                                          $content_1[]=array(
                                                             'CONTENT_ID' =>$content_1_data['content_id'] ,
                                                             'PARENT_ID' => $content_1_data['parent_id'],
                                                             'GROUP_IDS' => $content_1_data['group_ids'],
                                                             'LANGUAGES_ID' => $content_1_data['languages_id'],
                                                             'CONTENT_TITLE' => $content_1_data['content_title'],
                                                             'CONTENT_HEADING' => $content_1_data['content_heading'],
                                                             'CONTENT_TEXT' => $content_1_data['content_text'],
                                                             'SORT_ORDER' => $content_1_data['sort_order'],
                                                             'FILE_FLAG' => $content_1_data['file_flag'],
                                                             'CONTENT_FILE' => $content_1_data['content_file'],
                                                             'CONTENT_DELETE' => $content_1_data['content_delete'],
                                                             'CONTENT_STATUS' => $content_1_data['content_status'],
                                                             'CONTENT_META_TITLE' => $content_1_data['content_meta_title'],
                                                             'CONTENT_META_DESCRIPTION' => $content_1_data['content_meta_description'],
                                                             'CONTENT_META_KEYWORDS' => $content_1_data['content_meta_keywords'],
                                                             'CONTENT_LINK_TITLE' => $content_1_data['content_link_title'],);

    weiter nach folgender Zeile suchen:

    Code: PHP  [Auswählen]
                                    $content_query=xtc_db_query("SELECT
                                                                        content_id,
                                                                        categories_id,
                                                                        parent_id,
                                                                        group_ids,
                                                                        languages_id,
                                                                        content_title,
                                                                        content_heading,
                                                                        content_text,
                                                                        sort_order,
                                                                        file_flag,
                                                                        content_file,
                                                                        content_status,
                                                                        content_group,
                                                                        content_delete,
                                                                        content_meta_title,
                                                                        content_meta_description,
                                                                        content_meta_keywords
                                                                   FROM "
    .TABLE_CONTENT_MANAGER."
                                                                  WHERE content_id='"
    .$g_coID."'");
                                    $content=xtc_db_fetch_array($content_query);

    und diese durch folgende ersetzen:

    Code: PHP  [Auswählen]
                                    $content_query=xtc_db_query("SELECT
                                                                        content_id,
                                                                        categories_id,
                                                                        parent_id,
                                                                        group_ids,
                                                                        languages_id,
                                                                        content_title,
                                                                        content_heading,
                                                                        content_text,
                                                                        sort_order,
                                                                        file_flag,
                                                                        content_file,
                                                                        content_status,
                                                                        content_group,
                                                                        content_delete,
                                                                        content_meta_title,
                                                                        content_meta_description,
                                                                        content_meta_keywords,
                                                                        content_link_title
                                                                   FROM "
    .TABLE_CONTENT_MANAGER."
                                                                  WHERE content_id='"
    .$g_coID."'");
                                    $content=xtc_db_fetch_array($content_query);

    als letztes in dieser Datei suchen wir folgenden Abschnitt:

     
    Code: PHP  [Auswählen]
                                     <tr>
                                        <td width="10%"><?php echo 'Meta Keywords'; ?></td>
                                        <td width="90%"><?php echo xtc_draw_input_field('cont_meta_keywords',isset($content['content_meta_keywords'])?$content['content_meta_keywords']:'','size="60"'); ?></td>
                                      </tr>

    danach bitte folgende Zeile einfügen:

    Code: PHP  [Auswählen]
                                      <tr>
                                        <td width="10%">Link Title-Tag</td>
                                        <td width="90%"><?php echo xtc_draw_input_field('cont_link_title',isset($content['content_link_title'])?$content['content_link_title']:'','size="60"'); ?></td>
                                      </tr>

    Weiter geht es anschließend in der Datei: templates/xxx/source/boxes/content.php

    folgenden Abschnitt suchen:

    Code: PHP  [Auswählen]
            $content_query = "SELECT
                                                    content_id,
                                                    categories_id,
                                                    parent_id,
                                                    content_title,
                                                    content_group,
                                                    FROM "
    .TABLE_CONTENT_MANAGER."
                                                    WHERE languages_id='"
    .(int) $_SESSION['languages_id']."'
                                                    and file_flag=1 "
    .$group_check." and content_status=1 order by sort_order";

            $content_query = xtDBquery($content_query);

            $content_string='<ul>' . "\n";
            while ($content_data = xtc_db_fetch_array($content_query, true)) {
                    $SEF_parameter = '';
                    if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
                            $SEF_parameter = '&content='.xtc_cleanName($content_data['content_title']);

                    $content_string .= '     <li><a href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">'.$content_data['content_title'].'</a></li>' . "\n";
            }

    und durch diesen ersetzten:

    Code: PHP  [Auswählen]
            $content_query = "SELECT
                                                    content_id,
                                                    categories_id,
                                                    parent_id,
                                                    content_title,
                                                    content_group,
                                                    content_link_title
                                                    FROM "
    .TABLE_CONTENT_MANAGER."
                                                    WHERE languages_id='"
    .(int) $_SESSION['languages_id']."'
                                                    and file_flag=1 "
    .$group_check." and content_status=1 order by sort_order";

            $content_query = xtDBquery($content_query);

            $content_string='<ul>' . "\n";
            while ($content_data = xtc_db_fetch_array($content_query, true)) {
                    $SEF_parameter = '';
                    if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
                            $SEF_parameter = '&content='.xtc_cleanName($content_data['content_title']);

                    $content_string .= '     <li><a title="'.$content_data['content_link_title'].'" href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">'.$content_data['content_title'].'</a></li>' . "\n";
            }

    Der Platz reicht nicht! Gleich gehtsweiter:


    Linkback: https://www.modified-shop.org/forum/index.php?topic=29354.0
    Shop Hosting

    Riverside

    • Neu im Forum
    • Beiträge: 33
    Re: Individuelle Title-Tags in den Datenbank erzeugten Links
    Antwort #1 am: 15. Februar 2014, 12:43:25
    Um die Title-Tags auch n der Information-Box an zu zeigen, bitte folgende Datei bearbeiten: templates/xxx/source/boxes/information.php

    folgenden Abschnitt suchen:

    Code: PHP  [Auswählen]
            $content_query = "SELECT
                                                    content_id,
                                                    categories_id,
                                                    parent_id,
                                                    content_title,
                                                    content_group,
                                                    content_link_title
                                                    FROM "
    .TABLE_CONTENT_MANAGER."
                                                    WHERE languages_id='"
    .(int) $_SESSION['languages_id']."'
                                                    and file_flag=0 "
    .$group_check." and content_status=1 order by sort_order";

            $content_query = xtDBquery($content_query);

            $content_string=' <ul>' . "\n";
            while ($content_data = xtc_db_fetch_array($content_query, true)) {
                    $SEF_parameter = '';
                    if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
                            $SEF_parameter = '&product='.xtc_cleanName($content_data['content_title']);

                    $content_string .= '     <li><a href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">'.$content_data['content_title'].'</a></li>' . "\n";
            }

    und durch diesen ersetzten:

    Code: PHP  [Auswählen]
            $content_query = "SELECT
                                                    content_id,
                                                    categories_id,
                                                    parent_id,
                                                    content_title,
                                                    content_group,
                                                    content_link_title
                                                    FROM "
    .TABLE_CONTENT_MANAGER."
                                                    WHERE languages_id='"
    .(int) $_SESSION['languages_id']."'
                                                    and file_flag=0 "
    .$group_check." and content_status=1 order by sort_order";

            $content_query = xtDBquery($content_query);

            $content_string=' <ul>' . "\n";
            while ($content_data = xtc_db_fetch_array($content_query, true)) {
                    $SEF_parameter = '';
                    if (SEARCH_ENGINE_FRIENDLY_URLS == 'true')
                            $SEF_parameter = '&product='.xtc_cleanName($content_data['content_title']);

                    $content_string .= '     <li><a title="'.$content_data['content_link_title'].'" href="'.xtc_href_link(FILENAME_CONTENT, 'coID='.$content_data['content_group'].$SEF_parameter).'">'.$content_data['content_title'].'</a></li>' . "\n";
            }

    Ich hoffe ich habe keine weitere Änderung vergessen? Falls doch dann bitte einfach Bescheid geben.

    Gruß Riverside

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Individuelle Title-Tags in den Datenbank erzeugten Links
    Antwort #2 am: 11. Dezember 2014, 23:43:40
    Hallo Riverside,

    erst mal wow! Wahnsinns Arbeit! Wollte mir das gerade für meinen v1.06 rev 4642 SP2 nachbauen. Du must da eine andere Shopversion haben. In der templates/xxx/source/boxes/content.php ist mir in der von Dir angegebenen Zeile 14 dieser Codeschnipsel aufgefallen:
    Code: PHP  [Auswählen]
    $content_string=' <ul>' . "\n";
    In meiner Originaldatei sieht dieser Stelle aber so aus:
    Code: PHP  [Auswählen]
    $content_string='<ul class="contentlist">';
    Kann ich trotzdem Deinen Ersetz-Code so verwenden? Oder zerschieße ich mir dann etwas? Ist das in der aktuellen mod. Version evtl. anders geregelt? Fakt ist, ich muß in die horizontale Navigation (unter dem header) neben den vorgegebenen Textlinks Startseite/Warenkorb/Mein Konto/Kasse/Abmelden, auch v.a. Impressum aber auch AGB evtl. noch WRE/WRF verlinken. Leider ist für einen Besteller nach der Anmeldung im aktuellen mod keine entsprechenden Links mehr vorhanden - auch nicht zum Impressum!! Die linke und rechte Spalte verschwinden ja! Das scheint noch niemandem aufgefallen zu sein. Die Gesetzeslage dazu ist glaube ich klar. Na ja, lange Rede kurze Sinn - ich brauche da die entsprechenden Links rein! Geht das evtl. auch einfacher??

    Gruß vom WeXsler
    Managed Server
    3 Antworten
    3557 Aufrufe
    27. Oktober 2014, 12:59:05 von noRiddle (revilonetz)
    7 Antworten
    4229 Aufrufe
    05. März 2012, 21:22:29 von Liezeu
    1 Antworten
    2008 Aufrufe
    14. Juni 2013, 04:15:32 von MarcusS81
               
    anything