hmm... die Ursache liegt offenbar ganz woanders...
... liegt glaube nicht direkt an deinem plugin...
Beiträge von LJay
-
-
hmmm da hab ich nun nen Bug gefunden.
Beispiel bei dem es nen Bug gibt.
Kategorien:
"kat1" -> "news""kat2" -> "news"
------
Wie ich gerade feststellen musste, kann man im WP mehrere Kategorien anlegen, die den gleichen Namen und damit auch den gleichen "nicename" (Form) besitzen anlegen.
Arbeitet man nun mit Permalinks, wo die nicenames in der URL ausgegeben werden, ist eine eindeutige Identifizierung der Kategorien nicht möglich!
Wie kann ich also verhindern, das im Adminbereich eine Kategorie den gleichen nicename wie eine andere erhalten kann?
Gibts dazu bereits PlugIns?
Es soll dabei ohne direktes Eingreifen des Admins (Form/nicename) von Hand eindeutig gestalten, erfolgen.
Beispiel:
Kat1 hat 2 Subcats. "News" und "News".
Lege ich die via Adminpanel an, besitzen bei den gleichen nicename.
Bei der Ausgabe im Frontend gibt es nun 2 Links die beide
domain.tld/kat1/news & domain.tld/kat1/news lauten.
WP würde in diesem Fall immer die Kategorie auslesen, die beim query der Tabelle als erstes ausgeben wird. Es wäre also nicht möglich in die 2. zu switchen.Sicherlich wird es kaum vorkommen, das man zwei gleichnamige Kats in einer Hauptkat. hat, aber wenn wir z.B. News in zwei verschiedenen Hauptcats haben!
Mit der Abfrage in deinem PlugIn
PHP$cid = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$cat_nicename'");...wird somit immer das erste zurückgegeben record benutzt.
Habe ich in der DB-Tabelle aber mehr als eine Kat mit dem gleichen "nicename" verfälscht das die Ausgabe. -
Hi.
Ich nehme an du willst "posts" bewerten lassen?
Dazu sollte es sicherlich bereits PlugIns geben.Würde ich die Zeit haben, würde ich das sogar coden. Leider haben meine aktuellen Aufträge aber Vorrang.
Wenn du fündig geworden bist, sag hier bitte mal bescheid, ich interessiere mich auch für ein posts Bewertungssystem.
-
Aktuell wird davon ausgegangen das die Unterteilung des Contents mittels Kategorien dargestellt wird.
Beispiel für 3 Sprachen WP:
1. deutsch "de"
2. englisch "en"
3. französisch "fr"Anordnung der Kategorien muss demzufolge wie folgt aussehen:
cat_ID=1 -> "de" (parent=0)
[indent]cat_ID=4 -> "subcat1 von de" (parent=1)[/indent]
[indent]cat_ID=5 -> "subcat2 von de" (parent=1)[/indent]
[indent][indent]cat_ID=6 -> "subcat1 von subcat2 von de" (parent=5)[/indent][/indent]
[indent][indent]...[/indent][/indent]
[indent]...[/indent]
cat_ID=2 -> "en" (parent=0)
[indent]cat_ID=7 -> "subcat1 von en" (parent=2)[/indent]
[indent]...[/indent]
cat_ID=3 -> "fr" (parent=0)
[indent]cat_ID=8 -> "subcat1 von fr" (parent=3)[/indent]
[indent]cat_ID=9 -> "subcat2 von fr" (parent=3)[/indent]
[indent]...[/indent]In /wp-includes/languages/ müssen demnach eine de.mo, en.mo und fr.mo vorhanden sein um auch das WP selbst zu lokalisieren.(standard mo-files umbenennen reicht aus)
Jedes Post und jede Page kann nun immer einer Kategorie in der jeweiligen "Sprache" zugeordnet werden.
-
Hier die neue Version 0.6
http://proto.code-in-design.de/downloads/ml_multilingual.phpsAktuell beherrscht es u.a. folgende Funktionen:
- Anzeige/Auswahl der verfügbaren Sprachen mit Flaggen.
- Default Sprache wird im Cookie gespeichert
- Lokalisierung von WP auf die ausgewählte Sprache (liest .mo files ein)
- ermitteln der cat_ID für die ausgewählte Sprache (Kat. muss eine Hauptkat. sein- ohne parent)
- modifiziertes wp_list_pages um Ausgabe auf Pages der Hauptkat. und deren Subkats. zu beschränken
- ermitteln der Hauptkat. cat_ID für einen gewählten Post
- Beschränkung der posts Ausgabe auf posts der gewählten Hauptkat und deren Subkats.
- modifizierte Ausgabe der Kategorieauswahl im Adminbereich (Beschränkung auf 1 Hauptkat.)
- Kategorieauswahl auch bei pages möglich
- Sprachauswahl im Adminbereich kann durch Userlevel eingeschränkt werdenToDo:
- Bugfix bei Ausgabe der posts auf Userseite:
Es werden zwar nur posts aus unterkategorien der Mainkat ausgegeben, aber keine aus der obersten direkt.
- Finetuning der Anzeige im Adminbereich fü Auswahl der Kategorien (siehe dazu auch:Themaper JS ein fieldset einfügen
Hi.
Kennt sich jemand etwas besser mit JavaScript/DOM aus?
Ich habe eine Seite mit sagen wir 4 fieldsets die jeweils eine eindeutige id haben
(Quelltext, 1 Zeile)
Nun kann ich nur am Ende der Seite neuen Quellcode einfügen und möchte ein weiteres fieldset zwischen dem 2. und 3. einfügen.
(per JavaScript)
Bisher habe ich mich soweit belesen, das man via getElementsByID() eins der vorhanden fieldsets auslesen kann und "Kind"-Objekte hinzufügen könnte.
Ich suche aber eine Möglichkeit sozusagen dem…LJay25. Januar 2006 um 16:13 )
- auslesen der preferierten Sprache aus dem Browser des Users um Vorauswahl zu realisieren
- Sprachauswahl im Frontend unabhängig vom Adminbereich gestalten. Sonst kann Admin im Frontend die Sprache switchen und somit auch im adminpanel auf die posts und pages der sprache zugreifen. (zusätzliches cookie?!oder userlevel beschränkung auf alles funktionen im adminbereich ausweiten, aber wie ausschliessen wenn admin im frontend wie normaler user ist?)
- Prüfroutinen auf Vorhandensein von Kategorien die einer Sprache zugeordnet werden können
- Quellcode-Optimierung
- Dokumentierung
- Beispielumgebung aufsetzen
- ausgiebig testen -
Hi.
Kennt sich jemand etwas besser mit JavaScript/DOM aus?
Ich habe eine Seite mit sagen wir 4 fieldsets die jeweils eine eindeutige id haben
Nun kann ich nur am Ende der Seite neuen Quellcode einfügen und möchte ein weiteres fieldset zwischen dem 2. und 3. einfügen.
(per JavaScript)Bisher habe ich mich soweit belesen, das man via getElementsByID() eins der vorhanden fieldsets auslesen kann und "Kind"-Objekte hinzufügen könnte.
Ich suche aber eine Möglichkeit sozusagen dem Elternobjekt "fieldset=2" ein neues Elternobjekt anzuhängen.Kann mir da jemand weiterhelfen?
PS: Bezieht sich alles auf WP. PlugIn welches im Adminbereich eine neue Auswahl hinzufügen soll.
-
Problem zu 99% gelöst in meinem PlugIn ab Version 0.5
Thema2-sprachige Seite mit Wordpress???
Ist es irgendwie möglich mit Wordpress eine 2-sprachige Seite hinzubekommen? Also z.B. Deutsch und Englisch?bohemian24. Januar 2006 um 20:14 PS: Sry das ich soviele Threads eröfnet habe.
Werde im Thread 4952 alles weitere zu diesem Thema posten. -
Problem zu 99% gelöst in meinem PlugIn ab Version 0.5
Thema2-sprachige Seite mit Wordpress???
Ist es irgendwie möglich mit Wordpress eine 2-sprachige Seite hinzubekommen? Also z.B. Deutsch und Englisch?bohemian24. Januar 2006 um 20:14 -
Hier die neue Version 0.5
http://proto.code-in-design.de/downloads/ml_multilingual.phpsIm Adminbereich (posts) werden nun nur noch die Kategorien/Subcats. der vorausgewählten angezeigt.
Da hab ich allerdings nen Schönheitsfehler den ich auch nach 1h rumprobieren und lesen nicht beheben konnte.
Über den Kategorien wird normalerweise noch die Überschrift "Kategorien" angezeigt. Das bekomm ich immo noch nicht wieder hinzugefügt, da ich aktuell nicht in der Lage bin, mit JS auf den <legend> TAG innerhalb von "<fieldset id="categorydiv">" zuzugreifen.BTW: Die Kategorieauswahl im Adminbereich wird durch JS ersetzt. Denn dann gehts auch ohne Hack einer WP Datei.
Wer jetzt schon Verbesserungsvorschläge hat, immer her damit!
Freu: Bisher komplett ohne Hack ausgekommen.
This PlugIn is 100% Hack free -
werde es über das JS DOM Objekt versuchen und das fieldset="categorydiv" mit meiner Kategorieauswahl ersetzen.
Dazu muss ich wohl die Funktion zum erstellen des Kat.Baums nachbauen und wie gewünscht anpassen.
Wenn jemand eine elegantere/bessere Lösung kennt, immer her damit!
-
...aber dann wohl sehr intensiv?! Nunja, ich mach das eher nebenbei, denn Hauptsächlich hab ich garnichts mit WP zu tun...
Nur leider ist Zeit für dermaßen aufwendige Recherchen und Programmierungen für ein noch unbekanntes WP sehr rar...
Aber kommt Zeit, kommt Rat.
Aktuelles Problem:
ThemaAdmin-> Ausgabe von dropdown_categories() manipulieren
Gibt es eine Möglichkeit, die Ausgabe der Kategorien im Adminbereich "dropdown_categories()" zu verändern?
Wenn möglich als PlugIn!
Habe bisher keinen Filter oder dergleichen gefunden, der Manipulationen zulässt.LJay25. Januar 2006 um 10:47
Aktuelles "Projekt":Thema2-sprachige Seite mit Wordpress???
Ist es irgendwie möglich mit Wordpress eine 2-sprachige Seite hinzubekommen? Also z.B. Deutsch und Englisch?bohemian24. Januar 2006 um 20:14 -
Gibt es eine Möglichkeit, die Ausgabe der Kategorien im Adminbereich "dropdown_categories()" zu verändern?
Wenn möglich als PlugIn!
Habe bisher keinen Filter oder dergleichen gefunden, der Manipulationen zulässt.
-
PlugIn Download-Link
Hier werd ich vorerst immer die aktuelle Version bereitstellen!
Achtung:
Verwendung auf eigene Gefahr. PlugIn noch im Entwicklungsstadium (pre alpha)!
PlugIn steht unter der GPL.http://proto.code-in-design.de/downloads/ml_multilingual.phps
(Please rename "ml_multilingual.phps" to "ml_multilingual.php") -
Zitat von Olafb
Zusatzfrage, bei dir steht auch was von $lang_rewrite = TRUE; geht das bei dir? Ich hab das mit Polyglot nicht hinbekommen. Hättest du da noch einen Tipp für mich?
Das ist nen Code-Schnipsel vom language picker, wobei genau diese Zeile aktuell noch keinerlei Auswirkung hat.
Damit muss ich mich aber später auch noch befassen, denn die PermLink Struktur soll ja auch angepasst werden, damit es alles funzt.Kann ich dir daher aktuell nichts zu sagen.
-
...ah ja.. das funzt nun bisher perfekt ohne was ändern zu müssen.
Danke.
Woran man nich alles denken muss ;)
PS: Wie lange beschäftigst du dich schon mit WP und dem coden von PlugIns?
-
bzgl. PM:
Aber was genau hast du da realisiert. Ich sehe einige (eher wenige) Posts sind wahlweise in de und en zu finden.
Das Menü ist aber einheitlich!? und wie siehts im Adminbereich aus?Bei PolyGlot musste man doch jede Sprache durch nen TAG im Post selbst einfügen?! Fazit: 1Post mit allen Sprachen!
Mein Problem dabei:
1. Bei sagen wir 6 Sprachen, wäre der Post etwas lang (auch schon bei 3)
2. Man muss peinlich genau auf die TAGs im Post achten. Bei längeren Posts gibts oft Tipfehler.
3. Nehmen wir an es gibt mehrere Admins die jeweils ihre Sprache betreuen - dann müssten alle in ein und demselben Post rumwuschteln.
4. Was, wenn ich mal einen deutschen Post oder ne Page hab, die es in englisch garnicht geben soll/brauch?
5. Stell dir das ganze mal als umfangreiches CMS mit FAQs und vielen Beiträgen vor - das endet schon nach kurzer Zeit im Kaos.findest du nich auch?
-
Hier der aktuelle Stand (unkommentiert)
ml_multilingual.phpPHP
Alles anzeigen<?php /* Plugin Name: Multilanguage WP Plugin URI: http://www.code-in-design.de (deep-link folgt) Description: Make WP to a multilanguage WP. Complete WP can displaed in different languages. Version: 0.3 Author: Jens Lojek Author URI: http://www.code-in-design.de/ */ // Default language for text not enclosed in <lang_xx></lang_xx> $default_lang = 'de'; // Name of cookie - default:'wp_lang_pref'.$cookiehash $lang_pref_cookie = 'wp_lang_pref'.$cookiehash; // Use cruft-free URLs to view other languages? MUST ADD REWRITE RULES: // RewriteRule ^(.*)/xx/?$ /$1?lp_lang_view=xx [QSA] // above should be modified to match your other rewrite rules and added // for each language 'xx' you will be using. $lang_rewrite = TRUE; // Should Language Picker attempt to dynamically change the WP locale // setting based on user's prefered language? Note, for this to work // .mo files must be renamed to match the languages in use on your // blog. For example, de_DE.mo might become de.mo. $lang_change_locale = TRUE; // Initialization stuff $lp_lang_pref = (isset($HTTP_COOKIE_VARS[$lang_pref_cookie])) ? trim($HTTP_COOKIE_VARS[$lang_pref_cookie]) : FALSE; if ($_GET["lp_lang_pref"]) { setcookie($lang_pref_cookie, $_GET["lp_lang_pref"], time() + 30000000, COOKIEPATH); $lp_lang_pref=$_GET["lp_lang_pref"]; } $lp_lang_pref = ($_GET["lp_lang_view"]) ? $_GET["lp_lang_view"] : $lp_lang_pref; if ($lp_lang_pref_not_set = (!$lp_lang_pref)) $lp_lang_pref = $default_lang; if ($lang_change_locale && class_exists('streamreader')){ $locale = $lp_lang_pref; $mofile = ABSPATH . WPINC . "/languages/$locale.mo"; load_default_textdomain(); require(ABSPATH . WPINC . '/locale.php'); } if (!defined('WPLANG')){ define('WPLANG', $lp_lang_pref); } function getcatid_for_lang_pref(){ global $wpdb, $lp_lang_pref; $catid = $wpdb->get_row("SELECT cat_ID " . "FROM $wpdb->categories c " . "WHERE c.cat_name LIKE '" . $lp_lang_pref . "'"); return $catid->cat_ID; } $ml_main_catid = getcatid_for_lang_pref(); // lists all main cats (category_parent=0) because on use ml this are the language categories as flag with language-switcher function mp_flags(){ global $wpdb; $thelist = '<ul>'; $flags = $wpdb->get_results("SELECT category_nicename FROM $wpdb->categories WHERE category_parent= 0"); foreach($flags as $flag){ $thelist .= '<li><a href="?lp_lang_pref=' . $flag->category_nicename . '" title="' . $flag->category_nicename . '"><img src="/wp-content/plugins/ml_flags/' . $flag->category_nicename . '.png" border="0" alt="' . $flag->category_nicename . '" title="' . $flag->category_nicename . '"></a></li>'; } $thelist .= '</ul>'; return $thelist; } // a bit modified core get_pages() function // now we only show pages which in main categorie we define by default language (getcatid_for_lang_pref) function &ml_get_pages($args = '') { global $wpdb; parse_str($args, $r); if (!isset($r['child_of'])) $r['child_of'] = 0; if (!isset($r['sort_column'])) $r['sort_column'] = 'post_title'; if (!isset($r['sort_order'])) $r['sort_order'] = 'ASC'; if (!isset($r['catid'])) $r['catid'] = getcatid_for_lang_pref(); $exclusions = ''; if (!empty($r['exclude'])) { $expages = preg_split('/[\s,]+/',$r['exclude']); if (count($expages)) { foreach ($expages as $expage) { $exclusions .= ' AND ID <> ' . intval($expage) . ' '; } } } $pages = $wpdb->get_results("SELECT * " . "FROM $wpdb->posts p " . "LEFT JOIN $wpdb->post2cat p2c ON (p2c.post_id = p.ID) " . "WHERE p.post_status = 'static' " . "AND p2c.category_id = '" . $r['catid'] . "'" . "$exclusions " . "ORDER BY " . $r['sort_column'] . " " . $r['sort_order']); if ( empty($pages) ) return array(); // Update cache. update_page_cache($pages); if ($r['child_of']) $pages = & get_page_children($r['child_of'], $pages); return $pages; } // simple modification of core function wp_list_pages() // now we have an option "child_of" with functionality like child_of on wp_list_cats() function ml_wp_list_pages($args = ''){ parse_str($args, $r); if ( !isset($r['depth']) ) $r['depth'] = 0; if ( !isset($r['show_date']) ) $r['show_date'] = ''; if ( !isset($r['child_of']) ) $r['child_of'] = 0; if ( !isset($r['title_li']) ) $r['title_li'] = __('Pages'); if ( !isset($r['echo']) ) $r['echo'] = 1; $output = ''; // Query pages. $pages = & ml_get_pages($args); if ( $pages ) : if ( $r['title_li'] ) $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>'; // Now loop over all pages that were selected $page_tree = Array(); foreach($pages as $page) { // set the title for the current page $page_tree[$page->ID]['title'] = $page->post_title; $page_tree[$page->ID]['name'] = $page->post_name; if (! empty($r['show_date'])) { if ('modified' == $r['show_date']) $page_tree[$page->ID]['ts'] = $page->post_modified; else $page_tree[$page->ID]['ts'] = $page->post_date; } if ( $page->post_parent != $page->ID) $page_tree[$page->post_parent]['children'][] = $page->ID; } $output .= _page_level_out($r['child_of'],$page_tree, $r, 0, false); if ( $r['title_li'] ) $output .= '</ul></li>'; endif; $output = apply_filters('ml_wp_list_pages', $output); if ( $r['echo'] ) echo $output; else return $output; } // get the top cat_ID from a post // the cat_ID from the first main cat of this post function ml_main_catid_from_post(){ global $wpdb; $cat = get_the_category(); $cat = $cat[0]; while($cat->category_parent != 0){ $cat = $wpdb->get_row("SELECT cat_ID, category_parent FROM $wpdb->categories WHERE cat_ID = $cat->category_parent"); } return $cat->cat_ID; } function as_posts_where_filter4cats ($where) { if( !(strpos($where, ' OR category_id') === false) ){ $where = preg_replace('/(OR category_id = )([\d]*)/', '', $where); } return $where; } add_filter('posts_where','as_posts_where_filter4cats'); ?> -
Zitat von Olafb
...wenn man es anders konfiguriert als auf der Demoseite ;)...
Wie konfiguiert man es anders damit es wie funzt?
Hast du nen Beispiel, wo du es anders einsetzt?Zitat von Olafb...Bin aber gespannt auf deine Entwicklung.
ich auch... ich auch... ;)Zumal ich WP Neuling bin und mit dem PHP-Stil so meine Schwierigkeiten habe...
"The Loop" watn dat? -
PolyGlot ist ein sehr "komisches" PlugIn.
In den meisten Fällen will man ja die Seite entweder "de" ODER "en" anzeigen, aber doch nicht z.B. "de" mit ggf. "en"-Beiträgen darunter...oder?!
Das ist auch der Grund, wieso ich aktuell versuche nen eigenes PlugIn zu coden, welches diese Aufgabe lösen soll.(je nach Auswahl das gesamte WP in einer Sprache)
Threads dazu:
ThemaAusgabe der Kategorien und Posts ändern
Hi.
BTW @ Arno Simon
http://forum.wordpress-deutschland.org/showpost.php?p=26803&postcount=5
Was genau bewirkt dieses PlugIn? Konnte es nicht eindeutig erkennen - leider.
Zum Thema:
Problem : Adminpanel
Auf der Seite "post.php" (Admin->Schreiben->Beitrag Schreiben) und an anderen Stellen gibt es ja die Auswahl der Kategorien im Rechten Bereich.
Mein Wunsch ist, das man diese Auswahl etwas begrenzt. Und zwar sollen nur die Kategorien (Sub-Kategorien) der "default" Kategorie angezeigt werden.
Wenn also…LJay24. Januar 2006 um 17:16 ThemaCore Function wp_list_pages durch eigene ersetzen
Hi.
Ich möchte mir ein PlugIn schreiben, in dem ich allerdings eine eigene Funktion für die Ausgabe der Pages (normal: wp_list_pages) erstellt habe.
Durch manipulation des Quelltextes nicht sicher realisierbar, daher benötigte ich eine komplette neue Funktion.
Nun möchte ich aber das Plugin anweisen, meine Funktion anstelle der orginalen zu bentuzen.
Leider kommte ich mir remove_function und add_function nicht wirklich weiter.
Ziel ist es, das template nicht auf den Namen der neuen Funktion ändern…LJay24. Januar 2006 um 13:11 ThemaKategorieseite bauen?
mhh, jetzt hab ich so lange gesucht und das erstemal keine antwort in unserm forum gefunden. merkwürdig :-)
darum hier mal meine frage:
wie baue ich ein kategorie template, das auch wirklich nur den Inhalt der gewählten kategorie anzeigt?
eigentlich ganz einfach dachte ich, mmmh vielleicht mach ich auch nur einen denkfehler. also hier mal mein Kategoriebaum- Hauptkategorie 1
- Sub 1 zu Haupt 1
- Sub 2 zu Haupt 1
- Hauptkategorie 2
- .....
gerhardb23. Januar 2006 um 16:26 Sobald ich etwas vorzeigbares habe worauf man aufbauen könnte, werd ich es an gegebener Stelle posten.
- Hauptkategorie 1
-
Vielleicht erstmal eine Teil-Frage:
Im Adminpanel soll bei den Anzeigen der Kategorien (z.b. bei post.php) nur die Subkategorien von MainCat "1" angezeigt werden. ("1" is hier per variable im plugin gesetzt)
Wie könnte man dies mit einem PlugIn lösen?