Gibt es beim Texte anpassen einen Weg zu wissen, wo überall dass einer verwendet wird? Müsste man alle template files durchsuchen? Oder könnte eine Verwendung auch in der DB sein, etwa bei Mailvorlagen? Denn wenn ich bsp. den Titel auf den Checkout Seiten ändern will, Phrase:YOUR_ORDER (Deutsch, Section: general): Ihre Bestellung und der noch andernorts gebraucht wird, kann das dort plötzlich falsch aussehen, etwa wenn ich das ändere auf Checkout, und nachher wird das auch im Kundenkonto verwendet für detailansicht alter Bestellungen, oder irgend sowas...
Beides, meinst du? Also müsste man eine SQL-Abfrage machen, und einmal in der Shell eine Suche... Wäre das nicht ein ziemlich guter Feature-Vorschlag, dass die Texte-Anpassen Seite dies für jeden Treffer machen würde, resp. einen Button? Oder, noch eleganter, das anzeigt, sobald man auf bearbeiten klickt? Oder sind keine/zu wenige Fälle bekannt, wo jemand versehentlich auch andere Stellen "mit-geändert" hat? Vorschlag für SQL? Shell-Suche kriege ich grundsätzlich hin, nur wonach genau suchen, und wo? Das müsste einfach eine rekursive, casesensitive Suche nach Phrase (hier YOUR_ORDER) sein, oder? Könnte man sagen, dass das auf gewisse Dateiendungen eingeschränkt genügen könnte, und/oder nur auf das Verzeichnis des benutzten Templates?
Die Idee ist ehrenwert, aber das wäre denke ich riesengross das zu bauen, und hätte damit sicher schon mal für das nächste Jahr keinerlei Chance. Wenn die Suche auf ein Template trifft, das ein Sietenfragment ist, müsste die Suche dann wieder über alles leiern und schauen wo das Template referenziert wird. Wenn sich ein solches Template findet, muss wieder rekursiv über alles gelaufen werden und geschaut werden wo das eingebettet ist. Wenn man das in der Datenbank findet wird eine Zuordnung mindestens genauso beknackt zu lösen. Dazu gibts sehr wenig Meldungen bei uns. Alleine durch Beachtung der Grossschreibung sinkt die Quote falscher Treffer schon zu einer sehr übersichtlichen Quote.
Ah ja, ich hab nicht gedacht dass praktisch die URL auszugeben wäre, sondern nur in eine Liste der Dateien wo's vorkommt... daraus könnte man doch schon ziemlich gut etwas sehen. Resp. in der DB ... hmm, noch nicht genau überlegt, vielleicht welcher Datensatz in welcher Table? Oder kann man nicht relativ klar sagen, Texte kommen vor in ... Content, Mailvorlagen, mehr wüsste ich schon nicht mehr... Also, wenn nicht als Feature, kann man dann zum nötigen Datei- Suchbaum / Mögliche SQL etwas mehr sagen? Bei der Dateisuche denke ich weniger an die Trefferquote, sondern mehr an die Suchdauer... ich habe gegen 50k Dateien im Shop... Statt dinge wie bilder ausschliessen würde ich lieber wissen, dass ich nur .html durchsuchen muss, ev. noch php? txt?
Nein, nicht wirklich, das wäre schon mit nötigem Glück verbunden. Angenommen wir würden es auf diese unvollständige Liste beschränken, kommste dann wieder zum Punkt wo du in deine Abfrage weitere Tabellen verknüpfen musst, damit du nicht bei Dingen landest: Wird verwendet, wenn Content 12345 irgendwo verwendet wird. Das ne Betriebssystem/IDE/Editorfrage mit der Suche. Ich kann zum Beispiel mit meiner Standardmöhre mit SSD unter Linux den ganzen Shop per grep in weniger als 10 Sekunden komplett Volltext ohne Vorindizierung durchsuchen, da mach ich mir über Vorfilterung nie Gedanken.
Also, ich hab zwar shared-hosting statt ssd, und darum hängt mein Befehl sich auf wenn er auch templates_c durchsucht... Es gäbe für find eine Option --exclude-dir="./templates_c" aber mein find ist eine zu alte Version... Aus dem Ergebnis sehe ich dann doch recht schön, dass sich da alles um den Checkout dreht... Glück? Code: grep -rn YOUR_ORDER . ./templates/Honeygrid/module/create_account.html:9: <h1>{$general.YOUR_ORDER}</h1> ./templates/Honeygrid/module/checkout_payment.html:9:<h1>{$general.YOUR_ORDER}</h1> ./templates/Honeygrid/module/create_account_guest.html:9: <h1>{$general.YOUR_ORDER}</h1> ./templates/Honeygrid/module/checkout_confirmation.html:7:<h1>{$general.YOUR_ORDER}</h1> ./templates/Honeygrid/module/checkout_shipping.html:8:<h1>{$general.YOUR_ORDER}</h1> ./templates/Honeygrid/module/checkout_payment_address.html:7:<h1>{$general.YOUR_ORDER}</h1> ./templates/Honeygrid/module/checkout_shipping_address.html:8:<h1>{$general.YOUR_ORDER}</h1> ./lang/english/original_sections/general.lang.inc.php:387: 'YOUR_ORDER' => 'Your Order', ./lang/german/original_sections/general.lang.inc.php:385: 'YOUR_ORDER' => 'Ihre Bestellung', ./templates_c/2c3087e9e295a1e3b2e33759c58deb81b394a822.file.checkout_payment.html.php:73:<h1><?php echo $_smarty_tpl->tpl_vars['general']->value['YOUR_ORDER'];?> Mit phpMyAdmin kann ich die ganze DB durchsuchen, und siehe, ich habe nur 1 Treffer in language_phrases_cache... Bin immernoch interessiert an einem besseren find-kommando, oder an Infos wo Text-Strings überall vorkommen können... Auch ausserhalb vom Templates-Ordner? Würde mich eigentlich wundern, das erwarte ich höchstens für Admin-Seiten...
grep -r "PHRASE" . im Shopverzeichnis, dürfte schneller sein. Bei der Phrase die du suchst kommts drauf an, wir waren ja schon bei du weisst nicht wo die drin ist: Template, Mailvorlagen, Contents, in einem Modul,...